My Homelab

My personal projects and the services I self-host run on a small rack in my office. This is what's in it.

8

machines

52

CPU cores · 84 threads

256 GB

RAM

35.5 TB

raw storage

Office rack

24U · front view

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Cable management
24-port PoE switch
KVM switch

pmox-cpu-01

pmox-cpu-02

Empty 3U chassis
Empty 4U chassis

pmox-cpu-03

HP Z620 Workstation

nas-01

ASRock Rack X570D4U-2L2T

4

Servers

2

Mini PCs

2

Raspberry Pi

Operating systems

  • Proxmox VE 5 machines
  • Debian 13 2 machines
  • TrueNAS SCALE 1 machine

The stack

  1. 1

    Hardware · 8 machines

    4 servers

  2. 2

    Host OS · 3 systems

    Proxmox VE

  3. 3

    Virtualised · 18 guests

    14 VMs and 4 LXC containers on Proxmox

  4. 4

    Kubernetes · 15 nodes

    One k3s cluster

  5. 5

    Services · 60+

    Public and LAN-only

Servers

Three Proxmox nodes and the NAS

pmox-cpu-01

Custom 2U build

Proxmox VE

k3s control plane and workers

AMD Ryzen 7 3700X · 8C/16T 32 GB RAM

pmox-cpu-02

Custom 2U build

Proxmox VE

k3s control plane and workers, GPU for media transcoding

Intel Core i5-10400 · 6C/12T 64 GB RAM GeForce GTX 1660 SUPER

pmox-cpu-03

HP Z620 Workstation

Proxmox VE

k3s workers, GPU for AI voice generation

2× Intel Xeon E5-2620 · 12C/24T 80 GB RAM GeForce RTX 3060 Ti

nas-01

ASRock Rack X570D4U-2L2T

TrueNAS SCALE

ZFS storage over 10 GbE

AMD Ryzen 5 5600 · 6C/12T 32 GB RAM 35.5 TB raw

Mini PCs

Low-power Dell OptiPlex Micros

pmox-mini-01

Dell OptiPlex 7050 Micro

Proxmox VE

Home Assistant, DNS and edge containers

Intel Core i5-7500 · 4C/4T 16 GB RAM

pmox-mini-02

Dell OptiPlex 3070 Micro

Proxmox VE

k3s control plane, worker and DNS

Intel Core i7-9700T · 8C/8T 16 GB RAM

Raspberry Pi

ARM nodes in the k3s cluster

rpi5-01

Raspberry Pi 5 (8 GB)

Debian 13

Kubernetes worker node (arm64)

Broadcom BCM2712 · 4C/4T 8 GB RAM

rpi5-02

Raspberry Pi 5 (8 GB)

Debian 13

Kubernetes worker node (arm64)

Broadcom BCM2712 · 4C/4T 8 GB RAM

What runs on it

Kubernetes

k3s v1.34 · 15 nodes · 72 ArgoCD apps

Most of what I run lives in a single k3s cluster. VMs on the Proxmox hosts and both Raspberry Pis join it as nodes, and ArgoCD keeps it in sync with git.

Highly available control plane

3 control-plane nodes with embedded etcd, each on a different physical host.

12 worker nodes

10 VMs across the Proxmox hosts plus the two Raspberry Pis.

GPU passthrough

An RTX 3060 Ti generates the radio's AI voices and a GTX 1660 SUPER transcodes video for Jellyfin.

GitOps

Everything is declared in git and deployed by ArgoCD, with secrets sealed before they're committed.

Storage and databases

Replicated Longhorn volumes, PostgreSQL clusters on KubeBlocks, backups to S3-compatible storage.

Ingress, TLS and SSO

Traefik with cert-manager certificates, and Keycloak single sign-on across services.

Some of the services

ForgejoImmichJellyfinVaultwardenKeycloakNavidromeAudiobookshelfOpenCloudKestraGrafana 40+ more

AdGuard Home

2 LXC containers, one per mini PC

×2

Network-wide DNS with ad blocking. Two instances kept in sync, so DNS stays up when one host is down.

Home Assistant

Home Assistant OS on a mini PC

VM

Home automation for the smart plugs, relays and sensors around the house.

Edge and tunnels

The same LXC containers as DNS

×2

Tunnel clients link the lab to a small public VPS that fronts the public services.

TrueNAS SCALE

Bare metal on nas-01

NAS

ZFS pools for bulk storage, served over 10 GbE.

See what runs on it →

The personal projects hosted on this rack.