HomeLab
Self-hosted infrastructure powering all my personal computing needs. A production-grade homelab with networking, compute, storage, surveillance, and smart home automation running 24/7.
The rack, by the numbers.
Compute — 3 Nodes
Storage — UGREEN NAS
Always learning, always building.
Networking
UniFi Cloud Gateway Fiber, managed switches, WiFi 7 APs, and fiber connectivity — supporting 50+ connected clients across all networks, with all three nodes on bonded 2.5GbE uplinks
VLANs & Firewall
Five isolated networks — Management, Home, Guest, IoT, and Cameras — with inter-VLAN firewall policies enforcing least-privilege traffic rules
DNS & Ingress
Split-horizon DNS and DHCP served from the UniFi gateway; public access runs entirely over outbound-only Cloudflare Tunnels, with no inbound ports open on the WAN
Compute & Storage
Three Dell OptiPlex Micro nodes — matched i5-9500T CPUs, 18 cores and 80GB memory across a three-node Proxmox VE cluster, Ubuntu and Docker running as a VM on top; UGREEN DH4300 Plus NAS alongside — 16TB HDD volume + 3TB SSD volume for Linux ISOs, backups, and photos
Observability
Full monitoring stack with Prometheus metrics, Grafana dashboards, and Loki log aggregation — custom homelab overview dashboard built via the Grafana API
*arr ISO Automation
Radarr, Sonarr, and Prowlarr automating acquisition and organisation of Linux ISOs; Discord webhooks push real-time notifications on downloads and status changes
Surveillance
UniFi Protect cameras + Aqara smart cameras with 24/7 recording
Smart Home — Matter & Thread
HomeKit, Philips Hue, and Meross devices unified via Home Assistant; Matter and Thread over Matter for local, cloud-independent device control
API Integrations
Custom automations via Home Assistant REST API, UniFi Network API, Grafana API, Cloudflare API, and Discord webhooks — services talk to each other without manual intervention
Virtualisation & Redundancy
A three-node Proxmox VE cluster with 2-of-3 quorum — guests spread across all three nodes, including a Home Assistant VM and LXC guests carrying duplicate monitoring and a second tunnel connector, so one node failing is not an outage
Automated Ops
Nightly update pipeline that reads changelogs, judges risk, and requests approval over Discord before applying; restore-verified backups; self-hosted Forgejo as the primary git remote, mirroring to GitHub