I had an old Google Pixel 3a XL sitting around and decided to see if it could handle running as a fully offline, self-contained web server.
I flashed postmarketOS 26.06 (headless Alpine Linux base) to it and set up a portable media node that broadcasts its own Wi-Fi AP, serves static pages, and streams video over a captive portal - no cell data or upstream internet needed.
Quick Hardware/Tech Stack Breakdown:
- Device: Google Pixel 3a XL (2019)
- OS: postmarketOS 26.06 (CLI base with OpenRC)
- Networking/AP: hostapd for the AP, dnsmasq for DHCP & wildcard DNS routing
- Firewall: nftables redirecting port 80 requests to trigger the captive portal popup automatically
- Web Server: Lighttpd handling HTTP requests and MP4 video range requests
Performance & Power Draw: Under a test load streaming 720p video to 4 concurrent devices, total CPU usage averaged around 5% (load avg 0.51). Power draw stayed around ~2.4W off the internal battery, with temps holding steady at 54°C.
Why build this? Mainly as an offline entertainment and information node. I run a non-profit foundation providing SCUBA training to young survivors of childhood abuse, and having a tiny, battery-powered web node lets us provide offline information and videos to people while traveling. I will also be able to use it to provide training videos if I am teaching in a location that does not have internet access available.
I wrote up a complete overview covering the setup, and performance metrics if anyone wants to replicate it or build something similar. Over the coming weeks I will be posting configs and some other information to Github with a link from my site.
https://www.muttmutt.us/geeky-stuff/portable-web-server-on-an-android-phone-for-offline-access/
Happy to answer any questions about postmarketOS setup or the networking config!


Which one? Lol.
TrueNAS is mostly via the webgui but I use SSH when needed.
I have two Ubuntu 26.04LTS VM’s running on TrueNAS. One is going to be my web host the other is for FrigateNVR and local AI processing. They are both managed via SSH. The web host has a FIDO2 ssh key for access, the other is a standard key and is not web accessible. Both can be accessed via remote desktop when at home.
Docker containers are managed via DockHand. I have about 50 containers running across the above hosts right now.
HomeAssistant is managed via the webgui and SSH when needed. It runs on its own hardware (Odroid N2+)
My traveling local host/ap/dhcp server is primarily managed over USB via SSH. Files are managed via SFTP.