← Back to the journal

/ A NOTE BY JAKOB

What I want from a home lab

A place to learn infrastructure properly, including the less photogenic part: understanding a change and knowing how to recover.

The interesting part of a home lab is rarely the rack. For me, it is the moment a system stops being a diagram and becomes something I can inspect, change, and understand.

My repositories cover Proxmox, Kubernetes, Terraform, Ansible, networking, and the services around them. That makes the lab a useful meeting point between professional interests and personal projects. It also makes it tempting to keep adding things.

This note is a statement of what I want from that space. It is not a claim that every part of the lab already meets the standard.

#An experiment needs a question

“Try a new tool” leaves an experiment open indefinitely. “Can I recreate this service from its declared configuration?” gives it an end condition.

The same applies to storage, networking, and orchestration. Before changing a component, I want a small, inspectable question: what am I trying to learn, and what result would change my mind?

Question
  ↓
Configuration in Git
  ↓
Observed result
  ↓
Recovery attempt
  ↓
Note what changed in my understanding

That loop makes a lab useful even when an experiment fails. There is still a result to keep.

#Keep the desired state reviewable

One rule I care about is that the repository should explain what exists. A quick manual fix may restore service, but it creates a second problem if the next reconciliation silently reverses it.

For a configuration change, the local review starts with ordinary Git commands:

# Inspect the scope of the change before committing it.
git status --short
git diff --check
git diff --stat
git diff

These commands do not prove that the infrastructure is correct. They answer a narrower question: can I account for the files I am about to propose? The provider’s plan, the application’s validation, and a recovery check still have their own jobs.

#A backup and a recovery are different observations

A successful backup job says an operation completed. Recovering into an isolated test environment answers a different set of questions: is the data readable, is the configuration sufficient, and do I understand the dependencies?

I want the notebook entry to record the recovery attempt, including what was missing. Credentials, private addresses, and household details do not belong in a public version of that note.

The useful output of the lab is knowledge I can reuse. When part of that knowledge becomes a module, a provider, or a technical guide, its public home is Cloudsium. This journal is where I can keep the more personal thread: what I was trying to understand in the first place.