# Homelab Infrastructure Repository Version-controlled infrastructure configuration for my Proxmox-based homelab environment. ## Overview This repository contains configuration files, scripts, and documentation for managing a Proxmox VE 8.4.0 homelab environment. The infrastructure follows a hybrid architecture combining traditional virtualization (KVM/QEMU) with containerization (LXC) for optimal resource utilization. ## Infrastructure Components ### Proxmox Host - **Node**: serviceslab - **IP**: 192.168.2.100 - **Version**: Proxmox VE 8.4.0 (kernel 6.8.12-17-pve) - **Architecture**: Single-node cluster - **Primary Use**: Services and development laboratory ### Virtual Machines — Running | VMID | Name | vCPU | RAM | Disk | Purpose | |------|------|------|-----|------|---------| | 100 | docker-hub | 4 | 10GB | 100GB | Container registry and Docker hub mirror | | 101 | monitoring-docker | 2 | 8GB | 50GB | Monitoring stack (Grafana/Prometheus/PVE Exporter) | | 102 | CML | 8 | 32GB | 200GB | Cisco Modeling Labs — network simulation lab | ### Virtual Machines — Stopped / Templates | VMID | Name | vCPU | RAM | Notes | |------|------|------|-----|-------| | 104 | ubuntu-dev | 2 | 5GB | Template — Ubuntu dev environment | | 105 | pfSense-Firewall | 2 | 2GB | Stopped — firewall lab VM | | 106 | Ansible-Control | 2 | 4GB | Stopped — IaC control node | | 107 | ubuntu-docker | 2 | 4GB | Template — Ubuntu Docker host | | 114 | haos | 2 | 4GB | Stopped — Home Assistant OS | ### Containers (LXC) — Running | CTID | Name | vCPU | RAM | IP | Purpose | |------|------|------|-----|----|---------| | 109 | caddy | 2 | 2GB | 192.168.2.129 | Reverse proxy and SSL termination (replaced NPM) | | 112 | twingate-connector | 1 | 1GB | DHCP | Zero-trust network access connector | | 113 | n8n | 2 | 4GB | 192.168.2.113 | Workflow automation (PostgreSQL 16 + pgvector) | ### Containers (LXC) — Stopped | CTID | Name | vCPU | RAM | Notes | |------|------|------|-----|-------| | 117 | test-cve-database | 4 | 8GB | Stopped — CVE database test environment | ### Storage Pools | Name | Type | Used | Total | Purpose | |------|------|------|-------|---------| | Vault | ZFS Pool | ~2% (110GB) | 4.36TB | Primary VM/CT disk storage | | PBS-Backups | Proxmox Backup Server | ~29.78% | ~1TB | Automated backup repository | | iso-share | NFS | ~1.61% | ~3TB | Installation media library | | local | Directory | ~22.57% | 45GB | System files, ISOs, templates | | local-lvm | LVM-Thin | ~0.01% | 69GB | VM disk images (thin provisioned) | ### Network | Bridge | IP | Purpose | |--------|-----|---------| | vmbr0 | 192.168.2.100/24 | Primary LAN bridge (eno1) | | vmbr1 | 192.168.3.0/24 | Internal/isolated bridge | --- ## Repository Structure ``` homelab/ ├── services/ # Docker Compose service configurations │ ├── n8n/ # n8n workflow automation │ └── README.md # Services overview ├── monitoring/ # Observability stack configs │ ├── grafana/ │ ├── prometheus/ │ └── pve-exporter/ ├── scripts/ │ ├── crawlers-exporters/ # Infrastructure collection scripts │ │ ├── collect.sh # Convenience wrapper (uses .env) │ │ ├── collect-remote.sh # SSH wrapper for WSL2 │ │ └── collect-homelab-config.sh # Main collection engine │ ├── fixers/ # Problem-solving scripts │ └── qol/ # Git utilities ├── start-here-docs/ # Getting started guides ├── sub-agents/ # AI agent role definitions ├── troubleshooting/ # Bug fixes and audit findings ├── disaster-recovery/ # Infrastructure export snapshots ├── .env.example # Configuration template ├── CLAUDE.md # AI assistant project context ├── INDEX.md # Comprehensive documentation index └── README.md # This file ``` --- ## Monitoring & Observability Deployed on VM 101 (monitoring-docker): | Component | Port | Purpose | |-----------|------|---------| | Grafana | 3000 | Dashboards and visualization | | Prometheus | 9090 | Metrics collection | | PVE Exporter | 9221 | Proxmox metrics scraper | See `monitoring/README.md` for setup and configuration details. --- ## Reverse Proxy **Caddy** (CT 109, 192.168.2.129) handles reverse proxying and automatic TLS for all services. Replaced Nginx Proxy Manager in early 2026. --- ## Remote Access **Twingate** (CT 112) provides zero-trust remote access without a traditional VPN. No open inbound firewall rules required. --- ## Workflow Automation **n8n** (CT 113) runs on PostgreSQL 16 with the pgvector extension for RAG/vector search workflows. See `services/n8n/` for configuration and `scripts/fixers/` for common database repair scripts. --- ## Collecting Your Infrastructure State ```bash # 1. Configure your environment cp .env.example .env nano .env # Set PROXMOX_HOST=192.168.2.100 # 2. Run the collector bash scripts/crawlers-exporters/collect.sh # 3. Review the output cat homelab-export-*/SUMMARY.md ``` See `start-here-docs/QUICK-START.md` for the full 5-minute setup guide. --- ## Security Notes - `.env` is git-ignored — never commit it - Exported configs sanitize passwords and tokens by default - Review `troubleshooting/` for the December 2025 security audit findings and remediation roadmap - See `20260331 - Homelab GitOps Optimization Plan` in Obsidian for the full GitOps and security hardening roadmap --- ## Backup Strategy - **Automated**: Proxmox Backup Server (PBS-Backups pool) handles VM/CT snapshots - **Config snapshots**: Run `collect.sh` periodically; exports stored in `disaster-recovery/` - **Repository**: All config changes version-controlled here --- *Last Updated: 2026-03-31* *Proxmox Version: 8.4.0* *Infrastructure: 3 VMs running, 5 VMs stopped/templates, 3 LXC running, 1 LXC stopped*