Project
Homelab Infrastructure as Code
Disposable lab VMs on Proxmox, provisioned by Terraform and configured by Ansible.
Every lab I have ever killed started the same way: one manual change, then another, until the box stopped making sense. This project is my answer. The homelab is now described in code, so a VM is something I can delete without grief and rebuild without memory.
The Terraform side manages virtual machines on Proxmox. Each VM is a full clone of a golden template, tagged terraform, disposable, lab, and configured defensively: protection against accidents, a defined stop-on-destroy behavior, and clone retries for when the datastore is busy. Nothing in the lab is hand-built anymore, which means nothing in the lab is undocumented.
Once Terraform hands over a running VM, Ansible takes it from running to trustworthy. The playbooks and inventory live in the same repository, so the network layout and the configuration that depends on it never drift apart.
I also keep toolchain receipts: a dated snapshot of the exact versions that built everything. When a plan behaves differently in six months, I will know what changed, and it will not be a mystery I have to solve twice.