I like the idea of using old phones for infrastructure-lite applications, taking advantage of their low power requirements and built-in UPS (which, yes, has its own drawbacks which can only be mitigated to a certain degree).
I have a number of old android devices that I'd like to use for ...something cool like this, but my existing homelab infra could just add an extra VM or container to do this without any likely additional power draw. It's still cool and I want to do it though.
My only query about this cool project is why not wifi? Whilst I'm sure there's a good reason for the author (and I can understand having esoteric specific requirements because I have my own "things"), but it would negate the need for a docking->Ethernet device, which feels to me like unnecessary addition of a device that requires power. Also, bandwidth / throughput probably isn't much of a limitation given the device that's being used. I think I'm mainly interested in the author's specific reason for this requirement (I'm a BA, these questions are my bread and butter).
Comment to author: Gotta add the Pixel 5 to your homelab inventory! Also, nice site, layout and information.
> I like the idea of using old phones for infrastructure-lite applications, taking advantage of their low power requirements and built-in UPS (which, yes, has its own drawbacks which can only be mitigated to a certain degree).
I'd love to see a..."serverization" kit for some mobile devices, like the "consolized" kits developed for the game boy advance[1]: Extract the mainboard from your phone and extend it by directly interfacing it with external storage, a better power supply and a physical network interface.
I agree that a VM or container doesn't add to the power usage for a homelab that's already running. I kinda did it for fun and being able to run it off solar. I had original plans to turn the lab off at night and then the phone could keep running from battery. But, the homelab became critical infra and has to be always on lol.
The requirement for Ethernet was just for bandwidth consistency. My WiFi network isn't the best.
On Android devices, it’s generally difficult for apps to maintain persistent background services. I’m curious how you were able to prevent Android from terminating the process, and how the Pixel 5 server managed to keep running?
It runs inside Termux, which has a persistent notification to keep it open in the background. I believe I also extended the max phantom process to prevent it from being killed.
I'm not the author but can speculate. WiFi is higher latency and a bit probabilistic. Like the slowest 1% of requests to the server may take an additional 1000ms or so. And if I was running a blog from a phone I'd want it to be impressively fast. Also an old Android phone may not be able to use modern WiFi standards and it could struggle with the traffic from being on the HN homepage.
Old phone? It's a Pixel 5 from five years ago. My first Android ever in 2012 already supported 802.11ac with speeds faster than any internet connection I've ever had
I laughed at "Having a website that is fully offgrid". I _guess_ not being connected to the electrical grid while still being connected to the internet qualifies as "offgrid", but it kinda feels wrong to me.
Why, consider a device, like a mobile phone, which is not connected to power grid (solar-charged instead) and uses radio to access the Internet (typically 4G). I think it would be as off-grid as it gets. Quite a bit of off-grid equipment, like weather stations, traffic cameras, etc do exactly that.
I've had this dream of doing it in Elixir, and use it's capability to easily connect nodes securely together, to add more processing power into the system through by just slapping more phones at it.
One issue I have with doing this is what about security? Many older android phones don't get updates anymore (I'm not sure if a Pixel 5 is still supported, it might be) so I'd be concerned about security vulnerabilities going unpatched especially if the phone is exposed to the internet.
This is one of the longstanding issues with Android, yeah. Pixel 5 went EOL in 2023, though did get some extra (probably security) updates last year.
OEMs and SoC manufacturers have been getting better about upstreaming stuff recently from what I've heard (thank you Qualcomm!), but as far as stock OS images go I wouldn't expect manufacturers to support them for one moment longer than they have to.
I am guessing a business analyst (https://en.wikipedia.org/wiki/Business_analyst). Basically, someone who facilitates creating and communicating stakeholder analysis across a business. The idea is that a BA would have a thorough understanding of everything across a business. Think of them as a product owner in scrum, except there is a bit more overlap working with different parties both internal and external to the business.
You will likely find a BA (or someone with a similar role under a different name) in most large organisations (and likely in quite a lot of medium ones, too).
As per tim (thank you tim), yes, Business Analyst. I ask annoying questions to make sure everyone understands what the actual problem is rather than everyone making their own assumptions where there's ambiguity.
An additional device just to facilitate wired network usage over wifi usage felt like unnecessary additional complextiy and probably higher power usage. The blog author replied, however, saying that wifi was a bit flaky, explaining the design choice.
i've been working on an idea for a while to use those idle old phones for... distributed web and app testing. plug it in at night... wake up having made a few bucks.
problem is getting anyone to really care, though. cloud hosting is cheap.
The power efficiency is fascinating - modern phones are basically ARM servers optimized for battery life. Pixel 5 probably draws <5W under load vs 50-100W for a typical x86 server. For a personal blog, that's 400-800 kWh/year savings. The environmental impact of reusing vs recycling electronics is under appreciated.
For a static site you can get a lot better by dumping it on S3 or Github Pages. Your site uses 0W while not being used since the server was already running, and it consumes no resource usage while not being requested. But yeah an x86 server at home for a static site is awfully inefficient.
Depends. If you reuse otherwise wasted electronic it is efficient in avoiding extracting resources / energy building new hardware and avoids recycling energy or waste polluting earth.
A big picture analysis of reusing old hardware would be very interesting.
If you put it on AWS S3 (not subsidised), and your website is 1GB, which would be huge for a static blog, it'll cost you $0.27 per year to store / have available. The price is so incredibly small that numerous companies offer it as a completely free service.
I mean, they are sunsetting pages in favour of workers but it seems that static pages even in workers would have unlimited bandwidth and unlimited pages so there seems to have to be no difference and I trust cloudflare enough that they won't really remove these cf pages.
50-100W for equivalent work as a phone from 2020 can do would have been the case with CPUs from at least a decade ago. I should hope that one doesn't burn ~75W to host a few static files if it can also run on a Pi or phone or laptop that draws <20W idle
That's not to say it's not a good idea to make use of the super efficient "Pi" you already have at home in the form of (several, probably) old smartphones! Just that you'd not use it for the same purpose as a gaming desktop that can't idle below 50W
I thought recycle was the breaking down of the device into its constituents (mostly to recover precious metals or other base materials). In contrast, reuse is where the device is kept mostly intact and used for other purposes such as this. Just breaking things down requires considerable amounts of energy through the sheer logistics of it relative to just reusing it.
My small army of old android devices are plugged into a USB 'charging station' (multiple USB charging ports off a single plastic device) which in plugged into a smart switch. The smart switch turns on for a couple of hours overnight, to keep the phones charged at least minimally.
Most of the devices also have a custom ROM and are rooted, and using the ACCA app I restrict charging to a maximum of 80% battery capacity.
I had a Samsung Note 5 (released in 2015) that only went spicy maybe 6 months ago. I have a Samsung S9 and a Nokia 6.1 that are both still going strong with fairly recent versions of LineageOS. Both are 2018 phones, so around 6.5 years old (old for phones, but shouldn't be 'electronically' old).
The worst part of the spicy pillow problem is that even if you remove the battery cell and solder a power supply to the BMS, Android will eventually decide "I must be out of battery by now" and shut itself down. You have to root the device to override this and it is supremely annoying.
Of course if the thing could just run directly off wall power like you suggested, this wouldn't be a problem.
I'm told that most phones have power usage spikes that exceed the power delivered by the charger, and they use the internal battery as a capacitor to soak up those spikes.
The easiest way is with a programmable plug, it does not have to be smart, just set it up to charge the phone for 1 or 2 hours at the cheapest, or available by solar, the rest of the day the phone will use battery as usual. Is the battery cooked? Then set it to be half an hour every 4 hours or so.
Don't run it empty or get it super hot. Gas generation and cell degradation really seems to skyrocket if cells drop below 3V, so don't run them flat. Doesn't seem to ever happen on devices kept on around the clock and powered so long as they aren't in crazy hot conditions.
Well, offhand, no one buys a cloud server for power efficiency, people buy into the cloud for reliability, or performance, or cost -- or some combination thereof.
If you're buying ultra-power, you're forgoing power-efficiency.
> no one buys a cloud server for power efficiency, people buy into the cloud for reliability, or performance, or cost -- or some combination thereof
Low cost and power efficiency are pretty much the same thing for a datacenter though, since cooling is the most expensive part. Hence e.g. AWS pushing Graviton.
A single cloud server could host hundreds of thousands of personal static websites though. I suspect they probably do use less power than 100,000 old phones.
So, uh, hi. This is my blog post. I'm just some guy that blogs and gets like 5 reads per post, so I'm a fish out of water here. I didn't even have a HN account until today.
To answer a some questions: 1. Still running on the Pixel. I never had a reason to change it. 2. It is on a residential internet connection because, well, I never planned on having any volume of readers. 3. I'm just some dude that does random projects at home after work. I'm not even in tech. I actually own a construction contracting biz.
You think like an engineer, so you're in good company here. I had a brief skim of the rest of your blog and there's definitely content that's interesting to me at least, and as I said in a comment above, the site design is beautifully easy to read and navigate. I plan on returning.
Others seem to agree, given your "I want to be left alone" post also got some HN love.
Thanks for the blog post, interesting read. Question: why run `hugo serve` instead of using it to build the files and then use nginx or some other webserver?
Question might be is it still hosted on a phone... DNS resolves to a residential ISP range, and the site seems to be holding up quite well still, so not sure
Hello, not OP but I can confirm after >10 years of doing it that hosting on reused portable hardware from a home connection is not just viable, it's cheap and stable. No issues with handling the HN frontpage here either
Blog author has confirmed that it's still running on the phone. Also it seems to have handled the HN traffic beautifully and without a hitch. Loading extremely fast (as I've been randomly sporadically checking it since it's been on the front page) the whole time. Don't believe there is any CDN involved as the domain resolves to a residential ISP range. Impressive!
Right, connected to the home lan would make sense, especially considering they detailed that it's fronted by nginx on another machine. curl -v does reveal nginx serving. I guess I was thinking maybe a phone wouldn't handle the HN load, but probably a mistaken assumption as it is after all a static site (believe it's Hugo generated html) and Pixel 5 likely has decent CPU and RAM (or at least plenty for static requests probably).
Anyone else find it kinda funny to have a "fully offgrid" website? That's an oxymoron, right? How can it be off grid if it's literally connected to the grid?
I understand they're using grid to mean electrical grid, but still funny.
Pretty wild how readily available compute has become. Sure not AI level compute but between modern consumer hardware and the mountain of free tier stuff out there I’ve always got more than ability to use it effectively
I'd argue that's happening right now. But we don't know if it's still running on a phone as the post is from September 2024. *Edit, Blog author confirmed it's still running on the phone.
Self hoster here with a vaguely similar setup at home. Absolutely not needed, that just defeats the purpose of self hosting and being in control. Might as well rent space in a datacentre if you're going to proxy via there anyway
One unexpected benefit of hosting your blog on a phone: an excellent defense the next time Comcast sends a nasty letter admonishing you for connecting a "server" to your residential internet.
Theoretically you can run Linux on iPhone according to this blog: https://konradybcio.pl/linuxona7/
But I don't know whether iPhone can be connected with ethernet.
there was another post from this blog earlier today that led me to check it and I've been scanning posts since. my kinda hackin', and yours too if you're into low power, recycling, self-*-ing ... very cool stuff