Infrastructure
My Homelab
A self-hosted environment running on enterprise hardware at home — Proxmox virtualization, Docker containers, ZFS storage pools, and everything managed through Infrastructure as Code.
Why Self-Host?
I run everything I can on my own hardware. Not because cloud services are bad — but because running your own infrastructure teaches you things no tutorial ever will. Every outage is a lesson, every migration is a puzzle, and every late-night debug session builds intuition that carries over to professional work.
My homelab started with a Raspberry Pi and a dream. It has grown into a multi-node Proxmox cluster with redundant storage, automated deployments, and more services than I sometimes remember deploying. Everything is managed through Infrastructure as Code — OpenTofu for provisioning, Docker Compose for services, and automated monitoring to catch problems before they become outages.
Hardware
The physical machines running everything.
Proxmox Hypervisor
Primary compute node running all VMs and containers. Handles virtualization, networking, and orchestration.
CPU: Intel i5-13500 RAM: 64GB DDR5 Storage: 1TB NVMe (boot/VMs) + 2x 1TB SSD (local storage) OS: Proxmox VE 8.x
NAS / Storage Server
ZFS-based storage server providing network shares for media, backups, and project data.
CPU: AMD Ryzen 5 3600 RAM: 32GB DDR4 Storage: 2x 20TB + 2x 16TB (ZFS stripe) OS: TrueNAS SCALE
Networking
Managed switch and firewall handling VLANs, inter-VM traffic, and WAN routing.
Router: Ubiquiti EdgeRouter Switch: Managed L2/L3 WAN: 500/500 Mbps fiber Cloudflare Tunnels for external access
Architecture
The architecture follows a simple principle: separate concerns into dedicated VMs, containerize services, and manage everything as code. The Proxmox hypervisor runs five VMs, each with a clear responsibility — infrastructure services, web hosting, media automation, development tools, and monitoring.
All external traffic flows through Cloudflare Tunnels into Traefik reverse proxies, which handle TLS termination, routing, and authentication via Authentik (OIDC/SAML). Internal services communicate over a flat network with firewall rules controlling access between VMs.
Infrastructure changes go through a GitOps pipeline: push to the homelab-iac repo, OpenTofu plans the change, a PR gets reviewed, and on merge the change is applied automatically with Discord notifications at each step. Docker stacks are versioned in a separate repo with compose files and environment configurations.
Services
15 services across 8 categories, all self-hosted and self-managed.