Skip to content

Homelab

Production-grade homelab infrastructure powering this website. 4-node Proxmox cluster with 34 services, enterprise-level high availability, and automated failover.

Homelab Infrastructure

📋 Note: The Cost Analysis and Build Your Own tabs are currently being updated with enhanced interactive content. Check back soon!

Homelab Infrastructure

Single physical workstation (WS-01) running Windows 11 Pro and Microsoft Hyper-V, hosting virtualized Proxmox VE 9.2, a dedicated Proxmox Backup Server (PBS 4.2) VM, and active LXC containerized workloads. GPU compute is hosted locally on the RTX 3060 12GB and exposed via Ollama. All public-facing apps reach the internet securely via Cloudflare Tunnel — the WordPress container itself has no outbound internet gateway by design.

Server Overview

1
Proxmox Node
WS-01 Hyper-V / Proxmox VE
~35
Running Guests
LXCs + VMs
8
CPU Cores (16 Threads)
AMD Ryzen 7 5800X
64 GB
RAM
DDR4

Node Status

Host Type CPU Usage Memory Guests Status
WS-01 Windows 11 Pro · Hyper-V Host (AMD Ryzen 7 5800X)
18%
48 / 64 GB
~35 LXCs + VMs · RTX 3060 (Ollama) Online

Key Services

Workloads isolated on the internal DMZ bridge (10.0.10.0/24) behind Cloudflare Tunnel, communicating with the Hyper-V host over persistent WinNAT.

🌐
WordPress (LXC 300)
DMZ Bridge · 10.0.10.10
Running
🔐
Cloudflare Tunnel (LXC 301)
DMZ Bridge · 10.0.10.5
Running
⚛️
Atomic (LXC 670)
DMZ Bridge · 10.0.10.91:8080
Running
🕷️
Firecrawl (LXC 635)
DMZ Bridge · 10.0.10.30:3002
Running
🔎
SourceBot (LXC 420)
DMZ Bridge · 10.0.10.25:3000
Running
🧠
Ollama AI (Host GPU)
WinNAT · 172.16.10.1:11434
Running

Network Architecture

Dual-segment architecture separating the hypervisor virtualization tier from the isolated container workload DMZ, with Cloudflare Zero Trust tunnel ingress and strict iptables egress filtering.

Hyper-V WinNAT Virtual Network

Subnet: 172.16.10.0/20 (Gateway: 172.16.10.1)
Purpose: Hypervisor management, inter-VM fabric, and GPU inference bridge
  • WS-01 Host Gateway: 172.16.10.1
  • Proxmox VE Virtual Host: 172.16.10.10 (vmbr0)
  • Dedicated PBS 4.2 VM: 172.16.10.11:8007
  • Host Ollama GPU API: 172.16.10.1:11434 (RTX 3060 12GB)
  • Physical LAN Uplink: 192.168.1.100 (WS-01 physical NIC)

Isolated Workload DMZ (vmbr1)

Subnet: 10.0.10.0/24 (Gateway: 10.0.10.1)
Purpose: Containerized application tier isolated behind Cloudflare Tunnel
  • Cloudflare Tunnel: 10.0.10.5 (LXC 301 — Zero Trust edge ingress)
  • WordPress: 10.0.10.10 (LXC 300 — LAN-only web container)
  • Atomic: 10.0.10.91:8080 (LXC 670 — Knowledge graph)
  • Firecrawl: 10.0.10.30:3002 (LXC 635 — Web extraction engine)
  • SourceBot: 10.0.10.25:3000 (LXC 420 — Code search indexer)
  • Egress Policy: Outbound QUIC/HTTPS only; drops RFC1918 LAN & host ports

Storage & Backup Layer

Proxmox Backup Server 4.2 (Dedicated Gen-2 VM)

