If you’re running a homelab media server, you’ve probably used Radarr and Sonarr to automate your movie and TV libraries. But keeping them tuned with the latest recommended quality profiles and naming standards from TRaSH-Guides can be a chore. That’s where Recyclarr comes in, it automatically syncs your Radarr and Sonarr settings with TRaSH-Guides so your setup stays clean and consistent.
This guide assumes you already have a media server stack (e.g., Sonarr/Radarr + Docker) up and running.
📑 Table of Contents
- 🤔 What is Recyclarr?
- 🛠️ Docker Compose: config setup
- 📦 Configuration basics (
recyclarr.yml
) - 💾 Optional: Customizing Recyclarr
- ✅ Final Thoughts
🤔 What is Recyclarr? (and why run it in Docker)
Recyclarr is an open-source tool that keeps your Sonarr and Radarr settings in sync with the latest recommendations from TRaSH-Guides. Instead of manually copying quality profiles, custom formats, and naming schemes, Recyclarr automatically pulls the newest configs from TRaSH-Guides and applies them to your apps. That means less time tweaking settings and more time enjoying a clean, consistent media library.
Updates happen on two levels:
- The tool itself: updated by the Recyclarr project (easy to pull new versions via Docker).
- The configs: fetched from TRaSH-Guides every time you run a sync, so you always get the latest community best practices.
Running Recyclarr in Docker makes it even easier:
- Deploy with a single
docker-compose up -d
- Update by pulling the latest image and restarting the container
- Keep everything isolated and reproducible, just like the rest of your media stack
For anyone already using Docker for Plex/Jellyfin, Sonarr, Radarr, or other homelab apps, Recyclarr slots right in with minimal effort.
🛠️ Docker Compose: config setup
1. Create the config folder
First, create a folder for Recyclarr’s configuration. This is where your recyclarr.yml
file will live:
mkdir recyclarr
2. Add docker-compose.yml
Create a docker-compose.yml
in the same directory with the following content:
version: "3.9"
# Optional: only needed if Sonarr/Radarr are in a different compose file
networks:
media-server:
external: true
services:
recyclarr:
image: ghcr.io/recyclarr/recyclarr:latest
container_name: recyclarr
networks:
- media-server # Optional (see explanation below)
environment:
- TZ=Europe/Amsterdam
volumes:
- ./config:/config # Holds your recyclarr.yml
restart: unless-stopped
In this example I’ve chosen to use a custom network. This is the approach I recommend if Radarr and Sonarr run in a different docker-compose.yml, since each Compose file creates its own private network by default. Containers in separate files can’t see each other unless you attach them to a shared external network.
Now to create that network (if you haven't already):
docker network create media-server
Then attach Sonarr, Radarr, and Recyclarr to it (even across different Compose projects).
Start recyclarr
Bring it up with:
docker compose up -d
This will start Recyclarr and automatically create the ./config folder on your host (if it doesn’t already exist). Inside that folder, you’ll add your recyclarr.yml configuration file in the next step.
📦 Configuration basics (`recyclarr.yml`)
The easiest way to get started with Recyclarr is by using the prebuilt configuration files. These come directly from the Recyclarr project and are aligned with TRaSH-Guides. For most setups, these configs “just work” with minimal effort.
You can find them here:
Example config
Place this file in ./recyclarr/recyclarr.yml
:
radarr:
remux-web-1080p:
base_url: http://radarr:7878
api_key: YOUR_RADARR_API_KEY
include:
- template: radarr-quality-definition-movie
- template: radarr-quality-profile-remux-web-1080p
- template: radarr-custom-formats-remux-web-1080p
sonarr:
web-1080p-v4:
base_url: http://sonarr:8989
api_key: YOUR_SONARR_API_KEY
include:
- template: sonarr-quality-definition-series
- template: sonarr-v4-quality-profile-web-1080p
- template: sonarr-v4-custom-formats-web-1080p
How the templates work
Each include:
line pulls in a prebuilt block of settings. For example:
radarr-quality-profile-remux-web-1080p
→ creates a quality profile for Remux + WEB 1080p.radarr-custom-formats-remux-web-1080p
→ applies the correct TRaSH-Guides custom formats and scores.
You don’t have to define points or custom formats yourself, Recyclarr fetches the latest rules directly from TRaSH-Guides and applies them to your profiles.
API keys
Recyclarr needs API keys to talk to your apps:
- Sonarr → Settings → General → Security → API Key
- Radarr → Settings → General → Security → API Key
Copy the keys and paste them into your config.
Syncing Recyclarr
Once your recyclarr.yml is in place, run a sync:
docker-compose exec recyclarr recyclarr sync
This will connect to Sonarr and Radarr, update the quality profiles, and apply the custom formats from TRaSH-Guides.
Once the container is running with docker compose up -d
, it will sync automatically on a schedule (daily by default), so you don’t need to trigger it manually.
If you prefer one-off runs, add the --rm flag so the container is removed after the sync finishes.
After the sync, you should now see the new quality profiles and custom formats inside Radarr and Sonarr, automatically created and linked to TRaSH-Guides.
And that’s it, at this point, Recyclarr is up and running and your profiles are ready for use! 🎉
💾 Optional: Customizing Recyclarr
The prebuilt configurations are designed to be simple and opinionated. For example, the Radarr profiles often only include two qualities (e.g., Remux and WEB). That’s perfectly fine if you want to keep things minimal, but in reality many people like to include more options (Blu-ray, HDTV, etc.) or add their own rules.
You can do this by extending the prebuilt templates with your own settings.
Example: adding qualities and a custom format
radarr:
remux-web-1080p:
base_url: http://radarr:7878
api_key: YOUR_RADARR_API_KEY
include:
- template: radarr-quality-definition-movie
- template: radarr-quality-profile-remux-web-1080p
- template: radarr-custom-formats-remux-web-1080p
quality_profiles:
- name: Remux + WEB 1080p
qualities:
- name: Remux-1080p
- name: WEB 1080p
qualities:
- WEBDL-1080p
- WEBRip-1080p
- name: Bluray-1080p
- name: HDTV-1080p
custom_formats:
- trash_ids:
- 90a6f9a284dff5103f6346090e6280c8
assign_scores_to:
- name: Remux + WEB 1080p
score: -100000
In this example:
- We override the quality profile to add more qualities beyond the two defaults from the template (Blu-ray and HDTV in addition to Remux/WEB).
- We add a custom format for “Low Quality releases” and apply it to the same profile, so Radarr avoids grabbing those.
Note: If you already have a custom format with the same name in Radarr/Sonarr, Recyclarr will skip updating it. To ensure the new settings are applied, delete the existing custom format first and then run a sync.
The full list of available TRaSH IDs (custom formats you can add) can be found here:
For most users, the defaults from the templates are plenty. But if you want extra control over which qualities are allowed, or you want to filter out certain release types, this kind of customization gives you the flexibility to tailor everything to your preferences.
Also make sure after every change to run docker-compose exec recyclarr recyclarr sync
✅ Final Thoughts
Setting up quality profiles and custom formats in Sonarr and Radarr can be tedious, especially if you want to follow all the recommendations from TRaSH-Guides. Recyclarr takes that whole process off your plate. With a single sync, it creates the profiles for you, applies the right custom formats, and keeps everything updated as TRaSH-Guides evolves.
Running it in Docker makes the setup even easier, no manual installs, simple updates, and it just runs quietly in the background. Instead of spending time tweaking settings, you get a media server that’s always in line with community best practices, without the extra work.
Thanks for reading!