This repository is a media automation stack that helps people automatically download and organize their TV shows and movies.
Think of this as a "smart home theater assistant" that:
- Finds content - Automatically searches for TV shows and movies you want across various sources on the internet
- Downloads content - Grabs the files when they become available
- Organizes everything - Sorts and renames files properly so your media library stays neat and organized
- Provides a nice interface - Gives you a web dashboard where you can request shows/movies and see what's available
What it includes:
- Overseerr - The main interface where you request movies/TV shows
- Sonarr - Manages TV show downloads and organization
- Radarr - Manages movie downloads and organization
- Prowlarr - Searches across multiple sources to find content
- qBittorrent - Downloads the actual files
In simple terms: Instead of manually searching for and downloading shows/movies yourself, you just tell this system what you want to watch, and it automatically finds, downloads, and organizes everything for you. You access it through a web browser like Netflix, but for your personal collection.
The repository provides an easy Docker-based setup that runs all these applications together with minimal configuration required.
- Docker
- GNU Make (should be installed by default on most unix systems)
- openssl (for generating API keys, you can also just use random string generator)
cp .env.example .env- Generate API key for each Radarr/Sonarr/Prowlarr apps using
openssl rand -hex 16 - Replace
SONARR_API_KEY,RADARR_API_KEY,PROWLARR_API_KEYwith the generated key - Replace
TIMEZONEwith your timezone - Replace
MEDIA_DIRwith path to where you'll be storing media on your host machine - Replace
USER_IDandGROUP_IDwith your host user id and group - - Run
make start - Visit the
HOSTNAMEorlocalhost:5055and configureOverseerusing the wizard - For each Radarr/Sonarr/Prowlarr apps, configure the
Download Client, I useqbittorrent - Configure Root Folders/Folder Mapping if you're using WSL
- Follow this guide to setup Cloudflare Tunnel
- Replace
CLOUDFLARE_TUNNEL_TOKENwith your Cloudflare Tunnel token - Run
make startto start again with the tunnel - Now that the tunnel is running alongside the stack, you can access the applications via the tunnel URL
- The tunnel should be able to resolve the service names defined in the
docker-compose.ymlfile (e.g.overseerr,sonarr,radarr,prowlarr) - Configure applications in Cloudflare Zero Trust > Access > Applications
- Example:
overseerr.yourdomain.com->http://overseerr:5055 - Example:
sonarr.yourdomain.com->http://sonarr:8989 - Example:
radarr.yourdomain.com->http://radarr:7878 - Example:
prowlarr.yourdomain.com->http://prowlarr:9696
- Example:
- In order to secure access to your applications, you can set up authentication methods in Cloudflare Zero Trust
- Example: Google OAuth, GitHub OAuth, One-time PIN, etc.
- Once configured, configure policies to restrict access to your applications
- Example: Only allow access from specific email domains, specific emails, or specific IP ranges
- After setting up the applications and policies, you can access your applications securely via the Cloudflare Access App Launcher or directly via the URLs you configured
- Congratulations! You have successfully exposed your media automation stack services securely using Cloudflare Tunnel and Zero Trust