Self-Hosted Apps Every Homelab Should Run
The best self-hosted apps for your homelab. Essential Docker containers for DNS, media, cloud storage, monitoring, and more. All free and open source.
Updated
Self-Hosted Apps Every Homelab Should Run
One of the best parts of having a homelab is running your own services. Here are the essential self-hosted apps that every homelabber should consider, organized by category.
Network & Infrastructure
Pi-hole
What it does: Network-wide ad blocker and DNS server
Why you need it: Block ads on every device on your network — phones, smart TVs, everything — without installing anything on each device.
Difficulty: Easy | RAM: 256MB | Docker: Yes
Nginx Proxy Manager
What it does: Reverse proxy with automatic SSL certificates
Why you need it: Access all your services through clean URLs (e.g., jellyfin.yourdomain.com) with HTTPS, instead of remembering IP addresses and port numbers.
Difficulty: Easy | RAM: 256MB | Docker: Yes
WireGuard (or Tailscale)
What it does: VPN to access your homelab remotely
Why you need it: Securely access your home services from anywhere without exposing them to the internet.
Difficulty: Medium (WireGuard) / Easy (Tailscale) | Docker: Yes
Uptime Kuma
What it does: Service monitoring with notifications
Why you need it: Get alerted when any of your services go down. Beautiful dashboard to see everything at a glance.
Difficulty: Easy | RAM: 256MB | Docker: Yes
Media
Jellyfin
What it does: Free media server for movies, TV, and music
Why you need it: Stream your media library to any device. The free alternative to Plex with no premium features locked behind a paywall.
Difficulty: Easy | RAM: 1–4GB | Docker: Yes
*arr Stack (Radarr, Sonarr, Prowlarr)
What it does: Automated media management and organization
Why you need it: Automatically organize, rename, and manage your movie and TV show libraries. Works with Jellyfin/Plex.
Difficulty: Medium | RAM: 512MB each | Docker: Yes
Navidrome
What it does: Self-hosted music streaming server
Why you need it: Stream your music collection from anywhere. Compatible with Subsonic apps.
Difficulty: Easy | RAM: 256MB | Docker: Yes
Cloud & Productivity
Nextcloud
What it does: Self-hosted cloud storage, calendar, contacts, and more
Why you need it: Replace Google Drive/Dropbox with your own cloud. Sync files across devices, share with others, and keep your data private.
Difficulty: Medium | RAM: 1–2GB | Docker: Yes
Vaultwarden
What it does: Self-hosted Bitwarden password manager
Why you need it: Manage all your passwords locally. Compatible with all Bitwarden apps and browser extensions.
Difficulty: Easy | RAM: 128MB | Docker: Yes
Paperless-ngx
What it does: Document management system with OCR
Why you need it: Scan, organize, and search all your documents digitally. Never lose a receipt or bill again.
Difficulty: Medium | RAM: 1GB | Docker: Yes
Home Automation
Home Assistant
What it does: Home automation platform
Why you need it: Control and automate all your smart home devices from one dashboard. Works with virtually every smart home protocol and device.
Difficulty: Medium | RAM: 1–2GB | Docker: Yes
Monitoring & Management
Portainer
What it does: Docker management web UI
Why you need it: Manage your Docker containers through a visual interface instead of the command line. Essential for beginners.
Difficulty: Easy | RAM: 256MB | Docker: Yes
Grafana + Prometheus
What it does: Metrics visualization and monitoring
Why you need it: Beautiful dashboards showing CPU, RAM, disk, and network usage across all your servers.
Difficulty: Medium | RAM: 512MB each | Docker: Yes
Heimdall or Homepage
What it does: Application dashboard
Why you need it: A single page with links to all your self-hosted services. Your homelab's homepage.
Difficulty: Easy | RAM: 128MB | Docker: Yes
Starter Stack Recommendations
The Essentials (5 containers, ~2GB RAM)
- Pi-hole
- Portainer
- Nginx Proxy Manager
- Uptime Kuma
- Homepage
The Media Server (add ~4GB RAM)
- Jellyfin
- Radarr + Sonarr + Prowlarr
The Full Stack (add ~4GB RAM)
- Nextcloud
- Vaultwarden
- Home Assistant
- Grafana + Prometheus
Tips for Getting Started
- Use Docker Compose: Define your entire stack in one YAML file. Easy to backup, restore, and replicate.
- Start with 2–3 containers: Don't try to deploy everything at once. Get comfortable, then add more.
- Join the communities: r/selfhosted, the app-specific Discord servers, and YouTube channels are invaluable.
- Back up your data: Docker volumes contain your config and data. Back them up regularly.
- Use Portainer: It makes Docker management visual and beginner-friendly.
Bottom Line
You don't need to run all of these. Start with Pi-hole and Portainer, then add services as you need them. The beauty of self-hosting is choosing exactly what you want to run. Every app on this list is free and open source.