DIY How to install PostmarketOS (Alpine Linux) to Samsung A5 2015 (A500F) BARE METAL without Android, run docker / portainer / pihole ARM64 and make alternative for Raspberry Pi 4 2GB with all futures in budget 10$. Cheapest Pinephone.
[ Ссылка ]
Prerequisites:
1. Heimdall (Odin for Linux)
$ sudo apt install heimdall-flash
2. PostmarketOS Installation: ([ Ссылка ])
$ git clone [ Ссылка ]
$ cd pmbootstrap && python3 setup.py install
3. Flash bootloader [ Ссылка ] for Samsung A5 is lk2nd-msm8916.img
Put phone into fastboot mode: Volume Down + Power + Home
$ heimdall flash --BOOT lk2nd-msm8916.img
Once you see lk2nd fastboot screen with green START you can build software
Building software:
$ pmbootstrap init
Then:
$ pmbootstrap install
Prepare phone:
$ fastboot erase system
$ pmbootstrap flasher flash_rootfs --partition userdata
$ pmbootstrap shutdown
$ fastboot reboot
Install docker (after connecting to WiFi) and connect via SSH
$ ssh [username created during installation]@[IP address of samsung]
$ apk add docker
$ addgroup [username] docker
$ rc-update add docker boot
$ reboot (to make addgroup username docker alive)
& apk add docker-compose
& apk add py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make
& pip3 install docker-compose
Portainer:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce
Pihole:
# Note: ServerIP should be replaced with your external ip.
docker run -d \
--name pihole \
-p 53:53/tcp -p 53:53/udp \
-p 80:80 \
-e TZ="Europe/Warsaw" \
-e WEBPASSWORD= \
-v "${PIHOLE_BASE}/etc-pihole:/etc/pihole" \
-v "${PIHOLE_BASE}/etc-dnsmasq.d:/etc/dnsmasq.d" \
--dns=192.168.1.222 --dns=1.1.1.1 \
--restart=unless-stopped \
--hostname pi.hole \
-e VIRTUAL_HOST="pi.hole" \
-e PROXY_LOCATION="pi.hole" \
-e ServerIP="192.168.1.222" \
pihole/pihole:latest
Watchtower (auto update all containers):
docker run --name watchtower -v /var/run/docker.sock:/var/run/docker.sock --restart unless-stopped containrrr/watchtower --schedule "0 0 4 * * *"
Mysterium Node VPN
docker run --cap-add NET_ADMIN -d -p 4449:4449 --name myst -v myst-data:/var/lib/mysterium-node mysteriumnetwork/myst:latest service --agreed-terms-and-conditions
![](https://i.ytimg.com/vi/0HemPRAq7dc/maxresdefault.jpg)