Automate Your Media Library the Right Way
Radarr and Sonarr are two open-source applications that sit between your torrent or Usenet client and your media server, handling the entire process of finding, downloading, and organizing movies and TV shows without manual intervention. Radarr handles films, Sonarr handles series, and together they form the backbone of most self-hosted media setups. Once configured, they monitor RSS feeds, detect new releases, pull files automatically, and rename everything according to a structure that Plex, Jellyfin, or Emby can read without complaint.
The setup is more involved than most plug-and-play software, but the payoff is a library that essentially manages itself. This guide walks through installing both applications, connecting them to a download client, and configuring the indexers and quality profiles that determine what actually gets downloaded.

Installation: Getting Both Apps Running
The cleanest way to run Radarr and Sonarr is through Docker. Using Docker Compose keeps everything contained, makes updates trivial, and avoids dependency conflicts on the host system. If you are already running a headless Raspberry Pi or similar low-power server, Docker is almost certainly already installed. Create a docker-compose.yml file and define both services together so they share the same network and can communicate internally.
For Sonarr, the LinuxServer.io image (lscr.io/linuxserver/sonarr:latest) is the standard choice. For Radarr, use lscr.io/linuxserver/radarr:latest. Both need three volume mounts: the config directory, the downloads directory, and the media directory. The downloads and media paths should match what your download client uses – if qBittorrent writes files to /data/downloads, Radarr and Sonarr need access to that same path. Mismatched paths are the single most common reason hardlinking fails, which matters because hardlinks let completed downloads appear in your media folder without duplicating storage.
Set the PUID and PGID environment variables to match your host user so file permissions do not become a problem when the apps try to move or rename files. Port 7878 is the default for Radarr, 8989 for Sonarr. After running docker compose up -d, both web interfaces should be accessible from any browser on the local network within about thirty seconds.
Connecting a Download Client
Both applications work with Usenet and torrent clients. qBittorrent is the most common torrent option; SABnzbd and NZBGet cover the Usenet side. In Radarr, navigate to Settings > Download Clients and add your client. For qBittorrent, you need the host (usually the container name if running in Docker, or the local IP), the port, and the login credentials. The Category field is worth setting – assigning radarr as the category means downloaded files get tagged, making it easier to trace which app triggered which download.
Test the connection before moving on. Radarr and Sonarr will both surface a green checkmark when the connection succeeds, or a clear error message when something is wrong. A failed connection at this stage is usually a firewall rule or a Docker network issue, not a credential problem.

Indexers, Quality Profiles, and the Logic Behind Automation
Indexers are the sources Radarr and Sonarr search when looking for content. Public torrent indexers can be added directly, but most users route everything through Prowlarr, a companion app that manages all indexers in one place and syncs them to both Radarr and Sonarr automatically. Prowlarr connects to the other two apps via their API keys, which are found under Settings > General in each application. Once the sync is configured in Prowlarr, any indexer added there appears in both Radarr and Sonarr without additional setup.
Quality profiles control what resolution and format Radarr and Sonarr will accept. The default profiles – HD-1080p, Ultra-HD, and so on – work for most setups, but customizing them prevents the apps from grabbing a 40GB Blu-ray remux when a standard 1080p encode would do. Each profile lets you rank formats by preference and set a minimum quality floor. If a release does not meet the floor, it will be skipped entirely. You can also set a cutoff quality, which tells the app to stop searching once a file at that level or above has been downloaded, preventing constant re-grabs of content already in your library.
The Release Profiles section in Sonarr (called Custom Formats in Radarr) adds another layer of filtering. Custom formats let you assign scores to specific tags in release names – things like HDR, REMUX, x265, or specific release groups. A release accumulates a score based on how many matching tags it contains, and you set a minimum score threshold in the quality profile. This means you can actively prefer HEVC encodes, avoid CAM rips, or deprioritize releases from groups known for poor audio sync, all without any manual intervention after the initial configuration.
One detail that trips up a lot of first-time users is the difference between Monitored and Unmonitored status. When you add a movie or show, it is monitored by default, meaning Radarr or Sonarr will actively search for it and grab it when something matching your quality profile appears. Setting something to unmonitored keeps it in the library for tracking purposes but stops the app from downloading it. This is useful for shows you want to track but have not decided to watch yet, or for completed series where you only want to grab missing episodes rather than everything from the beginning.

Keeping It Running Without Babysitting It
After the initial configuration, both apps handle most things on their own through RSS sync, which checks indexers at a set interval – usually every few minutes – for new releases matching monitored items. There is also an automatic search that runs for any item added to the queue that did not trigger an immediate RSS match. The Activity tab in each app shows what is queued, downloading, or waiting, and the System > Events log captures everything the app has tried to do, which is where you look when something fails silently.
Notifications are worth setting up once everything is stable. Both apps support webhooks, email, Slack, Discord, and a range of other push services through the Settings > Notifications menu. A simple Discord notification when a movie finishes downloading is the kind of small convenience that makes the whole system feel polished rather than just functional. The real test of a working setup is adding a newly released film on a Friday afternoon and finding it in your Plex library before you have finished making dinner – at which point tweaking indexer priorities becomes the kind of hobby it is easy to spend a weekend on.





