The bill is what started it, but it isn't really the point. I had a small cloud VM running a couple of personal things, a bookmark archive, an RSS reader, a photo backup target, and the monthly cost had crept up the way these things do, a few pounds at a time, until I looked at a year of it and felt mildly ridiculous. So over a wet weekend I moved the lot back home onto a box in the cupboard, and I've been living with the decision long enough now to say whether it was a good one.
The box itself is nothing exotic. A small low-power machine, a single SSD, running Docker because every one of these services ships a perfectly good compose file and I have no appetite for snowflake installs. The whole stack came up in an afternoon. The hard part was never the services; it was everything around them.
Getting in from outside was the first real decision. I did not want to punch holes in my home firewall and put my router's IP on a dozen scanners' lists by Tuesday. A tailscale mesh solved it cleanly: every device that's allowed to reach the services joins the tailnet, and nothing is exposed to the open internet at all. For the one or two things I genuinely want public, a reverse proxy with proper TLS sits in front and only those get a door. The relief of not running a public SSH port is worth the setup on its own.
Backups are where self-hosting earns its reputation for biting people, so I did the boring thing properly up front. The cloud VM had backups I never thought about because someone else thought about them. At home that's on me. So it's a nightly restic snapshot to an offsite bucket, encrypted, and, this is the part people skip, a restore test. A backup you haven't restored is a rumour. I pulled a snapshot back to a spare directory and checked the files actually came out whole before I trusted any of it.
Power and uptime are the honest trade. A cloud VM has redundant power and a network that stays up when my street's doesn't. My cupboard has neither. I put a small UPS in to ride out the brief flickers that would otherwise corrupt a database mid-write, and I made my peace with the fact that if the house loses power for an hour, my RSS reader is down for an hour. For these services, that is completely fine. For something other people depended on, it would not be, and I'd have left it in the cloud without a second thought.
So was it worth it? Financially, clearly: the recurring bill went to roughly the cost of the electricity, which for a low-power box is pennies a day. But the real win is less tangible. The data lives in my house, on a disk I can hold. Updates happen when I choose, not when a provider deprecates an instance type. And there's a quiet pleasure in ssh-ing into a thing you own and seeing it just sitting there doing its job.
I'm not evangelical about it. The cloud is the right answer for anything that needs to be up when I'm asleep and the power's out, and for anything other people rely on. But for the small personal stuff, the bookmarks and feeds and photos that only matter to me, home is the better home. It just asks you to own the parts that someone else used to quietly own for you.