MediaCenter serves as a starting point for creating your own 'infinite' media library, powered by Real-Debrid and the *Arr stack. For educational/inspirational purposes only, there will be no support.
Important: this is not a docker compose up and go type of ordeal. You'll need to do some manual configuration.
I'm still test driving this setup. Expect glitches.
Also check out Riven.
The purpose of this stack is to create a functioning stack of *Arr powered tools that allow for the streaming of cached torrents via Real-Debrid. All of this using Docker Containers.
I have never cared much for filling a NAS with media, since I don't collect/curate media. This stack of tools favors consumption instead of collection. It is possible to combine it with a library of locally stored files, but I will leave that up to you to figure out.
The other purpose is purely personal: learning about the *Arrs and how I can make this entire stack work together. I'm not committed to this setup.
I'm just sharing my learnings, because there will undoubtedly be others who can use this as their starting point.
- Active Real-Debrid subscription and your API key.
- Docker Engine + Docker Compose.
I'm running this stack on a Ubuntu Server (24.04 LTS) Virtual Machine (8GB RAM, 50GB disk (you don't need 50GB, can be less)) on a Proxmox node. Make sure the IP is static.
I play media exclusively via the Plex App on a Nvidia Shield Pro that Direct Plays almost all types of formats. My Radarr/Sonarr quality profiles are tweaked in such a way that I only grab content that my setup can Direct Play. If your setup requires transcoding search for additional guides online on setting up Plex in Docker with hardware transcoding enabled, this setup does NOT support hardware transcoding as-is.
Read the dedicated tool pages linked above to learn more about their function and configuration.
In a nutshell:
- Zurg + Rclone mount your Real-Debrid library into your filesystem.
- Request movies/series using Overseerr.
- Hand the request over to Radarr/Sonarr.
- Radarr/Sonarr instruct Prowlarr to search torrent indexers.
- Zilean serves as an indexer that scrapes Debrid Media Manager.
- Prowlarr returns found results to Radarr/Sonarr and pick a candidate.
- Radarr/Sonarr hands the torrent over to the RDTClient Download Client.
- RDTClient:
- Adds the torrent to your Real-Debrid account.
- Checks if the file is available on your filesystem (which is mounted by Rclone, remember).
- Creates symlinks to Radarr/Sonarr's
completeddirectory.
- Radarr/Sonarr continues processing as if the file exists locally and moves it to the media folder.
- Autoscan is triggered by Radarr/Sonarr and pushes a library refresh to Plex.
- Plex reads the file symlinks in the media folder. The symlinks resolve to the file in the Rclone mounted filesystem.
Visual representation (credits to ElfHosted):
The most important thing is to get the permissions (775/664, umask 002) right. If files don't show up inside containers, it is most likely a permissions problem. If you decide to run everything as one user, use 755/644 umask 022 and tweak the necessary files as needed
The filesystem is designed to allow for hardlinking, as per the Servarr Wiki recommendation.
If you are new to the *Arr stack, you must read the Servarr Wiki!
- Add your Plex Claim Token to
.envand tweak IDs to your liking.- Every container runs as its own user. All users are part of the same group. This is best practice.
- Add your Real-Debrid API Token to
zurg.yml. - Take a look at the
setup.shscript and run it using./setup.sh.sudo chmod +x setup.shif it is not executable.
- Reboot (virtual) machine.
- The first time you run the stack
Zileanis going to need some time to fill its database.- (You can of course use your preferred indexer instead and remove Zilean from the stack.)
- Configure
Zileanby editing/creating${ROOT_DIR}/config/zilean-config/settings.json. See wiki for guidance.
- Run
docker compose up -d.- If you decided to keep Zilean and have enabled its IMDB Matching functionality, this first run can take VERY long (>1.5 DAYS!).
- Setup RDTClient:
- Settings -> General:
- Maximum parallel downloads =
100 - Maximum unpack processes =
100 - Categories:
radarr,sonarr
- Maximum parallel downloads =
- Settings -> Download Client:
- Download Client =
Symlink Downloader - Download path =
/data/symlinks - Mapped path =
/data/symlinks - Rclone mount path =
/data/realdebrid-zurg/torrents/*
- Download Client =
- Settings -> Provider:
- Provider =
RealDebrid - API Key =
*Your API Key*
- Provider =
- Settings -> qBittorrent / *darr:
- Post Torrent Download Action =
Download all files to host - Post Download Action =
No Action - Only download available files on debrid provider =
checked - Minimum file size to download =
50 - (Unsure if these settings should also be set on the Provider and GUI Defaults setting pages, but it doesn't hurt to do so)
- Post Torrent Download Action =
- Settings -> General:
- Setup Radarr:
- Consult the Servarr Wiki for guidance if needed.
- Just follow the TRaSH-Guides for sensible defaults when setting up Quality Profiles, or see Recyclarr Profile.
- Set your Root Folder to
/data/media/movies. - Take note of your API key under Settings -> General -> API Key.
- Setup Sonarr:
- Consult the Servarr Wiki for guidance if needed.
- Just follow the TRaSH-Guides for sensible defaults when setting up Quality Profiles, or see Recyclarr Profile.
- Set your Root Folder to
/data/media/tv. - Take note of your API key under Settings -> General -> API Key.
- Setup Overseerr.
- Setup Prowlarr (no need to setup a Download Client).
- Setup Autoscan.
- Place the file
./autoscan/config.ymlin${ROOT_DIR}/config/autoscan-config. - Tweak the config if necessary.
- Follow the instructions on the GitHub repo to connect Radarr/Sonarr to Autoscan.
- Place the file
- Setup Plex.
- Configure movie library to point to
/data/media/movies. - Configure tv library to point to
/data/media/tv.
- Configure movie library to point to
Included in this repo is a recyclarr.yml file that will sync two quality profiles to Radarr and Sonarr. One for 1080p and one for 2160p. Out of the box these profiles will accept every type of quality for each resolution. E.g. the 1080p profile will accept everything from HDTV-1080p all the way up to REMUX-1080p, but prefers the highest quality.
Tweak the profiles to your needs (like changing the until_score) or create your own from scratch. Consult the Recyclarr website for guidance.
Place the file ./recyclarr/recyclarr.yaml in ${ROOT_DIR}/config/recyclarr-config/. If docker compose is already running, run the following command: docker compose exec recyclarr recyclarr sync and monitor the output.
- All the authors of the tools used in the stack.
- Servarr Wiki. Especially the Docker Guide.
- ElfHosted's article that was my inspiration to try this myself.
- Sailarr's Guide.
- Ezarr. Laid down the foundation using their approach. GOATs.
- Debrid Media Manager. Was my first look into the world of Debrid services.
- dreulavelle/Prowlarr-Indexers for the Prowlarr torrentio config.
