FYI you can't do this on phones with locked bootloaders if termux runs on anything lower than android 8 because termux will be significantly limited. you also can't bind to ports on any android phone unless you root, and rooting often requires an unlocked bootloader and not all android phones support bootloader unlocking. so you can't run a web server unless you somehow run it through a proxy server, or containers at native speed on postmarket os because you will not be able to flash the phone with postmarket os. not all android phones can have their bootloaders unlocked unless you find an exploit. https://github.com/zenfyrdev/bootloader-unlock-wall-of-shame
Most phones won't boot without the battery. Obvious workaround is to connect a power supply (and large cap) directly to the BMS, but in my experience most phones will shut themselves down when they think they've drawn more than the capacity of their battery, even if the voltage is still high. You can sometimes get around that by rebooting the device every couple of hours (and there might be a software/firmware fix in some cases?), but it's a lot less annoying to just accept a small risk of a house fire.
You could throw the phone in an ammo canister, if the wifi AP is close enough. When I was building hobby quadcopters, which requires several ~half-pound batteries that are a chemistry optimized for maximum power density, a lot of guys recommended steel ammo cans for battery storage.
Phones are very low power, likely just a slightly warm spot on the can that radiates, conducts, and convects the heat out. You could also use one of those peltier module phone coolers, to ensure the heat gets out of the phone and into the air faster.
Depends on how well the canister insulates it. Steel conducts heat fairly well; it'd get hot inside but I'd guess some airflow around the canister would probably keep it from getting hot enough to cook the electronics. (definitely don't take my word for it lol)
Afaik mobile electronics’ power circuitry is designed so that power goes straight from charging port to the processor, without constantly charging/discharging the battery, once charging is complete. Unless the system suddenly draws a lot of power (more than the charger is supplying) - which is unlikely in a smartphone.
This is true but lithium-ion batteries degrade even while not being charged or discharged, and this is worse at the extremes of the state of charge (including fully charged), and at higher temperature (and often a plugged in device is on constantly and therefore spends more time at a high temperature than it normally would), so it's still not great for the battery. A lot of devices have a mode where the batter is kept at a lower state of charge if it's been plugged in for a while to try to reduce this.
Some phones bypass the battery when plugged in, but not all do. I know it's advertised as a feature of some gaming phones because graphics-intensive gaming is one use case where you'd want to use the phone heavily while plugged in.
Steamdeck lets you set your preferred % and the dock does pass through charging/power, which I love because that combo guarantees the longest possible life for the battery. I turn it back to 100% for flights, otherwise leave it as 80% at all times. Mine is almost 4 years old now but I don’t feel even a hint of battery degredation yet.
Some newer phones support bypass charging, which powers the phone directly instead of continuously cycling the battery. Mine doesn't support that, unfortunately, so I've limited charging to 80% to reduce battery stress.
Those saying it's said backwards clearly aren't self-hosters!
iPhone hardware wise is like an amazing alternative to rpi (way better hardware)
But the software makes no sense at all for a server, with screen locking due to inactivity and whatnot, not to mention energy and network priority is designed around a consumer use case on the move.
If you run Linux on it and take advantage from the Apple hardware like the light sensors and accelerometer - maybe it makes sense for measuring wave height, sky color, attached to a buoy or oil rig or something, you can even show it on a map due to its GPS. Assuming the oil rig has WiFi or a cell phone booster.
Idk though, maybe for something that important you just get the right stuff - cool hobby nonetheless.
I’ve wondered for a while if they could be used as an extension to your laptop like the old 80s PCs where you would plug in hardware.
So ‘make it a server’ is the obvious way I guess, and then you could do things like render webpages on there and then stream them as images to your actual computer (like the now shutdown Mighty app), or run ffmpeg on there to convert a video, etc
That's a test of the software more than the hardware. I run a lot of stuff on low-powered hardware and the main problems are when the software allocates a ton of memory unnecessarily (Java software is usually the worst offender) or does a million things for each request that are either unnecessary or duplicate.
Any efficient blog software will handle HN fine on anything that you can call a smartphone, so like maybe not a Nokia with GPRS and 6MB on-board storage, but something like the Samsung S2 from 2011 that basically shipped as a Linux box -- just need to adb push ARM binaries for a webserver
Can you please tell me more? I'm trying to build a self hosted application (with Claude) so people can scan a QR code and place orders / send messages to the kitchen without having to flag down a server / waiter. It is supposed to save time and money for the restaurant and for the patrons and customers it is supposed to be more convenient. Do you not like this option?
FYI you can't do this on phones with locked bootloaders if termux runs on anything lower than android 8 because termux will be significantly limited. you also can't bind to ports on any android phone unless you root, and rooting often requires an unlocked bootloader and not all android phones support bootloader unlocking. so you can't run a web server unless you somehow run it through a proxy server, or containers at native speed on postmarket os because you will not be able to flash the phone with postmarket os. not all android phones can have their bootloaders unlocked unless you find an exploit. https://github.com/zenfyrdev/bootloader-unlock-wall-of-shame
"My phone is a server now"
would've been better
--
> built in battery backup
Isn't it always recommended to remove battery if you plan to use a phone or a laptop as a server? ( Fire hazard )
or is it fine to just limit the charging to 80%?
Most phones won't boot without the battery. Obvious workaround is to connect a power supply (and large cap) directly to the BMS, but in my experience most phones will shut themselves down when they think they've drawn more than the capacity of their battery, even if the voltage is still high. You can sometimes get around that by rebooting the device every couple of hours (and there might be a software/firmware fix in some cases?), but it's a lot less annoying to just accept a small risk of a house fire.
You could throw the phone in an ammo canister, if the wifi AP is close enough. When I was building hobby quadcopters, which requires several ~half-pound batteries that are a chemistry optimized for maximum power density, a lot of guys recommended steel ammo cans for battery storage.
I’m also an ammo-case-for-drone-batteries guy but they aren’t running and don’t generate heat. A phone would cook right?
Phones are very low power, likely just a slightly warm spot on the can that radiates, conducts, and convects the heat out. You could also use one of those peltier module phone coolers, to ensure the heat gets out of the phone and into the air faster.
Depends on how well the canister insulates it. Steel conducts heat fairly well; it'd get hot inside but I'd guess some airflow around the canister would probably keep it from getting hot enough to cook the electronics. (definitely don't take my word for it lol)
How many phones have you tested this with?
Afaik mobile electronics’ power circuitry is designed so that power goes straight from charging port to the processor, without constantly charging/discharging the battery, once charging is complete. Unless the system suddenly draws a lot of power (more than the charger is supplying) - which is unlikely in a smartphone.
This is true but lithium-ion batteries degrade even while not being charged or discharged, and this is worse at the extremes of the state of charge (including fully charged), and at higher temperature (and often a plugged in device is on constantly and therefore spends more time at a high temperature than it normally would), so it's still not great for the battery. A lot of devices have a mode where the batter is kept at a lower state of charge if it's been plugged in for a while to try to reduce this.
Some phones bypass the battery when plugged in, but not all do. I know it's advertised as a feature of some gaming phones because graphics-intensive gaming is one use case where you'd want to use the phone heavily while plugged in.
Steamdeck lets you set your preferred % and the dock does pass through charging/power, which I love because that combo guarantees the longest possible life for the battery. I turn it back to 100% for flights, otherwise leave it as 80% at all times. Mine is almost 4 years old now but I don’t feel even a hint of battery degredation yet.
Some newer phones support bypass charging, which powers the phone directly instead of continuously cycling the battery. Mine doesn't support that, unfortunately, so I've limited charging to 80% to reduce battery stress.
That's what I thought when I read this. It will probably destroy this battery very quickly.
But in other hand, it is probably a pain in the ass to remove the battery and do some workarounds to make sure the phone correctly behaves without it.
Couldn't you just have it charging on a time-regulated supply e.g. smart plug?
Those saying it's said backwards clearly aren't self-hosters!
iPhone hardware wise is like an amazing alternative to rpi (way better hardware)
But the software makes no sense at all for a server, with screen locking due to inactivity and whatnot, not to mention energy and network priority is designed around a consumer use case on the move.
If you run Linux on it and take advantage from the Apple hardware like the light sensors and accelerometer - maybe it makes sense for measuring wave height, sky color, attached to a buoy or oil rig or something, you can even show it on a map due to its GPS. Assuming the oil rig has WiFi or a cell phone booster.
Idk though, maybe for something that important you just get the right stuff - cool hobby nonetheless.
Yeah ‘old phones’ are pretty capable devices.
I’ve wondered for a while if they could be used as an extension to your laptop like the old 80s PCs where you would plug in hardware.
So ‘make it a server’ is the obvious way I guess, and then you could do things like render webpages on there and then stream them as images to your actual computer (like the now shutdown Mighty app), or run ffmpeg on there to convert a video, etc
A couple of old phones and a gaming laptop with a broken screen makes a beast of a cluster
I did a similar thing recently.
I run kube in a VM, and it was ressource constrained.
I hooked an old samsung to my pc and have let claude handle everything.
I only had to unlock the bootloader, flash the image claude uploaded.
It rebuilt postmarketos multiples times to enable various flag, and now there is a kube node running on it.
I plan to do this when I buy a new phone, thank you for the great writeup!
Would have been a fun load test had you hosted your blog on the phone.
That's a test of the software more than the hardware. I run a lot of stuff on low-powered hardware and the main problems are when the software allocates a ton of memory unnecessarily (Java software is usually the worst offender) or does a million things for each request that are either unnecessary or duplicate.
Any efficient blog software will handle HN fine on anything that you can call a smartphone, so like maybe not a Nokia with GPRS and 6MB on-board storage, but something like the Samsung S2 from 2011 that basically shipped as a Linux box -- just need to adb push ARM binaries for a webserver
I've never heard of Surf but I can run 10x camoufox instances on a $8 VPS no problem. I highly recommend it.
Shouldn't it be "My phone is a server now"?
“My daily driver is a clown car now.”
I thought this was going to be a rant about QR code menus.
Can you please tell me more? I'm trying to build a self hosted application (with Claude) so people can scan a QR code and place orders / send messages to the kitchen without having to flag down a server / waiter. It is supposed to save time and money for the restaurant and for the patrons and customers it is supposed to be more convenient. Do you not like this option?