Back to Projects

Self-Hosted Infrastructure

Bare-metal Proxmox cluster managed through Terraform, isolated with OPNSense VLANs, and locked down with zero-trust tunnels.

ProxmoxTerraformOPNSenseDockerLinux

Why I Built It

I got tired of relying on random third-party cloud services for things I could run myself, so I built my own rack of bare-metal hardware at home. It started as a single old PC running Docker containers and eventually turned into a fully automated Proxmox cluster running production-grade workloads.

What’s Running

  • Bare-Metal Proxmox VE: Hypervisor hosting LXC containers and VMs for all internal and public services.
  • Terraform (IaC): I don’t click around in web UIs to spin up infrastructure anymore. All VMs, storage pools, and network routes are written as Terraform code, so if a box dies, I can recreate it in minutes.
  • Zero-Trust Security: No open ports forwarded on my router. Everything external routes through authenticated Cloudflare Tunnels backed by OPNSense firewall rules.
  • Automated Snapshots & Backups: Daily snapshots sent to isolated storage with tested rollback routines so I can break things without fear.

The Network Layout

  • OPNSense Firewall: Custom physical box running OPNSense to handle routing, IDS/IPS, and local DNS.
  • VLAN Isolation: Strict network segregation—IoT devices, guest Wi-Fi, internal lab servers, and public-facing services can’t talk to each other unless explicitly allowed.
  • Monitoring & Observability: Prometheus and Grafana dashboards tracking CPU thermals, RAM usage, storage pools, and network throughput across every node.

Stuff I Learned

Configuring everything as code takes longer upfront, but it saved me countless hours the first time a drive corrupted and I rebuilt an entire environment with a single terraform apply. Building this gave me a deep appreciation for Linux internals, packet filtering, and why defense-in-depth actually matters.