Home Lab Infrastructure
Three Proxmox nodes across two locations, provisioned with OpenTofu and configured with Ansible and NixOS. It runs the things I use every day and doubles as the place I prove out infrastructure changes before they touch anything I run for other people.
From one laptop to three nodes
It started as an old IBM laptop running Ubuntu and Samba, doing nothing more clever than holding files where more than one machine could reach them. It is now three main Proxmox nodes split across two locations, with two more I bring up when I need them.
Splitting across sites was the change that mattered. One location is a single power cut away from being offline, and keeping a second means the things I actually depend on do not all stop at once.
Managed like production
Nothing here is configured by hand. OpenTofu provisions, Ansible and NixOS configure, and a node can be rebuilt from that definition rather than from memory of what was installed on it.
That is deliberate rather than tidy-mindedness. It is the same stack I run commercially, so changes get made here first — a new Proxmox version, a NixOS change, a different backup approach — and whatever breaks, breaks on my own hardware rather than on something a client is paying for.
What it runs
The day-to-day services are the point as much as the infrastructure under them:
- Immich for photos, and a password vault, both of which replace things I would otherwise be renting
- AdGuard for DNS filtering across the network
- Grafana for dashboards, including the weather station
- n8n for automation, and Home Assistant with a set of Raspberry Pi sensors feeding it
It is the longest-running thing on this list by a decade, and the one that most directly made the rest possible — everything I know about running infrastructure started here.