If you’ve spent any time in homelab or self-hosting circles, you’ve seen people mention their “Arr stack” — often written *arr, where the asterisk is a wildcard standing in for Sonarr, Radarr, Lidarr, and friends. It sounds like arcane jargon, but the idea is simple: a set of apps that turn “I want to watch this” into an organized file in your library without you touching a download client.
This post explains what each piece does and how they fit together — the concepts, no setup yet. The deploy guide covers actually standing it up, and the automation guide covers wiring it to your media server.
The problem the Arr stack solves
Doing this by hand is tedious: search a dozen indexers, pick a release, download it, wait, rename the file to something your media server understands, move it to the right folder, refresh the library. Repeat for every episode of every show.
The Arr stack automates all of it. You tell it what you want; it handles the searching, grabbing, renaming, and filing — then tells your media server to rescan.
The players
Each app is a focused piece of the pipeline. All are open-source and part of the Servarr family, so they share a near-identical interface.
| App | Handles | Thinks in terms of |
|---|---|---|
| Sonarr | TV shows | series → seasons → episodes |
| Radarr | Movies | single films + editions |
| Prowlarr | Indexers | the sources everything searches |
| A download client (e.g. qBittorrent) | The actual transfer | torrents / Usenet |
| A media server (Plex / Jellyfin) | Playback | libraries you stream |
Sonarr and Radarr are essentially the same program with different logic — Sonarr understands episode numbering and air schedules, Radarr understands releases and cuts. There are siblings too: Lidarr (music), Readarr (books). Most media setups only need Sonarr and Radarr.
How Prowlarr changed the game
Before Prowlarr, you added every indexer to Sonarr and Radarr separately — configure a tracker twice, keep two lists in sync by hand, multiply by every app. Painful.
Prowlarr is the indexer manager: you add each indexer once, in Prowlarr, and it syncs that indexer into every connected Arr app automatically. Add or remove a source in Prowlarr and the change propagates everywhere. Prowlarr stores the indexer definitions; Sonarr and Radarr are registered as “applications” inside it and receive the synced indexers.
The division of labor is clean: Prowlarr decides where to search; Sonarr and Radarr decide what to grab. Prowlarr never downloads anything — it just gives the others a shared, always-current list of places to look.
The pipeline, end to end
Here’s the full loop, from “add a movie” to “ready to watch”:
You add a title (or an import list adds it automatically)
│
▼
Radarr / Sonarr ── decides it's "wanted", asks Prowlarr's indexers
│
▼
Prowlarr indexers ── return candidate releases, scored by quality rules
│
▼
Download client ── grabs the chosen release (torrent behind a VPN)
│
▼
Radarr / Sonarr ── imports: renames + moves the file into the library
│
▼
Media server ── rescans; the title appears, ready to stream
Every arrow is automatic. The only human input is the first line — and even that can be automated with import lists that pull from a watchlist or “popular” feeds.
Where quality rules fit in
The Arr apps don’t grab the first result they find. Each uses a quality profile — your rules for resolution, source, file size, and codecs — to score candidate releases and pick the best one that fits. This is why you can say “prefer 1080p Blu-ray, never grab a cam, cap the file size” and have it enforced on every download. The community-maintained TRaSH Guides are the reference for tuning these; the automation guide covers them.
What about a VPN?
A common worry: does all of this need a VPN? Only one piece does. Sonarr, Radarr, and Prowlarr move metadata and searches — no swarm traffic. The download client is what joins torrent swarms and exposes your IP. So the standard hardened setup routes only the torrent client through a VPN container with a kill-switch, leaving the rest on your LAN. The VPN Torrent Stack playbook does exactly that.
What’s next
Now that the pieces make sense, the next step is standing them up. The deploy guide runs the whole stack in Docker Compose — Prowlarr, Radarr, Sonarr, and a VPN-shielded qBittorrent — in one file.
Related posts:
- Deploy the Arr Stack with Docker Compose — stand up the whole stack in one file
- Automating the Arr Stack: Import Lists, Quality Profiles, and Your Media Server — the hands-off part
- VPN-Shielded Torrent Stack — the download client, behind a kill-switch
- Install Plex Media Server on a NAS or Proxmox LXC — the media server the stack feeds
- Docker on Proxmox: LXC vs VM, Done Right — where to run the containers
Sources: Servarr Wiki, Prowlarr, TRaSH Guides.