Why#
There is a specific kind of decision that only works if you don’t think about it too long. Buying the hardware was that decision. Once the Raspberry Pi was ordered, there was no way back. The project was real.
That didn’t stop me from overthinking everything else. Before a single cable was connected, I had started a strategic framework document. A project plan. Principles. A governance structure. Iteration after iteration of documents describing a system that didn’t exist yet. Too much detail, too early, for something that was still just a cardboard box on the doorstep. Looking back, it was displacement activity — the kind of preparation that feels like progress but is really just a way of postponing the moment when something could actually go wrong.
Eventually I stopped writing and started building.
Family#
Suddenly I was spending more evenings in my home office. Not working — at least not in the usual sense. My partner noticed. A homeserver? Why? The response was somewhere between scepticism, mild disinterest, and — I’d like to think — a quiet kind of pride. Hard to tell.
The timing was not accidental. Around the same time, I inherited a vinyl record collection. A new turntable arrived. While records played in the background, I quietly let it be known that we would soon need to have a conversation about all those gigabytes of photos sitting in Google and Microsoft cloud storage. I chose my moment carefully.
Tech#
The architecture existed long before the hardware did. I had researched open source components, compared options, made decisions — all in documents, all theoretical. The ambition was considerable: two Raspberry Pis (one for development, one for production), a VPS for a lab environment, external access, SSL, TLS, a self-hosted wiki to document everything. Three environments. Proper separation of concerns. I was designing an enterprise-grade setup for a small family.
Nothing was actually running yet.
Project#
The hardware arrived. Wrong case — the first lesson in the gap between specification and reality. Ubuntu installation followed, with its own surprises. NVMe boot on a Pi 5 is not as straightforward as it sounds. Partitioning, initramfs, chroot — problems I hadn’t anticipated, solved one by one. It brought back memories of teenage evenings spent deep in the Windows boot menu, staring at blue screens of death, repartitioning drives, and wondering whether the machine would ever start again. Some things don’t change.
Then something unexpected happened: it just worked. SSH hardening. Firewall. Fail2Ban. BorgBackup. In a professional context, getting these things properly configured across a large organisation is a multi-year programme with consultants and compliance frameworks and steering committees. Here, on a Saturday afternoon, it was done. Tested. Backed up.
I found myself asking a question I’ve asked many times in boardrooms, but never quite like this: why is it so hard to get the basics right at scale, when the basics themselves are not that hard?
The server got warm. I checked the temperature. I learned what Docker actually does, not just what the diagrams say it does. Phase 0 was closed.