{"id":50461767,"url":"https://github.com/Naralux/mediacenter","last_synced_at":"2026-07-05T15:00:40.133Z","repository":{"id":252293875,"uuid":"839994679","full_name":"Naralux/mediacenter","owner":"Naralux","description":"Real-Debrid + *Arr Powered Infinite Streaming.","archived":false,"fork":false,"pushed_at":"2025-01-21T11:49:47.000Z","size":88,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T12:31:46.843Z","etag":null,"topics":["overseerr","plex","prowlarr","radarr","rclone","real-debrid","sonarr","zurg"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Naralux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-08T18:38:39.000Z","updated_at":"2025-01-21T11:49:50.000Z","dependencies_parsed_at":"2024-12-20T20:32:21.891Z","dependency_job_id":null,"html_url":"https://github.com/Naralux/mediacenter","commit_stats":null,"previous_names":["naralux/mediacenter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Naralux/mediacenter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naralux%2Fmediacenter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naralux%2Fmediacenter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naralux%2Fmediacenter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naralux%2Fmediacenter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Naralux","download_url":"https://codeload.github.com/Naralux/mediacenter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Naralux%2Fmediacenter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35158308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["overseerr","plex","prowlarr","radarr","rclone","real-debrid","sonarr","zurg"],"created_at":"2026-06-01T05:00:26.642Z","updated_at":"2026-07-05T15:00:40.103Z","avatar_url":"https://github.com/Naralux.png","language":"Shell","funding_links":[],"categories":["Deployment Stacks"],"sub_categories":["Discord"],"readme":"# MediaCenter\nMediaCenter 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.\n\n__Important: this is not a `docker compose up` and go type of ordeal. You'll need to do some manual configuration.__\n\n__I'm still test driving this setup. Expect glitches.__\n\n__Also check out [Riven](https://github.com/rivenmedia/riven).__\n\n# Purpose\nThe 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.\n\nI 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.\n\nThe 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.\n\nI'm just sharing my learnings, because there will undoubtedly be others who can use this as their starting point.\n\n# Requirements\n- Active [Real-Debrid](https://real-debrid.com/) subscription and your [API key](https://real-debrid.com/apitoken).\n- Docker Engine + Docker Compose.\n\n## My Setup\nI'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.\n\nI 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.\n\n# Stack\n- [Zurg](https://github.com/debridmediamanager/zurg-testing)\n- [Rclone](https://github.com/rclone/rclone)\n- [RDTClient](https://github.com/rogerfar/rdt-client)\n- [Overseerr](https://overseerr.dev/)\n- [Radarr](https://radarr.video/)\n- [Sonarr](https://sonarr.tv/)\n- [Recyclarr](https://recyclarr.dev/)\n- [Prowlarr](https://prowlarr.com/)\n- [Zilean](https://github.com/iPromKnight/zilean)\n- [Plex](https://www.plex.tv/)\n- [Autoscan](https://github.com/saltydk/autoscan)\n\nRead the dedicated tool pages linked above to learn more about their function and configuration.\n\nIn a nutshell:\n- Zurg + Rclone mount your Real-Debrid library into your filesystem.\n- Request movies/series using Overseerr.\n- Hand the request over to Radarr/Sonarr.\n- Radarr/Sonarr instruct Prowlarr to search torrent indexers.\n- Zilean serves as an indexer that scrapes [Debrid Media Manager](https://github.com/debridmediamanager/debrid-media-manager).\n- Prowlarr returns found results to Radarr/Sonarr and pick a candidate.\n- Radarr/Sonarr hands the torrent over to the RDTClient Download Client.\n- RDTClient:\n    - Adds the torrent to your Real-Debrid account.\n    - Checks if the file is available on your filesystem (which is mounted by Rclone, remember).\n    - Creates symlinks to Radarr/Sonarr's `completed` directory.\n- Radarr/Sonarr continues processing as if the file exists locally and moves it to the media folder.\n- Autoscan is triggered by Radarr/Sonarr and pushes a library refresh to Plex.\n- Plex reads the file symlinks in the media folder. The symlinks resolve to the file in the Rclone mounted filesystem.\n\nVisual representation (credits to ElfHosted):\n\n![Visualized flow. Credits to ElfHosted.](./images/flow-visualization.png)\n\n# Setup - (WIP - Rough Outline)\n__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__\n\n__The filesystem is designed to allow for [hardlinking](https://trash-guides.info/Hardlinks/Hardlinks-and-Instant-Moves/), as per the [Servarr Wiki recommendation](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths).__\n\n__If you are new to the *Arr stack, you must read the [Servarr Wiki](https://wiki.servarr.com/)!__\n\n1. Add your Plex Claim Token to `.env` and tweak IDs to your liking.\n    - Every container runs as its own user. All users are part of the same group. This is best practice.\n2. Add your Real-Debrid API Token to `zurg.yml`.\n3. Take a look at the `setup.sh` script and run it using `./setup.sh`.\n    - `sudo chmod +x setup.sh` if it is not executable.\n4. Reboot (virtual) machine.\n5. The first time you run the stack `Zilean` is going to need some time to fill its database.\n    - *(You can of course use your preferred indexer instead and remove Zilean from the stack.)*\n    - Configure `Zilean` by editing/creating `${ROOT_DIR}/config/zilean-config/settings.json`. See [wiki](https://ipromknight.github.io/zilean/configuration.html) for guidance.\n6. Run `docker compose up -d`.\n    - If you decided to keep Zilean and have enabled its IMDB Matching functionality, this first run can take VERY long (\u003e1.5 DAYS!).\n7. Setup RDTClient:\n    - Settings -\u003e General:\n        - Maximum parallel downloads = `100`\n        - Maximum unpack processes = `100`\n        - Categories: `radarr,sonarr`\n    - Settings -\u003e Download Client:\n        - Download Client = `Symlink Downloader`\n        - Download path = `/data/symlinks`\n        - Mapped path = `/data/symlinks`\n        - Rclone mount path = `/data/realdebrid-zurg/torrents/*`\n    - Settings -\u003e Provider:\n        - Provider = `RealDebrid`\n        - API Key = `*Your API Key*`\n    - Settings -\u003e qBittorrent / *darr:\n        - Post Torrent Download Action = `Download all files to host`\n        - Post Download Action = `No Action`\n        - Only download available files on debrid provider = `checked`\n        - Minimum file size to download = `50`\n        - *(Unsure if these settings should also be set on the Provider and GUI Defaults setting pages, but it doesn't hurt to do so)*\n8. Setup Radarr:\n    - Consult the Servarr Wiki for guidance if needed.\n    - Just follow the [TRaSH-Guides](https://trash-guides.info/Radarr/) for sensible defaults when setting up Quality Profiles, or see [Recyclarr Profile](#recyclarr-profile).\n    - Set your Root Folder to `/data/media/movies`.\n    - Take note of your API key under Settings -\u003e General -\u003e API Key.\n9. Setup Sonarr:\n    - Consult the Servarr Wiki for guidance if needed.\n    - Just follow the [TRaSH-Guides](https://trash-guides.info/Sonarr/) for sensible defaults when setting up Quality Profiles, or see [Recyclarr Profile](#recyclarr-profile).\n    - Set your Root Folder to `/data/media/tv`.\n    - Take note of your API key under Settings -\u003e General -\u003e API Key.\n10. Setup Overseerr.\n11. Setup Prowlarr (no need to setup a Download Client).\n    - Consult the Servarr Wiki for guidance if needed.\n    - If you want to use Torrentio:\n        - Grab the files from [here](https://github.com/dreulavelle/Prowlarr-Indexers/tree/main/Custom) and place them inside `${ROOT_DIR}/config/prowlarr-config/Definitions/Custom/`.\n    - For Zilean, see the instructions [here](https://ipromknight.github.io/zilean/torznab-indexer.html#setting-up-as-torznab-indexer-for-prowlarr).\n    - Configure indexers.\n12. Setup Autoscan.\n    - Place the file `./autoscan/config.yml` in `${ROOT_DIR}/config/autoscan-config`.\n    - Tweak the config if necessary.\n    - Follow the instructions on the [GitHub repo](https://github.com/saltydk/autoscan?tab=readme-ov-file#the--arrs) to connect Radarr/Sonarr to Autoscan.\n13. Setup Plex.\n    - Configure movie library to point to `/data/media/movies`.\n    - Configure tv library to point to `/data/media/tv`.\n\n## Recyclarr Profile\nIncluded 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.\n\nTweak the profiles to your needs (like changing the `until_score`) or create your own from scratch. Consult the [Recyclarr website](https://recyclarr.dev/) for guidance.\n\nPlace 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.\n\n# Interesting Reads + Credits\n- All the authors of the tools used in the stack. \n- [Servarr Wiki](https://wiki.servarr.com/). Especially the [Docker Guide](https://wiki.servarr.com/docker-guide).\n- [ElfHosted's article](https://elfhosted.com/guides/media/stream-from-real-debrid-with-plex-radarr-sonarr-prowlarr/) that was my inspiration to try this myself.\n- [Sailarr's Guide](https://savvyguides.wiki/sailarrsguide/).\n- [Ezarr](https://github.com/Luctia/ezarr). Laid down the foundation using their approach. GOATs.\n- [Debrid Media Manager](https://github.com/debridmediamanager/debrid-media-manager). Was my first look into the world of Debrid services.\n- [dreulavelle/Prowlarr-Indexers](https://github.com/dreulavelle/Prowlarr-Indexers) for the Prowlarr torrentio config.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNaralux%2Fmediacenter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNaralux%2Fmediacenter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNaralux%2Fmediacenter/lists"}