Homelab Journey Part 10: What’s Working, What Isn’t, and What’s Next

The homelab is useful now.

That is the main thing. It is easy to judge a lab by how impressive it looks, how many nodes it has, or how close it gets to something you might run at work. That is not how I want to measure it.

I care whether it solves real problems.

At this point, it does. Photos, documents, home automation, local Git, routing, backups, and a few supporting services all run in one place. It is not perfect. It is not enterprise. It is a small home platform that I understand well enough to keep improving.

That is a decent place to be.

What is working

The biggest win is that the lab has a purpose.

It is not just a cluster looking for work. Immich exists because photos matter. Paperless exists because paperwork is easier when it is searchable. Home Assistant exists because the house is easier to manage when the data is local and visible.

Docker Swarm has also held up well for the scale. It gives me multi-node deployment without turning the whole setup into platform work. Ansible keeps deployment repeatable. Traefik keeps access tidy. Portainer gives me visibility. Restic gives me a backup story I have actually tested.

None of those pieces is exciting on its own. Together, they make the lab usable.

What has been painful

Storage is still the awkward part.

That was predictable. Shared storage makes the cluster easier to run, but it also creates a clear weak point. NFS works, and I understand it, but it is not magic. Permissions, performance, and service expectations all need care.

Raspberry Pi hardware is also a tradeoff. It is cheap to run and good for learning, but some workloads do not care about my electricity bill. Photo processing, OCR, databases, and anything with heavy disk I/O can make the limits obvious.

The other painful bit is maintenance drift. A service gets added, a variable gets named quickly, a dashboard gets tweaked, and six months later the system is harder to understand. That is not a tooling problem. That is discipline.

What I would do again

I would still start simple.

The lab became useful because the pieces were understandable. Swarm instead of Kubernetes. NFS instead of a more complex storage layer. Ansible instead of manual rebuild notes scattered around. Restic instead of a backup platform.

Those choices are not universally correct. They were correct for this setup.

I would also still prioritise backups early. Not after everything is finished. Not after the “fun” services are running. Early. The data is the point. The containers are just a way to reach it.

What I would change

I would be more ruthless about experiments.

Some services deserve to be temporary. They should have an expiry date, or at least a note explaining why they exist. Otherwise they hang around and become part of the mental load.

I would also document decisions sooner. Not long essays. Just enough to explain why something is the way it is. The reason behind a choice is usually the first thing to disappear from memory.

And I would treat storage as its own project earlier. It underpins everything. If storage is messy, every service inherits the mess.

What is next

The next phase is not adding a dozen more services.

It is making the current ones easier to trust.

That means better restore notes, clearer monitoring, tidier dashboards, and fewer undocumented corners. It probably also means moving some workloads off the Pis if they keep proving they want more hardware. That would not be a failure. It would just be the system telling me where the limits are.

I am still not in a rush to move to Kubernetes. If a real requirement appears, fine. Until then, the current setup has plenty left to teach.

The main lesson

The main lesson is that a homelab should serve the life around it.

It should protect things that matter. It should make repeated jobs easier. It should teach useful lessons without becoming a second job. When the platform becomes more important than the services, something has drifted.

This lab is at its best when it stays practical.

Useful beats impressive. Understandable beats clever. Restorable beats beautiful.

That is where I want to keep it.