cd ~/homelab && terraform plan

A homelab you manage like production

Owning some infrastructure is a very fast way to learn it. A homelab lets you break things properly, without a change request, without a blast radius, and without a bill that scales with your mistakes.

Homelab topology: a mini PC running Proxmox hosts three Talos Linux VMs forming a Kubernetes cluster. MetalLB gives Traefik the address 10.4.0.200, and *.lab.devopswithlijo.com resolves to it via Route 53. mini pc · proxmox terraform talos-cp control-plane Ready talos-w1 worker Ready talos-w2 worker Ready kubernetes · gitops (flux) metallb traefik ingress 10.4.0.200 prometheus · grafana · cert-manager route 53 · same zone as this site *.lab.devopswithlijo.com A → 10.4.0.200 (private, LAN only) what it costs to run one second-hand mini pc idle hardware bills nobody no NAT gateway to forget about
# cheaper than a lab account, and you keep the hardware

The stack, layer by layer

Each layer is its own episode. Everything lives in Terraform and Git, and nothing is configured by hand, so the whole thing can be destroyed and rebuilt from scratch.

  1. 01

    Proxmox

    The hypervisor. VMs and LXC containers on your own hardware, provisioned by Terraform rather than clicked together in a web UI.

  2. 02

    Talos Linux

    An immutable, API-driven OS built only to run Kubernetes. There is no SSH and no package manager, so there is very little that can drift.

  3. 03

    Kubernetes

    A real cluster, not minikube. Ingress, storage and certificates handled the way you would handle them in production.

  4. 04

    GitOps

    The repository is the source of truth. Merge to change the cluster; roll back by reverting.

  5. 05

    Observability

    Prometheus and Grafana, with alerts tuned to fire on things that matter instead of on every CPU spike.

Why bother, when the cloud exists?

Because managed services hide the part worth understanding. Managed Kubernetes hands you a working control plane and very little sense of what it does. Run it yourself and the first time a node stops joining the cluster you have to work out why.

It's also the cheapest lab you'll ever have. One second-hand mini PC covers most of this series, and idle hardware doesn't quietly bill you for a NAT gateway you forgot about.

git clone

Homelab-in-a-Box

The Terraform and GitOps configuration from this series, cleaned up and documented so you can clone it and get a working cluster instead of starting from a blank directory.