← All articles
MEDIA The Arr Stack: Sonarr, Radarr, Prowlarr, and Jellyse... 2026-02-09 · 5 min read · sonarr · radarr · prowlarr

The Arr Stack: Sonarr, Radarr, Prowlarr, and Jellyseerr Explained

Media 2026-02-09 · 5 min read sonarr radarr prowlarr jellyseerr media docker automation

The "Arr stack" is a collection of tools that work together to automate media library management. Each tool handles a specific part of the pipeline: finding content, downloading it, organizing it, and serving it. The name comes from the shared naming convention — Sonarr, Radarr, Lidarr, Prowlarr — all ending in "arr."

If you're already running Jellyfin or Plex for media playback, the Arr stack is the automation layer that keeps your library organized and up to date. Instead of manually finding, downloading, renaming, and sorting media files, the Arr tools handle the entire workflow.

Sonarr logo

The Stack at a Glance

Tool Purpose What it manages
Prowlarr Indexer manager Manages and syncs indexers to all other Arr apps
Sonarr TV show manager Monitors, downloads, and organizes TV series
Radarr Movie manager Monitors, downloads, and organizes movies
Lidarr Music manager Monitors, downloads, and organizes music
Readarr Book manager Monitors, downloads, and organizes ebooks/audiobooks
Jellyseerr/Overseerr Request manager Lets users request content through a clean interface
Bazarr Subtitle manager Automatically downloads subtitles for your media

You don't need all of them. Most people start with Prowlarr + Sonarr + Radarr and add others as needed.

How They Work Together

The workflow flows like this:

  1. Prowlarr connects to indexers (sources that list available content) and shares them with Sonarr/Radarr/Lidarr.
  2. Sonarr/Radarr search those indexers when new content is available or when you add something to your wanted list.
  3. When a match is found, Sonarr/Radarr send it to a download client (typically qBittorrent, Transmission, SABnzbd, or NZBGet).
  4. Once downloaded, Sonarr/Radarr automatically rename and organize the files into your media library's folder structure.
  5. Jellyfin or Plex picks up the new files and makes them available for playback.
  6. Jellyseerr provides a user-friendly interface where family members can request movies or shows without needing access to Sonarr/Radarr.

Deploying the Core Stack

Here's a Docker Compose setup for the essential components:

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

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

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

  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    restart: unless-stopped
    ports:
      - "5055:5055"
    volumes:
      - ./jellyseerr:/app/config
    environment:
      - TZ=America/New_York

Setting Up Prowlarr

Prowlarr is the central hub for indexers. Instead of configuring indexers in each Arr app separately, you configure them once in Prowlarr and sync to everything else.

  1. Open Prowlarr (port 9696) and go to Settings → Apps.
  2. Add Sonarr and Radarr as applications — you'll need their API keys (found in each app under Settings → General).
  3. Go to Indexers and add your indexer sources.
  4. Prowlarr automatically syncs the indexers to Sonarr and Radarr.

When you add or remove indexers in Prowlarr, the changes propagate to all connected Arr apps automatically.

Configuring Sonarr and Radarr

Both work similarly. The key configuration areas:

Root Folders

Tell Sonarr/Radarr where your media library lives:

Quality Profiles

Define what quality level you want. Common profiles:

Download Clients

Connect your download client under Settings → Download Clients. Add qBittorrent, Transmission, or your preferred client with its URL and credentials.

Naming

Configure how files get renamed under Settings → Media Management. A common naming scheme:

For TV shows:

{Series TitleYear} - S{season:00}E{episode:00} - {Episode CleanTitle} [{Quality Full}]

Produces: Breaking Bad (2008) - S01E01 - Pilot [Bluray-1080p]

For movies:

{Movie CleanTitle} ({Release Year}) [{Quality Full}]

Produces: Inception (2010) [Bluray-1080p]

Jellyseerr for Requests

Jellyseerr gives your household a Netflix-like interface for requesting content. Family members browse, search, and request — without needing to know how Sonarr or Radarr work.

After deploying Jellyseerr:

  1. Connect it to your Jellyfin (or Plex) server for authentication and library scanning.
  2. Connect it to Sonarr and Radarr so requests automatically create entries.
  3. Users sign in with their Jellyfin accounts and can request movies or TV shows.
  4. You can set up auto-approval or manually approve each request.

Folder Structure

A clean folder structure prevents headaches. The recommended approach uses a single /data root with separate directories:

/data/
├── downloads/
│   ├── complete/
│   └── incomplete/
├── media/
│   ├── movies/
│   ├── tv/
│   ├── music/
│   └── books/

Mount this same /data directory into all containers. This allows Sonarr/Radarr to use "hardlinks" or "atomic moves" instead of copying files — which is much faster and doesn't use extra disk space.

The key principle: all Arr apps and your download client should see the same file paths. If your download client saves to /data/downloads/complete and Sonarr sees the same path, it can instantly move files without copying.

Bazarr for Subtitles

Bazarr automatically downloads subtitles for your media. It connects to Sonarr and Radarr to know what's in your library, then searches subtitle providers for matches.

  bazarr:
    image: lscr.io/linuxserver/bazarr:latest
    container_name: bazarr
    restart: unless-stopped
    ports:
      - "6767:6767"
    volumes:
      - ./bazarr:/config
      - /data/media/movies:/movies
      - /data/media/tv:/tv
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York

Configure subtitle providers (OpenSubtitles is the most popular) and language preferences. Bazarr downloads subtitles automatically when new media appears and can also backfill subtitles for your existing library.

Tips for a Smooth Setup

  1. Start with Prowlarr. It eliminates the most tedious part of setup — configuring indexers across multiple apps.

  2. Get file permissions right early. All containers should run with the same PUID/PGID, and the media directories should be writable by that user. Permission issues are the number one source of "it found and downloaded but didn't import" problems.

  3. Use the same base path everywhere. If Sonarr sees /data/media/tv and Radarr sees /data/media/movies, keep those paths consistent in Docker volumes. Don't map /mnt/nas/television in one container and /media/tv in another for the same directory.

  4. Set up quality profiles before adding content. It's easier to define what you want upfront than to re-download everything later.

  5. Don't add your entire want-list on day one. The Arr apps will search for everything simultaneously, which can overwhelm indexers and your internet connection. Add content gradually.

The Arr stack has a reputation for being complex, and the initial setup does take some time. But once it's running, it's remarkably hands-off. New episodes download automatically, movies organize themselves, and your library stays clean and consistent.