For the last year or two Iāve been moving away from hosting things on a cloud VPS and instead started hosting them from a little server at home.
I had a few reasons for this:
Note that this is about self-hosting at home and self-hosting in the cloud. Iām not discussing delegating everything to a third party.
I run a variety of open-source software for me, my family, and a few friends. Things like Nextcloud, Forgejo, Audiobookshelf, website analytics, and some AI tools with Ollama.
So Iām not running anything too intense or with a lot of users.
In a world where we will āown nothing and be happyā, I want to actually own things. In this case, my data and the hardware where it lives.
I get this by self-hosting in general, but even more so when I can go and physically touch the server.
So beyond owning all my documents, photos, videos, and so on, itās owning the hard drives that hold those files and owning the server that hosts them and processes them.
As with all self-hosting, it also means owning the responsibility of backing them up and keeping the data secure. But when doing it from home it also means owning the responsibility of keeping the actual server up and running!
Iām not paranoid, but if I were, I could argue that anyone in the company that runs my VPS could easily (and secretly) have access to my data and do whatever they wanted with it. No matter what I did, they have physical access to the server.
In terms of cost the math is simple: an up-front cost or a monthly subscription.
Letās assume that a VPS powerful enough for my needs costs 20 EUR per month. 8 CPU cores, 16 GB of RAM and 160 GB of storage. For storage, letās assume that the 160 GB SSD included with the VPS is enough and I can use a storage box for the rest of my storage (compatible with Samba, Webdav, FTP, etc). Then letās say I need 10TB for another 20 EUR per month.
(using Hetzner for pricing here)
This brings me up to around 40 EUR per month for my VPS.
Now, I intend to use this server for many years. So what does the math look like for fully owning my hardware?
I wanted something small, power efficient, and quiet. So I went for a modern mini PC. But I could have built my own desktop with second-hand parts to get even more performance per EUR.
Just over a year ago I bought a Minisforum NAB-7 with an Intel i7-12700H for 359 EUR. I installed 32 GB of RAM for 66 EUR and a 2TB NVME drive for 130 EUR.
I also added a couple of 8TB hard drives for 155 EUR each, and an enclosure for the drives at 135 EUR.
Mini PC 359 EUR
16GB RAM Stick 33 EUR
16GB RAM Stick 33 EUR
2TB NVME 130 EUR
8TB drive 155 EUR
8TB drive 155 EUR
Drive enclosure 135 EUR
TOTAL: 1,000 EUR
So after 25 months this setup pays for itself in saved expenses to Hetzner š¤
One thing to also keep in mind though is that any replacement parts come out of my pocket (or warranty), whereas if Iām renting from Hetzner itās free. But from my experience this kind of hardware can last way more than 2 years.
As you may have also noticed, the little PC I set up has a lot more CPU cores (14 vs. 8), a lot more RAM (32GB vs. 16GB), and a lot more NVME storage (2TB vs 160GB) than the VPS. Iām also getting much more ābulk storageā (16TB vs 10TB) that is also faster (direct connection vs. network attached).
So while I didnāt do any benchmarking, Iām confident that Iām getting more for my money. Especially since I donāt share my CPU cores with anyone else, they are all mine!
There is one area where I canāt compete though: networking. Hetzner runs VPS in a datacentre, with a datacentre network connection. So even though I have a gigabit connection at home, it isnāt symetrical (upload is slower), it isnāt as reliable, and I may get in trouble with my ISP if I use up too much traffic š
This has all been working great. But then I moved.
This caused a lot of downtime. First during the actual move while my server was in transit between houses, and then again when the internet connection at the new house went down for 3 days because of a botched installation.
I could have spent a few many hours setting up a new VPS to replicate my server (or at least the services that are more important), but I decided the effort wasnāt worth it. I had better things to do.
But the downtime was annoying. The build process of the new version of my website relies on a Pocketbase instance I host on my home server. So no internet at home means no releases for my website. It also means no analytics, since that is also where I host my Umami instance.
For the same reason the multiplayer sync feature on my Phasmoguide tool was broken, since it also relies on a Pocketbase instance I self-host.
But maybe more important than all that, it also meant that I no longer had access to all my files in my Nextcloud server.
This has made me think a little about this setup and whether I want to continue down this path or not.
On the one hand Iām getting a lot of performance for a much cheaper price. And this setup had been working fine for 1+ year without any major downtime. On the other hand Iām building a single point of failure: my internet connection.
Or more accurately, multiple single points of failure: my internet connection, my server, my power connection, etc.
Because if something breaks in my home setup, I need to a) be at home to fix it, b) stop whatever Iām doing to troubleshoot/fix the issue, and c) if necessary, wait for replacement parts and/or technicians to fix the issue. Services like Hetzner hide all those issues away from me and I never have to worry about them. If there ever is a more serious problem they have full time employees to handle fixing it.
So going forward I need to be careful of running production-level applications from my home server - things where I want or need an uptime of > 99%. Maybe those belong on a VPS managed by someone else.
On the other hand, for things where an uptime of 50% is fine, Iāll keep using my home server š„
Iāve focused on only VPS vs. home server here, but there is another option to consider: renting an entire server.
Hetzner provides the option of renting a dedicated server as well as VPSes. This has a lot of the benefits of running a home server with the benefits of running inside Hetznerās datacentre. The only downside is the cost, since itās still a monthly subscription that starts at around 40 EUR per month.
You can either rent a new server or use the server auction system to get an older one at a discount.
I havenāt tried this option yet, but is likely a better deal than the more expensive VPS options.
I wrote another post with more detail on how I used Tailscale to host services from home š”
// the end