Location: Dedicated Hyper-V Gen-2 VM on WS-01
Address: 172.16.10.11:8007 (WinNAT internal)
Datastore: pbs-datastore (1.8 TB direct SCSI passthrough)
Backup Strategy: Deduplicated, encrypted chunk store with dirty-bitmap incremental backups & local thin snapshots
Role: Centralized backup and rapid disaster recovery for virtualized Proxmox VE and guest containers

Physical Hardware

WS-01 Workstation (Physical Host)

  • CPU: AMD Ryzen 7 5800X @ 3.80 GHz (8 cores / 16 threads)
  • RAM: 64 GB DDR4
  • GPU: NVIDIA GeForce RTX 3060 12 GB (Local AI inference via Ollama)
  • Storage: NVMe SSDs (Host/VMs) + 2 TB Passthrough External Disk (PBS)
  • OS & Hypervisor: Windows 11 Pro running Microsoft Hyper-V
  • Role: Single physical host — runs virtualized Proxmox VE 9.2, PBS 4.2 VM, and ~35 containers
  • Network: 192.168.1.100 (Physical LAN) · 172.16.10.1 (WinNAT Virtual DMZ)

Note: This page displays static data. Live metrics from the Proxmox API will be integrated in a future update.

Architecture Deep Dive

Explore the five layers that make up this production homelab infrastructure, from physical hardware through to running applications.

Layer 1: Physical Hardware

A single high-performance physical workstation powers the entire infrastructure, hosting the virtualization platform, containerized workloads, and local GPU acceleration.

🖥️
WS-01 Workstation
AMD Ryzen 7 5800X (8C/16T) · 64 GB DDR4
NVIDIA GeForce RTX 3060 12 GB (Ollama API)
Windows 11 Pro · Microsoft Hyper-V Hypervisor
WS-01 (Single Physical Host)
  • Windows 11 Pro host running Microsoft Hyper-V hypervisor
  • AMD Ryzen 7 5800X 8-core / 16-thread processor with 64 GB DDR4 RAM
  • NVIDIA GeForce RTX 3060 12 GB powering local AI models via Ollama API
  • Persistent WinNAT virtual DMZ (172.16.10.0/20) with netfilter boundary defense
  • Dedicated standalone PBS VM with physical SCSI disk passthrough

Layer 2: Hypervisor Layer

Microsoft Hyper-V on Windows 11 hosts the virtualized Proxmox VE node and dedicated Proxmox Backup Server (PBS) VM in a decoupled architecture.

🔶
Microsoft Hyper-V
Host Hypervisor (WS-01)
172.16.10.1 (WinNAT)
🔷
Proxmox VE 9.2
Nested Gen-2 VM
172.16.10.10
🛡️
Proxmox Backup Server
Decoupled Gen-2 VM
172.16.10.11:8007

Internal Virtual DMZ Switch (HyperV-NAT · 172.16.10.0/20)

Virtualized Proxmox VE 9.2
  • Gen-2 Hyper-V virtual machine with nested virtualization enabled
  • Manages internal isolated DMZ bridge (vmbr1) for ~35 LXC/VM guests
  • Egress netfilter firewall strictly isolates containers from desktop & LAN
  • Direct reverse-NAT proxying to host GPU Ollama API (10.0.10.1:11434)
Decoupled PBS 4.2 Architecture
  • Dedicated standalone VM independent of Proxmox VE hypervisor lifecycle
  • Physical 2 TB external disk passed through directly via Hyper-V SCSI controller
  • Deduplicated, encrypted, verified snapshot chunk stores on dedicated media
  • Eliminates memory contention and kernel lockups during heavy backup cycles

Layer 3: Network Architecture

Enterprise-grade defense-in-depth network design with strict virtual DMZ segmentation.

🌐
Internet & Cloudflare Edge
DNS Resolution • DDoS Protection • CDN Caching

↓ Outbound Encrypted QUIC Tunnels (UDP 7844 / TCP 443) ↓

