Skip to main content
Featured Project

Self-Hosted Homeserver Infrastructure

Production-grade homeserver running 40+ containerized services including media streaming, monitoring, automation, and network management with Cloudflare tunneling.

Docker Nginx Grafana Prometheus Cloudflare Linux DNS Portainer Jellyfin
Self-Hosted Homeserver Infrastructure screenshot

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