Skip to main content
Personal infrastructure lab environment focused on hardware, networking, virtualization, and infrastructure-as-code principles.

Overview

The homelab repository documents a production-grade personal infrastructure environment used for:
  • Learning and experimentation with enterprise technologies
  • Production self-hosted services (monitoring, automation, storage)
  • Security research in isolated environments
  • Infrastructure-as-code testing and validation

Hardware

Physical servers, networking equipment, and storage systems

Virtualization

Proxmox VE clusters and VM orchestration

Networking

VLANs, routing, firewalls, and network segmentation

Automation

Terraform, Ansible, and infrastructure-as-code workflows

Hardware Documentation

Detailed hardware specifications, limitations, and configuration guides.

Real-World Example: Mini PCs

For a concrete example of out-of-band (OOB) management limitations on client hardware:

HP EliteDesk 800 G2 Mini

Client-grade mini PC repurposed for homelab use. Documents OOB limitations, BIOS configuration, and deployment best practices.
Client hardware (like mini PCs) typically lacks enterprise-grade remote management features such as:
  • IPMI / iLO / iDRAC interfaces
  • Remote power control
  • Serial-over-LAN (SOL)
  • Hardware health monitoring
This impacts automation and remote troubleshooting capabilities.

Key Features

All infrastructure is defined in code using:
  • Terraform for resource provisioning
  • Ansible for configuration management
  • Git for version control and change tracking
  • CI/CD pipelines for automated testing and deployment
Multiple VLANs for security isolation:
  • Management VLAN - Infrastructure management and monitoring
  • Services VLAN - Production services and applications
  • IoT VLAN - Untrusted IoT devices with restricted access
  • Lab VLAN - Experimental and testing environment
  • Prometheus for metrics collection
  • Grafana for visualization
  • Loki for log aggregation
  • Alertmanager for incident notification
  • Automated backups with Proxmox Backup Server
  • Off-site replication
  • Regular restore testing
  • Documented recovery procedures

Hardware Categories

1

Compute Nodes

Servers running Proxmox VE for virtualization workloads
2

Storage

NAS systems with ZFS, Ceph, or TrueNAS for persistent storage
3

Networking

Managed switches, routers, and firewalls (pfSense, OPNsense)
4

Mini PCs

Low-power client hardware repurposed for specific workloads (monitoring, DNS, VPN)

Use Cases

Learning & Certification

Lab Environment

Test new technologies without production impact

Certification Prep

Hands-on practice for RHCE, CKA, AWS certifications

Production Services

  • Self-hosted applications (Nextcloud, GitLab, Vaultwarden)
  • Network services (Pi-hole, Unbound DNS, WireGuard VPN)
  • Monitoring stack (Prometheus, Grafana, Loki)
  • Media server (Plex, Jellyfin)

Security Research

Security research and vulnerability testing should only be conducted in isolated lab VLANs with no production access.
  • Vulnerable VM practice (HackTheBox, TryHackMe)
  • Malware analysis in isolated sandbox
  • IDS/IPS testing (Suricata, Zeek)
  • Penetration testing techniques

Documentation Structure

The repository is organized by component:
homelab/
├── hardware/
│   ├── servers/
│   ├── networking/
│   ├── storage/
│   └── mini-pcs/
│       └── hp-elitedesk-800-g2/
├── infrastructure/
│   ├── terraform/
│   ├── ansible/
│   └── kubernetes/
├── networking/
│   ├── vlans/
│   ├── firewall/
│   └── vpn/
├── monitoring/
│   ├── prometheus/
│   ├── grafana/
│   └── alerts/
└── docs/
    ├── architecture/
    ├── runbooks/
    └── troubleshooting/
Each component includes detailed README files with setup instructions, configuration examples, and troubleshooting guides.

Getting Started

1

Review Architecture

Start with architecture documentation to understand the overall design and network topology
2

Hardware Setup

Follow hardware-specific guides for physical setup and initial configuration
3

Network Configuration

Configure VLANs, routing, and firewall rules according to security requirements
4

Deploy Infrastructure

Use Terraform and Ansible to provision and configure virtual infrastructure
5

Enable Monitoring

Deploy monitoring stack to gain visibility into system health and performance

Repository Information

Contributions, issues, and suggestions are welcome! Please review the CONTRIBUTING.md file in the repository before submitting pull requests.

Build docs developers (and LLMs) love