The media stack handles downloading, organising, and streaming movies, TV shows, and music. All download traffic is routed through a VPN.
Jellyseerr (requests)
↓
Radarr / Sonarr / Lidarr (automation)
↓
Prowlarr (indexers) + FlareSolverr (Cloudflare bypass)
↓
qBittorrent ← Gluetun VPN (ProtonVPN UK)
↓
/data/media (shared volume)
↓
Jellyfin (streaming) + Bazarr (subtitles)
Media server for streaming movies, TV, and music to any device.
/dev/drimedia-stack/jellyfin-config/${DATA_LOCATION}Request portal — lets users request new movies and shows.
Torrent client. Routed through Gluetun VPN — it cannot connect if VPN is down.
Automated movie downloader.
Automated TV show downloader.
Automated music downloader.
Automatic subtitle downloader for movies and shows.
Manages and syncs torrent/NZB indexers across all *arr apps.
VPN container that all download traffic routes through.
Bypasses Cloudflare protection on torrent indexer sites.
If Gluetun goes down, all download traffic stops automatically — nothing leaks outside the VPN. Jellyfin and Jellyseerr are unaffected (they don't use the VPN).
All *arr apps and Jellyfin share the same data volume (${DATA_LOCATION}) so files don't need to be copied — Radarr/Sonarr just hardlink/move within the same drive.