Homelab
The hardware and the stack that runs on it, at home and in a datacenter rack.
The lab lives in two places: a rack at home and a rack in a datacenter. It is where I try things before they reach production anywhere else, and it runs this site.
Hardware
Five Proxmox VE nodes, each with one job. The full story is in How I set up Proxmox in my homelab.

| Node | Job | Location | CPU | RAM | Storage |
|---|---|---|---|---|---|
| pve-worldstream | Compute, production | Datacenter | AMD EPYC 7402P, 24c/48t | 256 GB DDR4 | 2x 1 TB NVMe RAID 1, 4 TB NVMe |
| pve-anton | Compute, homelab | Home | AMD Ryzen 5 4600G, 6c/12t | 128 GB DDR4 | 1 TB NVMe |
| pve-fw | Firewall, OPNsense | Home | Intel Core i3-N305, 8c | 16 GB DDR5 | 500 GB NVMe |
| pve-hassio | Home Assistant, DNS | Home | Intel Celeron N3450, 4c | 4 GB LPDDR4 | 128 GB NVMe |
| pve-storage | Storage, TrueNAS | Home | Intel N100, 4c | 16 GB DDR4 | 500 GB NVMe, 8x 500 GB SSD on LSI SAS2008 |
Network
| Where | Device | Ports |
|---|---|---|
| Rack, core | Omada 24-port 2.5GBASE-T L2+ | 24x 2.5G, 4x SFP+ 10G |
| Rack, PoE | Omada 8-port 2.5GBASE-T L2+ PoE+ | 8x 2.5G PoE+, 2x SFP+ 10G |
| Cabinet | MikroTik CRS305-1G-4S+IN | 4x SFP+ 10G, 1x 1G |
| Every floor | Ubiquiti U7 Lite, 3 in total | Wi-Fi 7, PoE |
Platform
- Talos Linux managed with Omni: three control planes, four workers, running as VMs on the Proxmox compute nodes.
- Cilium as CNI and load balancer, with L2 announcements for the ingress VIP.
- Longhorn for persistent storage.
- BunkerWeb as the public ingress and web application firewall, with Let’s Encrypt handled centrally.
- Traefik for internal
.localservices. - Argo CD in an app-of-apps layout. Every component is one Application in Git, and nothing is applied by hand after bootstrap.
- Prometheus, Alertmanager and Grafana via kube-prometheus-stack.
Tooling around it
- GitLab self-hosted for source, CI and the container registry.
- Terraform for provisioning and Ansible (with AWX) for configuration.
- Coder for cloud development workspaces, which is where this post was written.