← All posts

Building my home lab on Proxmox

A tour of the self-hosted home lab I run on Proxmox VE: Docker, Home Assistant, UniFi, Nginx Proxy Manager, a Git server, game servers, and why Kubernetes is next.

  • #homelab
  • #proxmox
  • #docker
  • #self-hosting
  • #kubernetes

Since May 2023 I’ve been running a home lab out of my house. I’ve been home with my kids during that stretch, and the lab has been how I keep my hands on real infrastructure: building it, breaking it, and fixing it. This post is a quick tour of what’s running today and where I want to take it next.

The hardware

Everything runs on a single server I built myself from consumer hardware. It’s not enterprise gear, and that’s fine. You can learn most of what matters about virtualization, networking, and running services on a regular desktop-class machine.

Why Proxmox

The server runs Proxmox VE as its hypervisor. Proxmox is open source, built on Debian, and gives you a web UI for creating and managing virtual machines and containers. That makes it easy to spin up a fresh environment to try something, and throw it away when I’m done.

For someone who spent years working on CI/CD pipelines, that “cheap to create, cheap to destroy” feeling is exactly what I want from a lab.

What’s running

Most of my services run as Docker containers. Here’s what’s on the box right now:

  • Home Assistant runs my smart home automation, locally.
  • UniFi Network controller manages my UniFi network gear.
  • Nginx Proxy Manager is the front door. It’s a reverse proxy that routes requests to the right service and handles TLS certificates, so everything gets a proper HTTPS address.
  • A self-hosted Git server holds my own repositories.
  • Game servers round things out.

Having everything behind one reverse proxy keeps things simple: adding a new service mostly comes down to starting a container and adding a proxy host.

What I’ve learned

A few things running my own infrastructure has taught me (or reminded me of):

  • You are the on-call engineer. When something goes down, there’s no other team to page. Good habits like writing things down and changing one thing at a time matter just as much at home as they do at work.
  • Containers make experiments cheap. Docker makes it easy to try a new service and remove it cleanly if it doesn’t work out.
  • Networking is where the real learning is. Reverse proxies, DNS, and TLS certificates are the parts that make you actually understand how requests get from A to B.

Next up: Kubernetes

Docker on a single host has served me well, but I want hands-on experience with container orchestration, so I’ve started exploring Kubernetes. The plan is to use Proxmox to stand up a small cluster in virtual machines, move a few services over, and learn how deployments, networking, and storage work in practice.

I’ll write up how it goes, including the parts that don’t work the first time. If you run a home lab too, I’d love to compare notes. You can find me on LinkedIn.