№ 002 · 2026-06 · shipped · proxmox × 3

The lab is a repo now

ansibleproxmoxautomationiac

Every home lab reaches the same fork in the road. Down one path: a collection of lovingly hand-configured servers that nobody can rebuild, where the documentation is “I think I set that up in March?” Down the other: everything is written down as code, and the whole lab can be re-created from a single folder of files.

We took the second path, with deliberately simple tools. The two names worth knowing: Proxmox, the software that lets one physical computer host many virtual ones, and Ansible, an automation tool that reads recipe files and makes machines match them.

The machines underneath

The foundation is three physical server nodes — two in the main house, one in the apartment over the garage. That two-building split matters more than any spec sheet: it means the important stuff can run twice, once on each side, so a single building losing power doesn’t take the essentials down. More on that in the next couple of entries.

New server, no hands

Creating a new virtual machine used to be an evening of clicking through menus. Now it’s a recipe: the automation asks Proxmox to stamp out a new machine from a golden template, size it, connect it, and boot it — and the first-boot setup wires in the right names and keys so it comes up already reachable and ready. Every machine in the lab was born this way, which means every machine in the lab is replaceable.

The best trick: the automation carries its own toolbox

My favorite design decision: the automation tool itself runs inside a container. Translation: any computer that has Docker installed can rebuild this lab — nothing else to install, no “works on my laptop” drift, no setup instructions beyond download the folder and run one command. And the recipes are safe to run twice: they only fix what’s different, so re-running is a health check, not a hazard.

Why bother, at house scale

Because the payoff isn’t hypothetical. Disaster recovery went from “a weekend, maybe two, if I remember everything” to “point the recipes at fresh hardware and wait.” Every change to the lab is a readable diff in version control, so the lab’s whole history is a scrollable log. And when Claude and I plan a change, the plan can be reviewed before it touches anything — infrastructure by pull request, even when the reviewer is a language model and the data center is a closet.