Media Server Stack
A fully automated self-hosted media management stack โ from request to playback, entirely hands off.
How It Started
The media server didn't begin as a fully automated stack. For a long time the library was built up and managed manually. Eventually I wanted something more robust โ a system that could handle library organisation, naming conventions and automation without manual intervention. That led me to the ARR stack. Sonarr, Radarr and Prowlarr were all configured together as a unit, with Jellyseerr added later as the front end.
The Stack
Each service has a distinct role and they communicate via APIs:
- Jellyfin โ the media server itself. Handles streaming, transcoding, user accounts and playback across devices.
- Radarr โ manages the movie library. Monitors for releases, handles quality upgrades and enforces naming conventions.
- Sonarr โ same as Radarr but for TV shows. Tracks episode releases season by season.
- Prowlarr โ manages all indexers in one place and syncs them directly into Radarr and Sonarr so you only configure indexers once.
- Jellyseerr โ the front-end request interface. Connects to Jellyfin for user authentication and to Radarr and Sonarr for submitting requests. I never need to touch the underlying services directly.
The Automation Pipeline
Once a request is submitted the entire process is hands off:
- Jellyseerr sends the request to Radarr or Sonarr via API.
- Radarr or Sonarr searches for a matching release using the indexers that Prowlarr has already synced into them.
- The release is sent to the download client which fetches it and saves it into a staging folder on the NAS.
- Once complete, Radarr or Sonarr moves and renames the file into the correct library folder following the naming convention.
- Jellyfin picks it up on the next library scan. Jellyseerr is notified and marks the request as available.
Storage & Organisation
All media lives on the Synology DS218+ NAS, mounted directly into jellyfinCT. The folder structure is:
Movies/[Name] [Year]/TV Shows/[Name] [Year]/Season X/Downloads/Movies/andDownloads/TV Shows/โ staging while in progressOther/โ anything outside the standard library
Where Everything Runs
Jellyfin, Radarr, Sonarr and Prowlarr all run inside jellyfinCT โ an Ubuntu LXC container on Proxmox. Jellyseerr runs in its own Debian container jellyseerrCT via Docker. The NAS is mounted at the Proxmox host level and passed through to jellyfinCT so the ARR stack can read and write the library directly.