Personal Home Lab
Proxmox VE
Kubernetes (k3s)
ArgoCD
Networking
Linux
Ansible
Overview
My personal home lab is a playground for learning and experimentation. Running on dedicated hardware, it hosts everything from self-hosted services to complex Kubernetes deployments, all managed through infrastructure-as-code principles.
Infrastructure
Hardware
- Hypervisor Host: Custom-built server running Proxmox VE
- Network: Managed switch with VLAN support, dedicated router VM
- Storage: ZFS pool for data integrity and snapshots
Virtualization Layer
The lab runs on Proxmox VE, providing:
- Virtual machines for various workloads
- LXC containers for lightweight services
- Centralized backup management
- High-availability clustering support
Network Architecture
One of the most interesting aspects is the network design:
Internet
│
▼
┌─────────────┐
│ Router VM │ ◄── OPNsense firewall
└─────────────┘
│
├── VLAN 10: Management
├── VLAN 20: Production
├── VLAN 30: Development
└── VLAN 40: IoT (isolated)
- Router VM running OPNsense handles all inter-VLAN routing and firewall rules
- Strict network segmentation between environments
- VPN access for remote management
Kubernetes Cluster
A k3s cluster runs my production workloads:
Cluster Components
- 3 control-plane nodes for high availability
- MetalLB for bare-metal load balancing
- Longhorn for distributed persistent storage
- Cert-Manager for automatic TLS certificates
GitOps with ArgoCD
All deployments are managed through GitOps:
- Application manifests stored in Git
- ArgoCD monitors for changes and syncs automatically
- Helm charts and Kustomize for configuration management
- Automatic rollbacks on failed deployments
Self-Hosted Services
The lab hosts various services:
| Service | Purpose |
|---|---|
| Grafana + Prometheus | Monitoring and alerting |
| Pi-hole | Network-wide ad blocking |
| Gitea | Private Git repositories |
| Nextcloud | File sync and sharing |
| Home Assistant | Home automation hub |
| Jellyfin | Media streaming |
Infrastructure as Code
Everything is automated:
- Ansible playbooks for VM provisioning and configuration
- Terraform for Proxmox resource management
- Helm charts for Kubernetes applications
- GitHub Actions for CI/CD pipelines
Lessons Learned
Running a home lab has taught me:
- The importance of proper network segmentation
- How to debug complex distributed systems
- Backup strategies and disaster recovery
- The value of documentation and automation
Current Projects
- Implementing Talos Linux for immutable Kubernetes nodes
- Exploring Cilium for eBPF-based networking
- Building a log aggregation stack with Loki
This lab is an ongoing project that evolves as I explore new technologies!