The Homelab So Far

A Black and white image of some computers, that has been blurred.

For a long time, my homelab has been a mixture of curiosity, ambition, and unfinished intentions.

Like a lot of personal infrastructure, it did not begin as a grand design. It grew in layers. One machine became two. One service became several. Something useful would appear, then something interesting, then something I thought I should learn because it seemed like the next logical step. Over time, the lab became part workshop, part toolbox, and part mirror. It reflected not just the systems I was building, but the way I think: solve the problem in front of me, then see what that makes possible next.

Recently, I decided it was time to tear it down and rebuild it properly.

That choice was partly practical. I wanted a cleaner foundation. I wanted to run my own Immich instance, experiment with local LLMs, and create a better home for the tools and services that matter to me. But it was also philosophical. At some point, enough small changes accumulate that you stop being confident you understand what you have. You can still use it, still patch it, still add to it, but the shape of the system becomes less obvious. It starts to feel more inherited than chosen.

So I wiped both of my main hosts and started again.

Their names are anvil and hammer, which feels fitting. They are not especially exotic machines, but they are mine, and they are enough. I installed Ubuntu 24.04 on both rather than chasing the excitement of something newer. That was one of the first lessons of this rebuild: the host layer should be boring. There is plenty of room for experimentation inside virtual machines and containers. The hosts themselves should be stable, understandable, and quiet.

This time I separated the host OS from the Incus storage properly. Both machines have a modest root filesystem and a larger ZFS-backed pool for Incus. That one decision already feels like it paid for itself. It made the layout easier to reason about, and it gave the hosts the kind of structure I had been missing before. I also installed Incus from Zabbly, which gave me a current Incus setup without having to move the hosts onto a less settled operating system.

From there, the work became less dramatic and more satisfying.

Static IPs came first. Then ZFS. Then Incus. Then a test container. Then a test VM. Then bridged networking, so I could decide whether a service should live on a private internal network or sit directly on my LAN like any other machine. I took it one step at a time, one host at a time, and that turned out to be the right pace. There is something deeply reassuring about proving each layer before you build the next one.

In the process, I learned again that good infrastructure is often less about brilliance and more about discipline. The glamorous part of a homelab is usually the service at the top: the photo library, the AI experiment, the dashboard, the site. But the real confidence comes from everything underneath being clear enough that you know what is supposed to happen, what is actually happening, and what to check first when the two diverge.

That does not mean the rebuild was only technical.

One of the things this process brought into focus was the difference between projects I want to run because they are genuinely useful to me, and projects I want to run because they feel like the kind of thing a person with a homelab should run. Those are not always the same thing. I had to think about what belongs at home, what belongs somewhere simpler, and what does not need to exist at all.

That was especially true when I started thinking about writing.

I already had a WordPress site. It existed, but I was not really using it. What I wanted was not more website infrastructure. What I wanted was to write more. Once I saw that clearly, some of my decisions changed. The right writing workflow is not the most technically impressive one. It is the one that gets out of the way. In that sense, the writing side of this rebuild became a useful counterweight to the rest of the lab. It reminded me that tools are not the point. They only matter if they support the thing I actually want to do.

That lesson keeps repeating.

I want Immich because I want a better home for my photos, not because deploying another service is inherently satisfying. I want to experiment with local LLMs because I am curious and because I think they may become useful in how I write, organise, and think, not because “AI” needs to be present everywhere. I want a notes or wiki system for the same reason. I want a place where knowledge can accumulate without disappearing into old terminal history, half-finished documents, or memory.

Even identity and security fall into that pattern. I have spent time thinking about authentik, public and private access, DNS, and whether I need more moving parts or fewer. The answer, more often than not, has been fewer. Not because complexity is bad in itself, but because every additional layer should earn its place. I am trying to become more suspicious of building things just because I can.

There have been other reminders too. Security updates matter. Reboots matter. Documentation matters. Testing matters. The hosts were patched and rebooted when the recent kernel issue made that necessary. That was not exciting, but it was right. A homelab is still a lab, but if it is going to carry the services I care about, it also needs habits that are a little closer to stewardship than play.

Right now, the lab feels better than it has in a long time.

Not finished. Not complete. Probably never complete. But clearer.

anvil and hammer are rebuilt. Incus works. ZFS works. Containers work. VMs work. NAT networking works. Bridged networking works. My writing site is alive. Essays are being published. The shape of the whole thing is easier to see. More importantly, I understand more clearly what I want it to become.

I do not think the most important outcome of a homelab is the number of services you run. I think it is what the lab teaches you about systems, priorities, and yourself. Mine has taught me that I like building, but I also need to know when to stop adding layers. It has taught me that infrastructure should support life, not become a substitute for it. And it has reminded me that rebuilding is sometimes less about replacing what was there and more about deciding, with clearer eyes, what is worth carrying forward.

So that is where the homelab is today.

Not at the end. Just at a better beginning.