The *Arr Stack

Sonarr, Radarr, and friends. The automation layer that makes your media server feel like magic.

What are the *arr apps?

The "*arr" apps are a family of tools that automate the process of finding, downloading, organizing, and managing media. They all follow the same pattern: you tell them what you want, they search for it, grab it, rename it, sort it into the right folder, and notify your media server. You don't have to lift a finger.

Each app handles a different type of media:

They all have web-based interfaces, run in Docker, and integrate with each other beautifully. Set them up once and they just run in the background, keeping your library up to date.

How they work (the basic flow)

Here's what happens when you add a TV show to Sonarr, for example:

  1. You search for a show (e.g., "Breaking Bad") and click "Add"
  2. Sonarr checks your quality profile -- do you want 1080p? 4K? Whatever's available?
  3. Sonarr asks Prowlarr to search all your configured indexers for the show
  4. Results come back, Sonarr picks the best match based on your quality preferences
  5. Sonarr sends the download to your download client (SABnzbd for Usenet, qBittorrent for torrents)
  6. The download completes, Sonarr detects it, renames the file properly, and moves it into your media folder
  7. Plex or Jellyfin picks up the new file and adds it to your library
  8. For ongoing shows, Sonarr monitors for new episodes and repeats the process automatically

Radarr, Lidarr, and Readarr all work the same way -- just for different media types.

Docker Compose setup

Here's a combined docker-compose.yml that runs the core arr stack. Add this to the same compose file as your media server, or create a separate one:

services:
  sonarr:
    image: lscr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - ./sonarr/config:/config
      - /data:/data
    ports:
      - "8989:8989"
    restart: unless-stopped

  radarr:
    image: lscr.io/linuxserver/radarr:latest
    container_name: radarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - ./radarr/config:/config
      - /data:/data
    ports:
      - "7878:7878"
    restart: unless-stopped

  lidarr:
    image: lscr.io/linuxserver/lidarr:latest
    container_name: lidarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - ./lidarr/config:/config
      - /data:/data
    ports:
      - "8686:8686"
    restart: unless-stopped

  readarr:
    image: lscr.io/linuxserver/readarr:develop
    container_name: readarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - ./readarr/config:/config
      - /data:/data
    ports:
      - "8787:8787"
    restart: unless-stopped

  prowlarr:
    image: lscr.io/linuxserver/prowlarr:latest
    container_name: prowlarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - ./prowlarr/config:/config
    ports:
      - "9696:9696"
    restart: unless-stopped

  bazarr:
    image: lscr.io/linuxserver/bazarr:latest
    container_name: bazarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - ./bazarr/config:/config
      - /data/media:/data/media
    ports:
      - "6767:6767"
    restart: unless-stopped
Notice the /data volume. All the apps mount /data so they can see both the downloads directory and the media directory. This is essential for hardlinks to work (see the overview guide for why this matters).

Start everything with:

docker compose up -d

Then access each app's web UI:

Sonarr: TV shows

Sonarr is probably the app you'll use most. It manages your TV show library, monitors for new episodes, and grabs them automatically as they air.

Initial setup

Open Sonarr at http://your-server:8989. The first time, you'll be asked to set up authentication. Create a username and password.

Adding a root folder

Go to Settings > Media Management and add a root folder. This is where Sonarr will store your TV shows. If you followed the folder structure from the overview guide:

/data/media/tv

Connecting a download client

Go to Settings > Download Clients and add your download client:

Set the category to tv for Sonarr. This tells the download client to sort Sonarr's downloads into a "tv" subfolder, keeping things organized.

Quality profiles

Quality profiles tell Sonarr what quality you want. Go to Settings > Profiles. The defaults are fine to start, but here's what they mean:

Upgrades: Sonarr can automatically upgrade existing episodes. Say you grab a 720p episode because that's all that's available, then later a 1080p version appears -- Sonarr will grab the upgrade and replace the old file. You control this via the "Upgrade Until" setting in quality profiles.

Adding a show

Click Add New (the + icon), search for a show, and configure:

That's it. Sonarr will search your indexers, download what it finds, rename the files, and put them in your TV folder. Going forward, it'll automatically grab new episodes as they air.

Radarr: movies

Radarr is Sonarr's sibling, built specifically for movies. The interface and workflow are nearly identical.

Setup

Open Radarr at http://your-server:7878. The setup process mirrors Sonarr:

  1. Root folder: /data/media/movies
  2. Download client: Same clients as Sonarr, but set the category to movies
  3. Quality profile: Same concepts as Sonarr. HD-1080p is a good default.

Adding a movie

Click Add New, search for a movie, select your quality profile and root folder, and hit "Add Movie." Check "Start search for movie" to begin looking immediately.

Radarr also has a great Discover feature that shows popular, trending, and recommended movies. It's an easy way to fill out your library.

Lists: Radarr supports import lists -- you can connect it to IMDB lists, Trakt watchlists, or even a "Most Popular" list that automatically adds trending movies to your wanted list. Set it up under Settings > Lists.

Lidarr: music

Lidarr handles music the same way Sonarr handles TV -- you add an artist, pick what quality you want, and it grabs their discography.

Setup

