Homelab Infrastructure

My homelab serves as both a learning environment and production infrastructure for VRHost game server hosting and VRHost Lab development. Built on enterprise Dell PowerEdge hardware with a focus on automation, monitoring, and reliability.

Latest Project: VRHost Lab Platform

Network Lab Management Platform (December 2024)

Built an open-source web-based platform for managing virtual network labs, designed for network engineers studying for certifications. Deployed on R730 homelab infrastructure.

Key Features:

  • Interactive Topology Visualization: Cytoscape.js powered drag-and-drop network diagrams with real-time state updates
  • Web Console Access: Browser-based terminal using ttyd - no SSH client needed
  • Multi-Lab Management: Organize routers into labs with one-click start/stop
  • RESTful API: FastAPI backend managing KVM/QEMU VMs through libvirt
  • Modern Frontend: React with Tailwind CSS for responsive design

Technical Stack:

  • Backend: Python 3.11, FastAPI, libvirt, ttyd
  • Frontend: React 18.3, Cytoscape.js, Tailwind CSS
  • Infrastructure: KVM/QEMU virtualization, systemd services
  • Deployment: One-command installer script, automated setup

Current Lab Setup:

  • 4 Juniper vSRX routers (r1, r2, r3, Test-r1)
  • 1 lab environment with 4GB RAM per router
  • Web interface accessible at http://100.77.52.108:3000
  • API running on port 8000 with comprehensive documentation

Links: GitHub Repository | Live Demo

Core Servers

Dell PowerEdge R730 (Primary Hypervisor)

Hostname: r730-kvm-1 | Location: Durham, NC

Role: Game server hosting, VRHost Lab platform, WireGuard anycast endpoint

  • CPU: Dual Intel Xeon E5-2650 v3 (20 cores, 40 threads @ 2.3GHz)
  • RAM: 125GB DDR4 ECC (expandable to 768GB)
  • Storage:
    • 500GB boot drive (OS)
    • 4x 1TB SSD in RAID 5 = 2.8TB usable (VMs)
  • Network:
    • Management IP: 10.10.50.1/24
    • Tailscale IP: 100.77.52.108
    • Bridge: br0 (connected to SRX340)
    • iDRAC: 172.19.1.1
  • OS: Ubuntu Server 22.04 LTS with KVM/libvirt

Capabilities: Hosts game server VMs, VRHost Lab virtual routers, WireGuard anycast tunnel endpoint, automated VM provisioning via mkvm and mkjuniper scripts, BGP routing for global anycast network

Dell PowerEdge R320 (Infrastructure Hypervisor)

Hostname: r320-kvm-2 | Location: Durham, NC

Role: Infrastructure services, monitoring, business applications

  • CPU: Intel Xeon E5-2420 v2 (6 cores, 12 threads @ 2.20GHz)
  • RAM: 96GB DDR3 ECC
  • Storage:
    • Array 1: 3x 2TB HDD in RAID 5 = ~4TB usable (primary VMs)
    • Array 2: 2x 1TB HDD in RAID 1 = ~1TB usable (backups)
  • Network:
    • Management IP: 10.10.1.1/24
    • Bridge: br0 (nwbridge)
  • OS: Ubuntu Server 22.04 LTS with KVM/libvirt

Capabilities: Hosts infrastructure VMs (WordPress, LibreNMS, BookStack, Homepage Dashboard), monitoring and management services, separated from game server workloads for stability

R320 Infrastructure VMs (10.10.1.0/24)

  • Homepage Dashboard (10.10.1.2) - 2GB RAM, 2 vCPU, 25GB - Central service dashboard
  • Pterodactyl Panel (10.10.1.3) - 8GB RAM, 4 vCPU, 50GB - Game server management
  • LibreNMS (10.10.1.4) - 4GB RAM, 2 vCPU, 100GB - Network monitoring (SNMP)
  • BookStack (10.10.1.5) - 4GB RAM, 2 vCPU, 50GB - Documentation wiki
  • Monitoring (10.10.1.7) - 4GB RAM, 2 vCPU, 100GB - Prometheus/Grafana
  • WordPress (10.10.1.8) - 8GB RAM, 4 vCPU, 100GB - VRHost Shop (WooCommerce)

R730 VRHost Lab Routers (10.10.50.0/24)

  • r1 (10.10.50.11) - 4GB RAM, 2 vCPU - Juniper vSRX virtual router
  • r2 (10.10.50.12) - 4GB RAM, 2 vCPU - Juniper vSRX virtual router
  • r3 (10.10.50.13) - 4GB RAM, 2 vCPU - Juniper vSRX virtual router
  • Test-r1 (10.10.50.14) - 4GB RAM, 2 vCPU - Juniper vSRX virtual router

