Self-Hosted Homeserver Infrastructure
Production-grade homeserver running 40+ containerized services including media streaming, monitoring, automation, and network management with Cloudflare tunneling.
Self-Hosted Homeserver Infrastructure
A homeserver built from repurposed PC parts, running 40+ Docker containers for media management, monitoring, and experimentation with open-source tools. Zero hosting costs, complete control over data.
What It Does
Self-hosted alternative to commercial cloud services, running everything from media streaming to infrastructure monitoring. Built to learn DevOps, networking, and system administration through hands-on practice.
Services Running
Media Stack (7 containers)
- Jellyfin - Personal Netflix (media streaming)
- Sonarr/Radarr - Automated TV/movie management
- Prowlarr - Indexer manager
- Bazarr - Subtitle downloader
- Jellyseerr - Request management
- qBittorrent - Download client
Monitoring (3 containers)
- Grafana - Dashboards and visualization
- Prometheus - Metrics collection
- Uptime Kuma - Service health monitoring
Infrastructure (10+ containers)
- Portainer - Docker GUI management
- Nginx Proxy Manager - Reverse proxy with SSL
- Immich - Photo backup (Google Photos alternative)
- Filebrowser - Web file manager
- ROMM - Retro gaming library
- Automated backups - Synced to Google Drive
- Various automation tools
Total: 40+ containers running 24/7
Network Setup
Cloudflare Tunnel - No open ports, secure remote access without VPN
- Exposes services without port forwarding
- Built-in DDoS protection
- Hides home IP address
- Free tier
DNS - Cloudflare for external, local DNS for internal routing
SSL - Automated certificates via Let’s Encrypt
Tech Stack
Containerization:
- Docker & Docker Compose for all services
- Portainer for visual management
- Resource limits to prevent conflicts
Networking:
- Nginx as reverse proxy
- Cloudflare Tunnel for secure access
- Custom DNS for local/external routing
- Isolated Docker networks
Monitoring:
- Grafana dashboards for CPU, RAM, disk, network
- Prometheus for metrics collection
- Uptime Kuma for service health
- Container-level resource tracking
Hardware:
- Repurposed PC components
- Linux (Ubuntu Server/Debian)
- Multiple drives for media storage
Why Build This?
Learning:
- Real-world Docker orchestration
- Network security and tunneling
- Infrastructure monitoring
- DNS configuration
- Linux system administration
Cost Savings:
- $0/month hosting (vs $15+/month for cloud services)
- Replaced Netflix, Google Photos, Paid Game Services etc.
- All data under my control
Privacy:
- No third-party access to personal data
- Complete ownership of services
- Custom configuration for everything
Technical Highlights
Docker Compose Management:
# Organized by service type
media-stack/
monitoring-stack/
infrastructure/
Cloudflare Tunnel:
# Zero-trust access without opening ports
cloudflared tunnel --url http://localhost:80
Resource Monitoring:
- Container-level CPU/RAM tracking
- Network throughput graphs
- Disk usage alerts
- Service dependency mapping
Results
- 99%+ uptime with automated restarts
- 40+ services running on single machine
- $0 monthly costs (electricity only)
- Complete privacy - all data stays local
- Hands-on experience with production tools
Skills Gained
- Docker and container orchestration
- Reverse proxy configuration (Nginx)
- Network security (Cloudflare, SSL/TLS)
- Linux system administration
- Infrastructure monitoring (Grafana/Prometheus)
- DNS management
- Automation and scripting
- Troubleshooting containerized applications
Future Plans
- Migrate to Kubernetes for learning
- Implement proper CI/CD for config updates
- Set up VLANs for better network segmentation
- Expand monitoring with custom metrics