pmox-cpu-01
Custom 2U build
k3s control plane and workers
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
pmox-cpu-01
pmox-cpu-02
pmox-cpu-03
HP Z620 Workstation
nas-01
ASRock Rack X570D4U-2L2T
4
Servers
2
Mini PCs
2
Raspberry Pi
Operating systems
The stack
Hardware · 8 machines
4 servers
Host OS · 3 systems
Proxmox VE
Virtualised · 18 guests
14 VMs and 4 LXC containers on Proxmox
Kubernetes · 15 nodes
One k3s cluster
Services · 60+
Public and LAN-only
Three Proxmox nodes and the NAS
pmox-cpu-01
Custom 2U build
k3s control plane and workers
pmox-cpu-02
Custom 2U build
k3s control plane and workers, GPU for media transcoding
pmox-cpu-03
HP Z620 Workstation
k3s workers, GPU for AI voice generation
nas-01
ASRock Rack X570D4U-2L2T
ZFS storage over 10 GbE
Low-power Dell OptiPlex Micros
pmox-mini-01
Dell OptiPlex 7050 Micro
Home Assistant, DNS and edge containers
pmox-mini-02
Dell OptiPlex 3070 Micro
k3s control plane, worker and DNS
ARM nodes in the k3s cluster
rpi5-01
Raspberry Pi 5 (8 GB)
Kubernetes worker node (arm64)
rpi5-02
Raspberry Pi 5 (8 GB)
Kubernetes worker node (arm64)
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
2 LXC containers, one per mini PC
Network-wide DNS with ad blocking. Two instances kept in sync, so DNS stays up when one host is down.
Home Assistant OS on a mini PC
Home automation for the smart plugs, relays and sensors around the house.
The same LXC containers as DNS
Tunnel clients link the lab to a small public VPS that fronts the public services.
Bare metal on nas-01
ZFS pools for bulk storage, served over 10 GbE.
See what runs on it →
The personal projects hosted on this rack.