Homelab Infrastructure
Building and maintaining a homelab environment using Proxmox VE with various services including Home Assistant, media servers, and development environments.
Introduction
My homelab journey began with a simple goal: create a reliable, efficient, and cost-effective home infrastructure. Starting with a single old desktop computer, I’ve gradually built up a comprehensive setup that powers my smart home, media consumption, and development workflows. This project has been a perfect blend of learning and practical application.
Hardware Evolution
The homelab has evolved through several iterations:
- Initial Setup (2019)
- Repurposed Dell OptiPlex 7010
- Intel i5-3470, 16GB RAM
- 2x 1TB HDDs in RAID 1
- Basic consumer router
- First Upgrade (2020)
- Custom-built server using consumer parts
- AMD Ryzen 5 3600
- 32GB DDR4 RAM
- 500GB NVMe SSD for OS
- 4x 4TB WD Red HDDs
- TP-Link Omada network equipment
- Current Setup (2025)
- Main Server: Custom-built
- AMD Ryzen 7 5800X
- 64GB DDR4 RAM
- 1TB Samsung 970 EVO Plus NVMe
- 4x 8TB Seagate IronWolf HDDs
- 2.5GbE network card
- Network Equipment:
- TP-Link Omada ER605 router
- TP-Link TL-SG2428P switch
- TP-Link EAP670 access point
- UPS: CyberPower CP1500PFCLCD
- Main Server: Custom-built
Implementation Journey
The setup process was methodical and focused on stability:
- Proxmox Installation
- Started with Proxmox VE 6.0
- Learned about ZFS and implemented it for storage
- Configured automated snapshots
- Set up backup schedules
- Network Configuration
- Created VLANs for different services
- Implemented firewall rules
- Set up VPN access
- Configured QoS for critical services
- Service Deployment
- Started with Home Assistant in an LXC container
- Gradually added other services
- Implemented monitoring and alerts
- Created automated maintenance scripts
Key Services Implementation
- Home Assistant Setup
- Installed as an LXC container for better performance
- Configured Zigbee2MQTT for device communication
- Created custom dashboards using Lovelace
- Implemented automations for:
- Lighting control based on presence
- Temperature regulation
- Energy monitoring
- Security alerts
- Media Server Implementation
- Started with simple Plex setup
- Added Sonarr/Radarr for media management
- Implemented automated download handling
- Created custom scripts for media organization
- Set up remote access with secure authentication
- Development Environment
- Created isolated development VMs
- Implemented GitLab for version control
- Set up CI/CD pipelines
- Configured Docker environment
- Created backup strategies for code
Challenges and Solutions
- Hardware Limitations
- Problem: Limited resources on initial hardware
- Solution: Optimized resource allocation
- Used LXC containers where possible
- Implemented resource limits
- Scheduled resource-intensive tasks
- Network Stability
- Problem: Consumer-grade network equipment limitations
- Solution:
- Implemented VLANs for traffic separation
- Added QoS rules
- Created network monitoring
- Set up automated failover
- Power Management
- Problem: High power consumption
- Solution:
- Implemented power scheduling
- Used hardware power management features
- Created scripts to manage service uptime
- Added UPS monitoring
Automation and Monitoring
Developed several custom solutions:
- Backup System
- Automated Proxmox backups
- Offsite backup to Backblaze B2
- Custom scripts for data verification
- Automated cleanup of old backups
- Monitoring Setup
- Prometheus for metrics collection
- Grafana for visualization
- Custom dashboards for different services
- Alert system for critical issues
- Maintenance Automation
- Automated updates
- Resource monitoring
- Log rotation
- System health checks
Security Implementation
Implemented multiple layers of security:
- Network Security
- VLAN segmentation
- Firewall rules
- VPN access
- Intrusion detection
- Service Security
- SSL certificates
- Two-factor authentication
- Regular updates
- Access controls
Future Plans
- Hardware Upgrades
- Add more storage capacity
- Implement 10GbE networking
- Add GPU for transcoding
- Improve power efficiency
- Service Enhancements
- Expand Home Assistant capabilities
- Add more development tools
- Implement Kubernetes
- Enhance monitoring
Conclusion
Building this homelab has been an incredible learning experience. Starting with basic consumer hardware and gradually expanding has taught me valuable lessons about system design, resource management, and problem-solving. The setup continues to evolve, with each upgrade and new service adding to both its capabilities and my knowledge.