Giving an old Pixel 3a XL new life as an offline, battery-powered web server running postmarketOS

https://www.muttmutt.us/geeky-stuff/portable-web-server-on-an-android-phone-for-offline-access/

cross-posted from: https://lemmy.world/post/52120691

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!

31 points · 3 comments · view on lemmy.world

3 Comments

SirSamuel@lemmy.world · 2 pts · 19h (2 replies)

I use my 3a as GPS using Lineage OS and a Wi-Fi hotspot

MuttMutt@lemmy.world · 2 pts · 18h (1 reply)

I've used older phones for a lot of things like that. I have a couple that I use for bedroom HomeAssistant controllers, along with a couple tablets for near the front and back doors. I have an LG V20 I have been tinkering with so that I can power it without a battery at all but that is a bit of a pain.

I have seen projects where phones have been turned into vehicle dash camera's that once connected to WiFi will upload to the home server. There are a ton of other things you can do with an old phone if you just find a way to use it. The bad thing is that a lot of the older phones are stuck on the OS they have with no chance of another update or ability to change the OS for other uses.

SirSamuel@lemmy.world · 1 pts · 4h

It was fun! I'd never done any kind of sideloading or customization of a phone prior. I learned a lot from the experience. Similar getting the Jellyfin app to run on a Samsung TV. I'd like to eventually convert my old laptop into an automotive diagnostic reader, with the ability to add/delete keys via the OBDII port. That's a big project tho, lots of moving parts

Thanks for the write-up on your post, very informative 😁♥️