Homelab + workstation

The lab.

What runs at home, drawn to spec. It’s mid-rebuild, so anything dashed is next.

Rebuild in progress · revised

Threads
64
threads, two Xeons, one R730
Memory
512GB
of RAM in the same box
ZFS pools
3
ZFS pools: rpool, fast, bulk
Cluster
3
Talos 1.14 nodes on Proxmox
Cabinet
9U
of 42U in the cabinet
01 Hardware TD-LAB-01 · As built

The cabinet.

9U of 42U in use. The rest is air, for now.

Hover or tap anything numbered.

TD-LAB-01 · The cabinet The front of the 42U cabinet, rails numbered from the top. A shelf at U1 to 2 holds a Raspberry Pi 4, the fiber ONT and a PoE injector; U3 to 7 are empty; a UniFi UNAS Pro 8 sits at U8 to 9, a UniFi Dream Machine Pro at U10, U11 to 12 are empty, and a Dell PowerEdge R730 is at U13 to 14. U15 to 40 are empty and broken out; a shelf at U41 to 42 holds a spare drive and patch cables. The U7 Pro access point is off the sheet, powered by the injector. Each numbered part opens a card. 5U FREE 2U FREE 1413121110987654321 U 4241 U15–40 · 26U EMPTY U7 Pro OFF SHEET 3 482.6 [19.00] 1 2 6 7 4 5
The gear
NoDeviceU
Compute
1 U13–14
Network
2 U10
3 Off sheet
4 U1–2
5 U1–2
Storage
6 U8–9
Edge
7 U1–2

Everything lives in the top 14U, except a shelf of spares at the bottom. Sheet 01 · The cabinet

02 Software TD-LAB-03 · In progress

The stack.

Metal at the bottom, Kubernetes on top. The top floor is still going up.

The stack · The stack The stack in 3 layers, top down: Kubernetes, built with Helm → Flux (14 running, 2 planned); Virtual machines, built with OpenTofu (2 running, 1 planned); Bootstrap, built with Ansible (7 running, 0 planned). Each numbered part opens a card. 03 KUBERNETES HELM → FLUX 03 KUBERNETES HELM → FLUX CILIUM 1.20 11 METRICS-SERVER 0.9 12 FLUX 13 CERT-MANAGER 1.21 14 EXTERNAL SECRETS 15 PROXMOX CSI 16 OBSERVABILITY 17 CLOUDNATIVEPG 1.30 18 RUSTFS 1.0 19 ADMISSION POLICIES 20 NFS CSI 21 VOLSYNC 22 HEADLAMP 23 HOMEPAGE 2.4 24 GATUS 5.37 25 ZOT 2.1 26 02 VIRTUAL MACHINES OPENTOFU 02 VIRTUAL MACHINES OPENTOFU TALOS NODES 1.14 ×3 8 GITHUB RUNNER 9 ROBOMP 10 01 BOOTSTRAP ANSIBLE 01 BOOTSTRAP ANSIBLE DELL R730 1 ZFS POOLS 2 PROXMOX VE 9.2 3 HOST CONFIG 4 RASPBERRY PI 4 5 UDM PRO 6 UNAS PRO 8 7
Solid is running. Dashed is next.

Hover or tap anything numbered.

04 Changelog Rebuild in progress

Changelog.

  1. · latest

    CloudNativePG, RustFS

    Postgres for the apps that want one, and an S3 store inside the cluster for its backups.

  2. R720xd → R730

    Swapped the server for an R730: 64 threads, 512 GB of RAM, and a RAID card that does HBA mode on its own. Then rebuilt the whole cluster on it from git.

  3. A registry, a GitHub runner

    Zot keeps my container images in the lab, and a runner VM builds them.

  4. Homepage, Gatus

    A start page for the lab, a status page that checks it, and alerts that finally reach my phone.

  5. kubectl top → Grafana

    Metrics and logs land in VictoriaMetrics and VictoriaLogs now, and Grafana draws them. The alert rules run too, but nothing pages me yet. On purpose.

  6. Real HTTPS, first app

    Apps on my network get proper HTTPS now: cert-manager fetches the certificates and Cilium serves them. First one in: Headlamp, a web UI for the cluster.

  7. Talos cluster, Flux and friends

    Three Talos VMs on Proxmox, built with OpenTofu. Cilium runs the network, and Flux runs the cluster from git.

  8. PERC H710P → HBA330, Proxmox on ZFS

    Pulled the RAID card, put in an HBA, and reinstalled Proxmox 9.2 on three ZFS pools.

  9. Cloudflare Tunnels → Tailscale Operator

    Swapped Cloudflare Tunnels for the Tailscale Kubernetes Operator, so a new service is one YAML file in git.

  10. Talos Kubernetes on Proxmox, with Terraform

    An immutable, Kubernetes-only OS on Proxmox, built end to end with Terraform.

05 Workstation TechDufus/dotfiles ↗

The desk.

Sherlock's desk: a wide monitor full of terminal and editor panes, a RØDE microphone on a boom arm, and the ZSA Moonlander split keyboard with a Logitech mouse between the halves.
Sherlock at the deskMoonlander front and centre
Machine
Sherlockcustom build, Ubuntu
RAM
64GB
Keyboard
ZSA Moonlander, custom DvorakORYX ↗
Terminal
Ghostty → sesh → tmux → Neovim