🔐
Cloudflare Ingress Gateway (CT 301)
10.0.10.5 • Zero Port Forwards • Zero Public IPs

↓ Isolated Virtual Bridge (vmbr1) ↓

Virtual DMZ (10.0.10.0/24)

Subnet: 10.0.10.0/24 (PVE Bridge vmbr1)

Purpose: Hosted applications and public-facing containers

  • Cloudflare Tunnel Gateway: 10.0.10.5 (CT 301)
  • WordPress (eddykawira.com): 10.0.10.10 (CT 300)
  • Atomic Knowledge Graph: 10.0.10.91 (CT 670)
  • FireCrawl Scraping Stack: 10.0.10.30 (CT 635)
  • SourceBot Code Indexer: 10.0.10.25 (CT 420)
Hyper-V WinNAT (172.16.10.0/20)

Subnet: 172.16.10.0/20 (HyperV-NAT Switch)

Purpose: Hypervisor management & decoupled backup storage

  • Host WinNAT Gateway: 172.16.10.1
  • Proxmox VE Host: 172.16.10.10
  • Proxmox Backup Server: 172.16.10.11:8007
  • Host Ollama API: 172.16.10.1:11434 (RTX 3060 GPU)
  • Egress Drop Rules: Strictly block DMZ access to desktop & LAN

Layer 4: Storage Layer

Tiered storage architecture: high-speed NVMe for running guests and dedicated decoupled ZFS chunk stores for backups.

⚡
NVMe SSD Storage
Host & VM Disks
High-IOPS Workloads
💾
PBS ZFS Datastore
2 TB External Passthrough
Deduplicated Chunk Store
NVMe Workload Storage
  • Fast NVMe storage hosting Windows host system and Hyper-V VHDX files
  • High-speed ext4/ZFS pools for container root filesystems and MariaDB database engines
  • Sub-millisecond query latency for WordPress, Redis Stack, and indexing services
  • Optimized TRIM and discard enabled across virtualized disk layers
PBS Backup Architecture
  • Content-addressable deduplication chunk store on 2 TB external media
  • Fast incremental backups with dirty-bitmap tracking across containers & VMs
  • Isolated offline lifecycle: backups verifiable without touching production hypervisor
  • Enables complete bare-metal disaster recovery from cold media in under 45 minutes

Layer 5: Application Layer

34 services running across the cluster with high availability protection.

Core Services (6 services)
🌐 WordPress
🔐 Cloudflare Tunnel
🛡️ AdGuard DNS
🔒 Twingate
🔗 Tailscale
📡 Unbound DNS
Standard Services (28 services)

17 additional LXC containers + 11 VMs running across all nodes

  • Development environments
  • Testing infrastructure
  • Network services
  • Monitoring tools
  • Personal applications

End-to-End Request Flow

How a request reaches this website through the infrastructure layers.

1
Internet Request

Visitor accesses eddykawira.com

↓
2
Cloudflare

DNS resolution, CDN caching, DDoS protection

↓
3
Cloudflare Tunnel (LXC 301)

Secure ingress - no exposed ports

↓
4
WordPress LXC (300)

10.0.10.10 on WS-01 (Proxmox VE) - Apache + PHP + MariaDB

↓
5
Response

HTML rendered and returned to visitor

Homelab Topology

WS-01 Hyper-V / Proxmox VE architecture running containerized and virtualized workloads. All public-facing services route through Cloudflare Tunnel — the WordPress container has no outbound gateway by design.

🖥️ ws-01 — WS-01 Hyper-V / Proxmox VE
Online
CPU
AMD Ryzen 7 5800X · 8 cores · 24%
RAM
📦
⏱️
📡 WinNAT + DMZ Bridge

Public Ingress Path

WordPress (LXC 300) has no default gateway — it cannot initiate outbound internet connections. Cloudflare Tunnel (LXC 301) handles all inbound traffic via outbound-only tunnel.

LIVE
CPU:
MEM: