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
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.
FYI you can't do this on phones with locked bootloaders as well as the author did. you could use termux but if termux runs on anything lower than android 8 termux will be significantly limited and you will need postmarketos and maybe fix support for it. with termux, at best things will be slow without root, as the author mentioned rooting resulted in a speed increase.
without root, you also can't bind to ports on any android phone, and rooting often requires an unlocked bootloader and not all android phones support bootloader unlocking. You also need an unlocked bootloader to install postmarket os.
so without binding to ports you can't run a web server unless you run it through a proxy server which the author did, or containers at native speed on postmarket os because you will not be able to flash the phone with postmarket os if you have missing kernel syscalls on android nor root the phone for the speed increase on android depending on your android kernel version i assume.
so with android containers may or may not work without emulating x86, and without root chances are it will be slow specially if you are forced to emulate it as x86 because it turns out you have missing syscalls, nor root to make them faster if they exist on android. again no chances to install postmarket os nor rooting to make containers faster, without bootloader unlocking.
Postmarket os is required if your device runs android 7 or below due to termux limitations which prevent you from installing packages, or if your android version has missing kernel syscalls that prevent you from running containers without x86 emulation which is slow.
Rooting is required to install postmarketos, and making termux faster and bind to ports on Android. You don't need postmarketos if your android version can run containers on termux with all the required kernel syscalls
To root or install postmarketos you need an unlocked bootloader.
If you're hosting behind a NAT device, you can just map external port 80/443 to internal port whatever. You can bind any port 1024 or higher.
Termux is only slower without root if you use proot. PRoot provides a limited implementation of chroot that runs unprivileged in userspace, but this also causes it to be pretty slow. If the server software you want to run is available in the Termux repos, you can use that and have it run at full-speed.
Termux works by patching all programs to treat /data/data/com.termux/files/usr as the root directory and /data/data/com.termux/files/home as the home directory. This introduces some compatibility issues, but it doesn't make it any slower.
I still think the best bang for your buck is an old desktop PC. Something like an i5 with 8GB RAM and an SSD will suit 99% of home server uses with capacity to spare.
Even in this environment of inflated hardware prices, you can get one for a reasonable price.
Although I do see the appeal in getting unconventional hardware to do what you want, just for the love of the game.
Old thin clients can be good deals too. Dell Wyse 5070s are great for basic tasks, especially if you can get the Pentium Silver J5005 models. They take M.2 SATA SSDs and they don't have UEFI whitelists on their M.2 WLAN cards, meaning you can get one of those M.2 A+E key SATA cards and connect a SATA HDD to it. Expect to pay around $40-$50 for a Dell Wyse 5070 with 4GB of RAM and eMMC storage. You can easily add an SSD, and since it takes M.2 SATA SSDs, you can buy lightly used ones relatively inexpensively.
Old Optiplex are also good deals. I bought a Dell Optiplex 5070 MT for $150 for myself and 2 Dell Optiplex 3070 SFF computers for $75 each to replace my mom's aging Windows 7 PC. All 3 computers take DDR4 and M.2 NVMe SSDs and have an Intel i5-9500 CPU that will also run Windows 11 pretty well, if you're into masochism that is.
I thought about this a few times but the flash storage is a bit sketchy for running a database, I am worried it can die. Tho android does have sqlite built in and works fine.
Cool project, but slightly better: before the rampocalypse I bought one of those aliexpress fanless linux boxes designed to be a router. I put a 32GB stick of ram in it and a 250GB SSD. I run opnsense in a virtual machine to serve as my home router and then I put the rest of my home server stuff on other virtual machines on that same box. It's still fanless/silent. It takes up zero additional space because it is my router. It would already be running 24/7 because it is my router so the additional energy usage of an additional VM is likely minuscule. The latency to my router is basically zero since it is on the same physical box. And it is using a real SSD so it has faster storage with almost certainly better endurance.
Nice writeup but use legacy phone is really need to do some tuning and hacks, but that's fun to do if one like it.
For me I have a 24x7 running intel gen 11 nuc, i am lucky to get it installed with 32G memory and two NVME disks years ago and cannot image add those memory and NVME disk with much higher price
Just run some docker and VM on that, use cloudflare tunnel or tailscale funnel if you want to expose some service to the wild internet
I recently even find a pixel 5 and passthrough it to the openclaw VM on that nuc, let it browse the X to find some posts and relax me from doom scrolling, though seems timeline still bad and no much valued post find.
I think you are doing much better with an optiplex 3050 micro and libreboot. Android with it's locked down bootloader and outdated kernels is a dead platform. You are fighting Google's control at every step.
Sad, the US used to be all about freedom...
Side comment about the difference between “My server is a phone now” and “My phone is a server now.”
In linguistics, the terms “theme” and “rheme” refer to the status of information in a sentence [1]. The theme of a sentence is something that is known or can be assumed from the context (that is, old information), while the rheme is information that is newly introduced in the sentence, often as a comment on the theme. The tendency in many (most? all?) languages is for the theme to precede the rheme in connected discourse.
Without context, a reader is therefore likely to assume from “my X is a Y now” that X is something the writer had previously and that Y is something new. Because most people have a phone but few have their own servers, I was initially confused by the title “My server is a phone now.” I had to read the article to realize that the word order is in fact appropriate: for the writer, the server is old information (something he has had for a while) while the phone (as a server, at least) is new.
In English, theme and rheme might be inferred not only from the position in a sentence but also from how a noun is marked. Possessives like “my” are generally used before nouns referring to things that are previously known or assumed; the definite article “the” is similar. In contrast, the indefinite article “a” (or “an”) usually marks information being newly introduced, so it is more common with rhemes.
I worked as a Japanese-to-English translator for many years. Because the grammatical structure of Japanese sentences is very different from that of English, sentence-by-sentence translation often ends up with paragraphs where the information flow is awkward and unnatural. I gradually learned that I could produce smoother translations by reorganizing my English sentences into an old-to-new information sequence.
If you asked any native English speaker what “my X is a phone now” meant, I would wager that nearly all would say that it means that X can now make voice calls, like a phone.
This shows a problem with the English language: the same sentence can be understood in at least two ways: "the server can now work as a phone", or "the phone is now my server". It is to solve this kind of issue that many languages have markers to specify what each noun means in the sentence.
It works in Spanish i think... "Mi servidor es un telefono" - As someone switching back and forth between English and Spanish, it often feels like Spanish sentences are "backwards" to English.
I think I’m English the term you’re looking for is an amphiboly. These sentences are not grammatically incorrect, but can be can leave ambiguity about their interpretation.
I think it's awkwardly phrased because it's too ambiguous.
"My car is a Jeep now" is most likely saying "I switched to using a Jeep as my car" because, short of a large merger, it's not likely that the same car changed its brand.
The same server can become a phone and also the identification of my server can be switched to a phone.
Not exactly the same usage but I run a headless Chromium with Puppeteer on a Raspberry Pi 4 at home for some light ("ethical") web scraping (as a residential IP is essential sometimes to bypass Cloudflare).
A real html page maxes the cores easily but it works. Keeping the pages open instead of closing / reopening tabs helps.
For reference I tried running it in a container inside my low end Synology DS223j but any container running, even doing nothing, ruins disk performances, weird bug.
77 comments
[ 0.51 ms ] story [ 30.3 ms ] threadwould'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%?
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
Would have been a fun load test had you hosted your blog on the phone.
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.
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.
without root, you also can't bind to ports on any android phone, and rooting often requires an unlocked bootloader and not all android phones support bootloader unlocking. You also need an unlocked bootloader to install postmarket os.
so without binding to ports you can't run a web server unless you run it through a proxy server which the author did, or containers at native speed on postmarket os because you will not be able to flash the phone with postmarket os if you have missing kernel syscalls on android nor root the phone for the speed increase on android depending on your android kernel version i assume.
so with android containers may or may not work without emulating x86, and without root chances are it will be slow specially if you are forced to emulate it as x86 because it turns out you have missing syscalls, nor root to make them faster if they exist on android. again no chances to install postmarket os nor rooting to make containers faster, without bootloader unlocking.
not all android phones can have their bootloaders unlocked unless you find an exploit. https://github.com/zenfyrdev/bootloader-unlock-wall-of-shame
Rooting is required to install postmarketos, and making termux faster and bind to ports on Android. You don't need postmarketos if your android version can run containers on termux with all the required kernel syscalls
To root or install postmarketos you need an unlocked bootloader.
Termux is only slower without root if you use proot. PRoot provides a limited implementation of chroot that runs unprivileged in userspace, but this also causes it to be pretty slow. If the server software you want to run is available in the Termux repos, you can use that and have it run at full-speed.
Termux works by patching all programs to treat /data/data/com.termux/files/usr as the root directory and /data/data/com.termux/files/home as the home directory. This introduces some compatibility issues, but it doesn't make it any slower.
The Termux project has a great wiki at https://wiki.termux.com/
Even in this environment of inflated hardware prices, you can get one for a reasonable price.
Although I do see the appeal in getting unconventional hardware to do what you want, just for the love of the game.
Old Optiplex are also good deals. I bought a Dell Optiplex 5070 MT for $150 for myself and 2 Dell Optiplex 3070 SFF computers for $75 each to replace my mom's aging Windows 7 PC. All 3 computers take DDR4 and M.2 NVMe SSDs and have an Intel i5-9500 CPU that will also run Windows 11 pretty well, if you're into masochism that is.
Or set the phone to never charge above 80%
Thta said, keeping it on charger for months will eventually swell its battery, true.
For me I have a 24x7 running intel gen 11 nuc, i am lucky to get it installed with 32G memory and two NVME disks years ago and cannot image add those memory and NVME disk with much higher price
Just run some docker and VM on that, use cloudflare tunnel or tailscale funnel if you want to expose some service to the wild internet
I recently even find a pixel 5 and passthrough it to the openclaw VM on that nuc, let it browse the X to find some posts and relax me from doom scrolling, though seems timeline still bad and no much valued post find.
Keeping it plugged in like that is going to harm the battery.
That and the fact that my Xiaomi 12 runs USB 2.0 ....
I'm stuck running stuff on MacBook at night when I don't use it because of that.
Electronic price need to become reasonable again, a 8gb raspberry pi 5 is about 200€ right now. It's absolutely insane.
My pi 4 did cost me 40€ a few years ago.
In linguistics, the terms “theme” and “rheme” refer to the status of information in a sentence [1]. The theme of a sentence is something that is known or can be assumed from the context (that is, old information), while the rheme is information that is newly introduced in the sentence, often as a comment on the theme. The tendency in many (most? all?) languages is for the theme to precede the rheme in connected discourse.
Without context, a reader is therefore likely to assume from “my X is a Y now” that X is something the writer had previously and that Y is something new. Because most people have a phone but few have their own servers, I was initially confused by the title “My server is a phone now.” I had to read the article to realize that the word order is in fact appropriate: for the writer, the server is old information (something he has had for a while) while the phone (as a server, at least) is new.
In English, theme and rheme might be inferred not only from the position in a sentence but also from how a noun is marked. Possessives like “my” are generally used before nouns referring to things that are previously known or assumed; the definite article “the” is similar. In contrast, the indefinite article “a” (or “an”) usually marks information being newly introduced, so it is more common with rhemes.
I worked as a Japanese-to-English translator for many years. Because the grammatical structure of Japanese sentences is very different from that of English, sentence-by-sentence translation often ends up with paragraphs where the information flow is awkward and unnatural. I gradually learned that I could produce smoother translations by reorganizing my English sentences into an old-to-new information sequence.
[1] https://en.wikipedia.org/wiki/Topic_and_comment
"My car is a Jeep now" is most likely saying "I switched to using a Jeep as my car" because, short of a large merger, it's not likely that the same car changed its brand.
The same server can become a phone and also the identification of my server can be switched to a phone.
HN comments sometimes try to argue this is impractical or impossible
https://far.computer
A real html page maxes the cores easily but it works. Keeping the pages open instead of closing / reopening tabs helps.
For reference I tried running it in a container inside my low end Synology DS223j but any container running, even doing nothing, ruins disk performances, weird bug.