Management: Accessible via VRHost Lab web interface with integrated console access

Network Infrastructure

Juniper SRX340 Firewall

Hostname: SRX340 | Role: Primary firewall, router, and gateway

  • Hardware: 8x 1GbE copper ports, 4x 1GbE SFP ports
  • Software: Full JunOS with BGP, VLANs, advanced routing
  • WAN: ge-0/0/12 (192.168.50.163/24)
  • LAN Interfaces:
    • ge-0/0/1: R320 (10.10.1.0/24 - Infrastructure)
    • ge-0/0/0: R730 (10.10.50.0/24 - Game Servers & VRHost Lab)
    • ge-0/0/4-5: iDRAC Management (172.19.1.0/24)
  • VLANs:
    • VLAN 0 (IRB.0): Trust zone - 10.10.1.0/24
    • VLAN 50 (IRB.50): iDRAC Management - 172.19.1.0/24
    • VLAN 60 (IRB.60): Hypervisor Management - 10.10.50.0/24

Network Segmentation

  • 10.10.1.0/24: Infrastructure VMs - Management traffic, monitoring, internal services
  • 10.10.50.0/24: Game Server & VRHost Lab Network - Customer game servers and network lab routers
  • 172.19.1.0/24: iDRAC Management - Out-of-band server management
  • 192.168.50.0/24: ISP Network - External connectivity
  • 100.64.0.0/10: Tailscale Network - Secure remote access
  • WireGuard Tunnel Network: Encrypted tunnels connecting all 8 global PoPs to home infrastructure

Global Anycast Network

NetActuate Points of Presence

VRHost operates 8 Points of Presence across the globe using NetActuate's infrastructure. Traffic is automatically routed to the nearest PoP using BGP anycast routing, then tunneled via WireGuard to the home R730 server.

Location Code Region Latency from Home
Atlanta, GA ATL North America ~35ms
Dublin, Ireland DUB Europe ~95ms
Phoenix, AZ PHX North America ~65ms
Toronto, Canada TOR North America ~40ms
London, UK LHR Europe ~90ms
Hong Kong HKG Asia ~220ms
Mumbai, India BOM Asia ~250ms
Los Angeles, CA LAX North America ~70ms

Traffic Flow: Customer (anywhere in world) → Nearest PoP (BGP anycast routing) → WireGuard Tunnel (encrypted) → R730 Home Server → Game Server VM

Monitoring & Observability

Prometheus + Grafana Stack

  • Real-time metrics collection across all infrastructure
  • Custom WireGuard metrics exporter for tunnel health
  • Professional dashboards at grafana.vrhost.org:
    • Hypervisor metrics (CPU, RAM, storage)
    • VM resource usage
    • Storage utilization
    • Network traffic statistics
    • WireGuard tunnel health across all 8 PoPs
    • VRHost Lab router status and performance
  • Metrics retention: 15 days
  • Auto-discovery of VMs via mkvm script integration

LibreNMS Network Monitoring

  • SNMP monitoring of Juniper SRX340 firewall
  • R730 & R320 hypervisor monitoring via SNMP
  • Network topology mapping
  • Interface statistics and graphs
  • Alert notifications for network issues

Automation & Management

Custom Scripts & Tools

  • mkvm: Automated VM creation script
    • Parses resource specs (e.g., "VR2x2x25" = 2GB RAM, 2 vCPU, 25GB disk)
    • Creates QCOW2 disk images
    • Generates cloud-init NoCloud seed ISOs
    • Assigns static IPs and registers in DNS
    • Adds VMs to Prometheus monitoring automatically
    • Attempts Node Exporter installation
  • mkjuniper: Juniper vSRX router creation script
    • Automated vSRX router deployment for VRHost Lab
    • Configures IP addressing and networking
    • Sets up SSH access and initial configuration
    • Integrates with VRHost Lab platform
  • vmcheck: Automated VM health monitoring
  • Network configuration automation
  • Backup and maintenance scripts

Documentation Platform

  • BookStack deployment at docs.vrhost.org
  • Comprehensive infrastructure documentation
  • VM management procedures and troubleshooting guides
  • VRHost Lab setup and usage documentation

Production Services

VRHost Lab (Network Lab Platform)

VRHost Game Hosting Platform

High Heat Forge

Key Features & Achievements