Open Lidarr at http://your-server:8686. Configure:

  1. Root folder: /data/media/music
  2. Download client: Same setup, category music
  3. Quality profile: Lidarr has profiles for FLAC (lossless), MP3-320 (high quality compressed), and others. Pick based on your preference and storage.

Adding an artist

Search for an artist, select which albums to monitor (all, future only, or specific ones), and add. Lidarr uses MusicBrainz for its metadata, so it's very thorough about album details.

A heads up: music is harder to automate than TV and movies. File naming is less standardized, and results can be hit-or-miss depending on your indexers. Lidarr works best with good Usenet indexers or well-organized private trackers.

Readarr: books & audiobooks

Readarr extends the arr family to ebooks and audiobooks. Still in active development (it uses the "develop" Docker tag), but functional and improving quickly.

Setup

Open Readarr at http://your-server:8787. Configure:

  1. Root folder: /data/media/books
  2. Download client: Same setup, category books
  3. Quality profile: Readarr has profiles for ebooks (EPUB, MOBI, PDF) and audiobooks (MP3, M4B)

Add authors just like you'd add artists in Lidarr. Readarr will search for their works and grab what it can find.

Prowlarr: the indexer manager

Prowlarr is the glue that holds the search side of things together. Instead of adding indexers individually to Sonarr, Radarr, Lidarr, and Readarr, you add them once in Prowlarr and it syncs everything.

Setup

Open Prowlarr at http://your-server:9696.

Adding indexers

Go to Indexers > Add Indexer. Prowlarr supports hundreds of indexers out of the box. You'll see categories for Usenet and torrent indexers. Add the ones you have accounts on -- each will ask for different credentials (API key, username/password, etc.).

See the Indexers guide for a deeper dive on choosing and configuring indexers.

Syncing to apps

This is the magic part. Go to Settings > Apps and add each of your arr apps:

  1. Click "Add Application"
  2. Select Sonarr (or Radarr, Lidarr, etc.)
  3. Enter the Prowlarr server URL (e.g., http://prowlarr:9696)
  4. Enter the app's server URL (e.g., http://sonarr:8989)
  5. Enter the app's API key (found in each app under Settings > General)
  6. Click "Test" then "Save"

Now every indexer you add to Prowlarr automatically appears in all your connected arr apps. Add a new indexer? It syncs everywhere. Remove one? Gone from everywhere. One place to manage them all.

Sync profiles: Prowlarr lets you create sync profiles to control which indexers go to which apps. For example, you might want your book indexers only in Readarr, not in Sonarr. You can configure this under the sync profile settings.

Bazarr: subtitles

Bazarr monitors your Sonarr and Radarr libraries and automatically downloads subtitles for your media. Essential if you watch content in multiple languages or prefer subtitles.

Setup

Open Bazarr at http://your-server:6767. You'll need to:

  1. Go to Settings > Sonarr and Settings > Radarr to connect your media managers (enter host, port, and API key)
  2. Go to Settings > Providers and enable subtitle providers. OpenSubtitles.org is the most popular (requires a free account). You can also add Subscene, Addic7ed, and others.
  3. Go to Settings > Languages and set your preferred subtitle languages

Bazarr will scan your existing library and start searching for missing subtitles. It'll also monitor for new additions and grab subtitles automatically.

Connecting everything together

Here's a checklist for getting the full stack connected:

  1. Prowlarr: Add your indexers, then connect Prowlarr to Sonarr, Radarr, Lidarr, and Readarr via Settings > Apps
  2. Sonarr/Radarr/Lidarr/Readarr: Add your download clients (SABnzbd and/or qBittorrent) with proper categories
  3. Bazarr: Connect to Sonarr and Radarr, add subtitle providers
  4. Media server: Point Plex/Jellyfin at your media folders. They'll automatically pick up new files.

Quality profiles: a deeper look

Getting your quality profiles right is one of the most important things you can do. Here are some recommended setups:

The "good enough" profile

For most people who just want to watch stuff without worrying about file sizes:

The "quality matters" profile

For people with plenty of storage who want the best:

The "4K collector" profile

Custom formats

Sonarr v4 and Radarr support custom formats -- scoring rules that let you prefer or avoid specific release characteristics. For example:

Custom formats are powerful but optional. The default profiles work fine for getting started. You can fine-tune later as you learn what matters to you.

TRaSH Guides: The community-maintained TRaSH Guides provide excellent, detailed quality profile recommendations for Sonarr, Radarr, and the rest of the stack. They're considered the gold standard for arr app configuration. Search for "TRaSH Guides" -- they're worth bookmarking.

Tips and common issues

Permissions

The most common issue people hit is file permissions. Make sure:

Naming and matching

If the arr apps can't find a match for something, it's usually because the release name doesn't match what the app expects. You can do a manual search (the magnifying glass icon) to see what's available and manually select a result.

Activity queue

Each app has an Activity tab showing current downloads, imports in progress, and any issues. If something seems stuck, check here first.

Backups

The arr apps automatically create backups of their databases. You can find them in each app under System > Backup. It's a good idea to periodically copy the config folders somewhere safe. Rebuilding your configuration from scratch is painful.

Next steps

Your arr apps are ready to go, but they need two things to actually work: download clients to pull files, and indexers to search for them.