For years my little stack of personal services lived on a couple of small cloud VMs. A few static sites, a private Git remote, a feed reader, the usual collection that accretes when you like running your own things. It was fine. It was also, when I added it up properly, costing more per month than I would care to admit for what amounts to a glorified backup of my own data, and most of those machines sat at three percent CPU all day.
So over a few weekends I moved most of it home. Not all of it, and I want to be honest about why.
The hardware is unremarkable: a small fanless box that draws less power than a lightbulb, and an older desktop pressed into service as the thing that actually does work. Everything runs in containers behind a single reverse proxy, with TLS terminated by a local instance pulling certificates over the DNS challenge so I never have to expose port 80 to get them.
The thing that made this viable, and that would have been a nightmare five years ago, is that the home-server tooling has genuinely grown up. Containers mean a service is a config file, not an afternoon of installing dependencies. A reverse proxy with automatic certificates means HTTPS is a default, not a chore. And cheap, low-power hardware means the electricity bill for running all of this is a rounding error rather than a reason to stop.
What did I actually gain? Latency, for one, which I did not expect to care about and now notice every time the feed reader opens instantly. Control, in the boring but real sense that my data is on a disk I can hold. And cost, eventually, once the hardware pays for itself against the monthly VM bills, which it does in well under a year at my scale.
What did I lose? This is the part people skip when they evangelise self-hosting. I lost someone else's uptime. When my home connection drops, my services drop with it, and that is on me. I lost the casual disaster recovery of a provider's snapshots, so I had to actually build backups that leave the house, because a fire or a flood should not take my data with my hardware. And I lost the ability to not think about it, which is the real product the cloud sells.
So I split the difference. Anything that only I use, or that I am happy to have offline for an hour, came home. Anything that other people rely on, or that absolutely must be reachable when my house loses power, stayed rented. The personal Git remote, the feed reader, the photo backup target: home. The one small site a couple of friends actually depend on: still on a VM, because their experience should not depend on my router behaving.
That boundary is the whole trick, I think. "Self-host everything" is a slogan. "Self-host the things where I am genuinely the right person to be on call" is a strategy. The cloud is not the enemy and it is not the saviour, it is just rented certainty, and you should buy exactly as much of it as the situation actually needs.
The fanless box has now been up for three weeks without a thought from me. That is the bit I am quietly pleased about.