Homelab

My homelab is a small rack of mini PCs and a NAS. Nothing on it is set up by hand: OpenTofu creates the VMs on Proxmox, Ansible configures them and ArgoCD keeps the k3s cluster in sync with git. When something breaks I write down what happened, which is most of what you'll find below.

Hardware

The rack: a switch and patch panel at the top, three mini PCs on a shelf and a Synology NAS at the bottom

Lanberg 9U, 10-inch rack

UniFi Switch Lite 8 PoE
8 ports, PoE
DeskPi patch panel
12 ports
HP ProDesk Mini
i5-10400T, 40 GB RAM, 1 TB SSD
HP ProDesk Mini
i5-7500T, 32 GB RAM, 1 TB SSD
Dell OptiPlex 3080 Micro
i3-10105T, 32 GB RAM, 1 TB SSD
Synology DS923+
4 × 4 TB IronWolf, SHR

Outside the rack

Raspberry Pi 4
VPN and backup DNS
Raspberry Pi 3B

Each mini PC is a Proxmox host with a k3s control plane, worker and storage node plus one OpenBao node, so losing a host never takes a cluster down.

What runs on it

Kubernetes platform

  • Alloy
  • Argo CD
  • cert-manager
  • CoreDNS
  • Descheduler
  • Gitea runners
  • Longhorn
  • CloudNativePG
  • Prometheus
  • Reloader
  • Traefik
  • Vault Secrets Operator

Self-hosted apps

  • AdGuard Home
  • BentoPDF
  • DDNS Updater
  • D Dreeve
  • Garage UI
  • Glance
  • Homepage
  • Immich
  • Minecraft
  • n8n
  • ntfy
  • Odoo
  • PostgreSQL
  • Speedtest Tracker
  • Twitch Miner
  • Uptime Kuma
  • W Wealthfolio

Virtual machines

  • Proxmox VE
  • Gitea
  • Jenkins
  • OpenBao
  • Garage S3
  • Grafana
  • Loki
  • Home Assistant
  • Jellyfin

How it works

Short write-ups on how the homelab is built, how it runs and how it recovers when something breaks.

How it got here

2026
Simpler and more resilient

Helm charts replaced by Kustomize, Vault replaced by a 3-node OpenBao cluster, logging moved to Alloy.

2025
Goodbye Puppet, hello Ansible

Rebuilt configuration management on Ansible, with a Gitea Actions workflow per role.

2025
A proper rack

All hardware moved from scattered corners into a 10" rack.

2024
Kubernetes and GitOps

HA k3s cluster with Longhorn storage, ArgoCD syncing from git and secrets injected from Vault.

2024
Everything as code

VMs provisioned by Terraform, configured by Puppet, kept up to date by Renovate.

2023
GitLab out, Gitea + Jenkins in

Moved source control and CI to lighter self-hosted tools and built cloud-init templates for Proxmox.

2023
Docker on a few machines

Docker Compose stacks deployed with Puppet, a private registry and a Hugo blog to document it all.