Homelab
My personal homelab infrastructure project, running since January 2023. A space for experimentation, learning, and developing IT skills without professional constraints.
- 1. Overview
- 2. Hardware Infrastructure
- 3. Network Architecture
- 4. Proxmox Cluster
- 5. Kubernetes (K3S) Architecture
- 6. Application Deployment Flow
- 7. Monitoring & Observability Stack (PLG)
- 8. Services & Applications
- 9. Technology Stack
- 10. Mission & Objectives
- 11. Project Timeline
- 12. Learning Outcomes
- 13. Future Enhancements
- 14. Conclusion
1. Overview
The homelab project provides a complete infrastructure for experimenting with enterprise-grade technologies, developing applications, and learning modern DevOps practices.
2. Hardware Infrastructure
The foundation of this homelab consists of three physical machines connected through a professional-grade network infrastructure. The setup prioritizes high availability, energy efficiency, and quiet operation suitable for a home environment.
The Dell PowerEdge T330 serves as the primary compute node, while two Lenovo ThinkCentre M715Q mini PCs provide additional compute capacity in a compact form factor. All machines are connected through a Ubiquiti UDM PRO SE, which handles network management, VPN services, and advanced firewall capabilities.
2.1. Hardware Specifications
2.1.1. Dell PowerEdge T330
Enterprise-grade server
Custom modifications for silent operation
Primary compute node
Running Proxmox hypervisor
2.1.2. Lenovo ThinkCentre M715Q (x2)
Compact mini PCs
Energy-efficient compute nodes
Running Proxmox hypervisor
Part of HA cluster
2.1.3. Network Equipment
Ubiquiti UDM PRO SE: Professional network management, VPN server, firewall
Orange Livebox 6: ISP gateway with DMZ configuration
3. Network Architecture
Security and network segmentation are critical components of this homelab. The network architecture implements enterprise best practices with multiple VLANs for isolation, a DMZ for public-facing services, and VPN access for secure remote administration.
The design separates management traffic (Proxmox hosts, Dell iDRAC) from service traffic (K3S cluster, TrueNAS, Portainer), ensuring that administrative interfaces are never directly exposed. All external access is filtered through the firewall, and internal access to management systems requires VPN authentication via WireGuard.
3.1. Network Features
VLANs: Segmented network for security and organization
Firewall Rules: Custom rules for traffic control
VPN Server: WireGuard for secure remote access
DMZ: Isolated zone for publicly exposed services
Network Management: Centralized control via Ubiquiti UDM PRO SE
4. Proxmox Cluster
The virtualization layer is built on a 3-node Proxmox VE cluster, providing high availability and resource pooling across all physical hosts. This configuration ensures that if one node fails, virtual machines automatically migrate to healthy nodes without service interruption.
Infrastructure as Code principles are applied using Terraform with the Proxmox Provider, allowing VM creation and configuration to be version-controlled and reproducible. Shared storage is provided by a TrueNAS SCALE VM, offering NFS and iSCSI protocols for VM disks and data storage. This architecture enables live migration of VMs between hosts and provides a solid foundation for the Kubernetes cluster running on top.
4.1. Cluster Features
High Availability: 3-node cluster with automatic failover
Infrastructure as Code: VM provisioning with Terraform
Network Storage: Shared storage via TrueNAS SCALE
Resource Pooling: Distributed compute resources
Live Migration: Move VMs between nodes without downtime
5. Kubernetes (K3S) Architecture
K3S, a lightweight Kubernetes distribution, forms the container orchestration layer of this homelab. The cluster features a highly available control plane with three master nodes synchronized through KubeVIP, which provides a virtual IP for seamless failover and load balancing of API server requests.
The entire cluster deployment is automated using Ansible playbooks, from initial node provisioning to K3S installation and configuration. Applications are deployed using Helm charts and managed through ArgoCD following GitOps principles—all application configurations are stored in Git repositories, and ArgoCD continuously synchronizes the desired state to the cluster. Longhorn provides distributed block storage for persistent volumes, while MetalLB enables LoadBalancer services on bare-metal, and Traefik handles ingress traffic and TLS termination.
5.1. Kubernetes Components
5.1.1. Core Infrastructure
K3S: Lightweight Kubernetes distribution
KubeVIP: Virtual IP for HA control plane
MetalLB: Bare-metal load balancer
Traefik: Ingress controller and reverse proxy
5.1.2. Storage
Longhorn: Distributed block storage for persistent volumes
5.1.3. Deployment & Management
Ansible: Automated cluster provisioning and configuration
ArgoCD: GitOps continuous delivery
Helm: Application package management
Sealed Secrets: Encrypted secrets management
5.1.4. Networking
Reflector: ConfigMap and Secret replication
Cert-Manager: Automated TLS certificate management
6. Application Deployment Flow
The homelab implements modern CI/CD practices using GitOps methodology. Developed applications follow a structured pipeline from code commit to production deployment. This workflow ensures consistency, traceability, and enables rapid iteration while maintaining deployment standards.
Code changes pushed to Git repositories trigger CI pipelines that build container images and push them to a container registry. ArgoCD monitors Git repositories containing Helm chart configurations and automatically synchronizes any changes to the K3S cluster. This declarative approach means the cluster state always matches what’s defined in Git, providing a single source of truth. All deployments are automatically integrated with the observability stack, sending logs to Loki and metrics to Prometheus for comprehensive monitoring via Grafana dashboards.
7. Monitoring & Observability Stack (PLG)
Comprehensive observability is crucial for maintaining a complex infrastructure. The PLG stack (Prometheus, Loki, Grafana) provides end-to-end visibility into the entire homelab, from physical Proxmox hosts to containerized applications running in the K3S cluster.
Promtail agents collect logs from all sources and forward them to Loki for aggregation, while Prometheus scrapes metrics from exporters on every component. Grafana serves as the unified interface, combining logs and metrics in cohesive dashboards that provide real-time insights into system health and performance. UptimeKuma monitors service availability and provides status pages, while Rancher and OpenLens offer specialized Kubernetes cluster management interfaces for operational tasks.
7.1. Monitoring Components
7.1.1. PLG Stack (Prometheus, Loki, Grafana)
Prometheus: Metrics collection and time-series database
Loki: Log aggregation and querying
Grafana: Unified visualization and dashboards
7.1.2. Additional Tools
UptimeKuma: Service uptime monitoring and status pages
Rancher: Kubernetes cluster management interface
OpenLens: Kubernetes IDE for cluster inspection
8. Services & Applications
The homelab hosts a diverse collection of self-hosted applications spanning authentication, media, productivity, databases, and network services. Each service is carefully selected to provide practical functionality while offering learning opportunities in system administration and cloud-native deployment.
Authentik serves as the central identity provider, enabling Single Sign-On (SSO) across all applications for streamlined authentication. High-availability database clusters (PostgreSQL and Redis) provide robust data persistence, while media services like Plex and PhotoPrism deliver personal streaming and photo management. Pi-hole offers network-wide ad blocking and DNS management, and management dashboards like Heimdall and Portainer simplify day-to-day operations across the entire infrastructure.
8.1. Service Categories
8.1.1. Authentication & Security
Authentik: Single Sign-On and identity management
Pi-hole: Network-wide ad blocking and DNS
8.1.2. Media Services
Plex: Personal media streaming server
PhotoPrism: AI-powered photo management
8.1.3. Productivity & Collaboration
Nextcloud: Self-hosted cloud storage and collaboration
Syncthing: Decentralized file synchronization
8.1.4. Data Services
PostgreSQL HA: High-availability database cluster
Redis HA: Distributed caching solution
Supabase: Open-source Firebase alternative
8.1.5. Network Services
Unifi Network: Network controller for Ubiquiti equipment
WireGuard: Modern VPN solution
8.1.6. Management
Heimdall: Application dashboard and launcher
Portainer: Docker container management interface
9. Technology Stack
9.1. Infrastructure Layer
| Category | Technologies |
|---|---|
Hypervisor | Proxmox VE |
Container Orchestration | K3S (Kubernetes) |
Infrastructure as Code | Terraform, Ansible |
Network Management | Ubiquiti UDM PRO SE, VLANs |
Storage | TrueNAS SCALE, Longhorn |
9.2. Platform Layer
| Category | Technologies |
|---|---|
GitOps & CD | ArgoCD |
Package Management | Helm |
Ingress & Load Balancing | Traefik, MetalLB, KubeVIP |
Service Mesh | Traefik |
Secrets Management | Sealed Secrets |
Certificate Management | Cert-Manager |
9.3. Observability Layer
| Category | Technologies |
|---|---|
Metrics | Prometheus |
Logs | Loki, Promtail |
Visualization | Grafana |
Uptime Monitoring | UptimeKuma |
Cluster Management | Rancher, OpenLens |
9.4. Application Layer
| Category | Technologies |
|---|---|
Authentication | Authentik |
Databases | PostgreSQL HA, Redis HA |
Backend Services | Supabase |
Media | Plex, PhotoPrism |
Productivity | Nextcloud, Syncthing |
Network Services | Pi-hole, WireGuard, Unifi Network |
Container Management | Portainer |
Application Dashboard | Heimdall |
10. Mission & Objectives
10.1. Core Missions
10.1.1. Network Infrastructure
Configure VLANs for network segmentation
Implement firewall rules for security
Deploy VPN server for secure remote access
Setup DMZ on ISP gateway for public services
10.1.2. Hardware Customization
Modify Dell PowerEdge T330 for silent operation
Optimize cooling and acoustics for home environment
10.1.3. Virtualization Platform
Install Proxmox hypervisor on all 3 machines
Configure high-availability cluster
Implement automated failover mechanisms
10.1.4. Infrastructure as Code
Provision VMs using Terraform with Proxmox Provider
Automate infrastructure deployment and management
10.1.5. Kubernetes Deployment
Install K3S high-availability cluster using Ansible
Configure master and worker nodes
Implement distributed storage with Longhorn
10.1.6. Application Deployment
Deploy all services using Helm charts
Implement GitOps with ArgoCD for continuous delivery
Automate application lifecycle management
10.1.7. Storage Management
Deploy TrueNAS SCALE VM for network storage
Configure NFS and iSCSI for shared storage
Implement backup strategies
10.1.8. Observability & Monitoring
Deploy PLG stack (Prometheus, Loki, Grafana)
Collect logs and metrics from all services
Create dashboards for system visibility
10.1.9. Container Management
Setup Portainer VM for Docker Compose stacks
Manage containerized applications outside Kubernetes
11. Project Timeline
January 2023: Project inception
Ongoing: Continuous learning and experimentation
Location: Lille, Hauts-de-France, France
12. Learning Outcomes
This homelab project provides hands-on experience with:
Enterprise-grade virtualization and clustering
Kubernetes orchestration and management
Infrastructure as Code practices
GitOps methodology
Network security and segmentation
Monitoring and observability
High availability and fault tolerance
Storage management and backup strategies
CI/CD pipelines and automation
13. Future Enhancements
Potential areas for expansion:
Implement service mesh (Istio/Linkerd)
Add more observability tools (Jaeger for tracing)
Explore edge computing scenarios
Implement disaster recovery procedures
Add GPU passthrough for AI/ML workloads
Expand multi-cluster management
Implement backup and restore automation
14. Conclusion
This homelab serves as a comprehensive platform for learning modern infrastructure technologies, developing practical DevOps skills, and hosting personal applications in a professional-grade environment. The project demonstrates proficiency in virtualization, containerization, automation, and cloud-native technologies.