Files
docs/tutorials/media-manager/steps/setup-media-manager.md

5.7 KiB
Raw Blame History

ARR Stack Overview and Service Architecture

This section explains all the applications included in your Media Manager stack, what each one does, how they interact with each other, and how the storage mount points are shared across services.

The stack is deployed using a Docker Compose file. Instead of pasting the compose inline here, it is referenced directly:

👉 See the Docker Compose configuration: docker-compose.yml


🌐 The ARR Ecosystem — What Each App Does

Your media automation pipeline consists of several specialized services. Each one has a dedicated role, and together they form a complete endtoend system.

Below is a clear breakdown.


🧭 Prowlarr — The Indexer Aggregator

Prowlarr acts as the central hub for all indexers (public, private, torrent, NZB).

Responsibilities:

  • Connects to multiple indexers
  • Provides unified indexer results to Radarr & Sonarr
  • Manages API keys, categories, indexer syncing

Why its important: Without Prowlarr, you would configure indexers separately in each application — a massive duplication of work.

How it talks to others:

  • Sends torrent results → Radarr/Sonarr
  • Receives indexer categories from them

🎬 Radarr — Automated Movie Management

Radarr handles movie automation.

Responsibilities:

  • Monitor movie requests
  • Fetch releases from indexers via Prowlarr
  • Trigger downloads via qBittorrent
  • Rename, sort, and move completed files into the Movies directory
  • Update Plex libraries

How it talks to others:

  • Index results from Prowlarr
  • Sends download requests to qBittorrent
  • Notifies Plex to refresh libraries
  • Provides subtitles to Bazarr (optional)

📺 Sonarr — Automated TV Show Management

Sonarr is the TV equivalent of Radarr.

Responsibilities:

  • Track TV episodes (past and future)
  • Upgrade quality automatically
  • Send downloads to qBittorrent
  • Rename and organize episodes

How it talks to others:

  • Index results from Prowlarr
  • Send downloads to qBittorrent
  • Sync subtitle requests with Bazarr

💬 Bazarr — Subtitle Management Service

Bazarr automatically finds and downloads subtitles.

Responsibilities:

  • Sync with Radarr and Sonarr
  • Fetch subtitles in desired languages
  • Store subtitles next to their respective media files

How it talks to others:

  • Reads Radarr/Sonarr libraries
  • Writes subtitle files directly inside /data/media/...

🎟️ Jellyseerr — Request Management Portal

Jellyseerr is the user-facing request dashboard.

Responsibilities:

  • Users request movies or shows
  • Requests are forwarded automatically to Radarr/Sonarr
  • Designed for multi-user setups

How it talks to others:

  • Communicates with Radarr/Sonarr via API
  • Shows availability status using Plex integration

📨 Ombi — Alternative Request Management

Ombi is similar to Jellyseerr, with some different UI and features.

Responsibilities:

  • Allows users to request media
  • Integrates with Radarr and Sonarr
  • Sends notifications

Some prefer Jellyseerr, others prefer Ombi — you can run both.


🧱 How These Services Are Connected

Central Flow Diagram (conceptual)

Jellyseerr/Ombi → Radarr/Sonarr ← Prowlarr
                         ↓
                  qBittorrent (host)
                         ↓
                 Organized media library
                         ↓
                        Plex
                         ↓
                       Clients

Key Points:

  • Prowlarr provides indexer data to both Radarr and Sonarr
  • Radarr/Sonarr send download requests to qBittorrent (host)
  • qBittorrent stores downloads into the shared mounted folders
  • Radarr/Sonarr import, rename, and move completed media into /data/media/...
  • Plex sees updated libraries and refreshes
  • Bazarr fetches subtitles and writes them next to the media

All Docker apps talk to host apps using:

host.docker.internal:host-gateway

This ensures containers can reach qBittorrent and Plex.


🗄️ Volume Mount Strategy

All apps share a standardized mount point inside containers:

/data

Outside the container, this maps to:

/mnt/omnissiah-vault/data/media-manager

This ensures:

  • Radarr, Sonarr, Bazarr all see the same folder structure
  • No path translation issues between apps
  • Clean docker-compose configuration

Example Inside Containers

/data/media/movies
/data/media/tv
/data/downloads

🗂️ Config Directory Mounts

Each service stores its settings inside Docker volumes mapped to persistent directories.

Radarr

/mnt/omnissiah-vault/configs/radarr → /config

Sonarr

/mnt/omnissiah-vault/configs/sonarr → /config

Prowlarr

/mnt/omnissiah-vault/configs/prowlarr → /config

Bazarr

/mnt/omnissiah-vault/configs/bazarr → /config

Jellyseerr

/mnt/omnissiah-vault/configs/jellyseerr → /app/config

Ombi

/mnt/omnissiah-vault/configs/ombi → /config

All containers get persistent configuration that survives updates.


🔧 Docker Networking

All ARR services join the same Docker network:

media-net

This provides:

  • Internal communication
  • Isolated service space
  • Avoids exposing containers unintentionally

🚀 Summary

Your ARR stack consists of:

  • Prowlarr for indexers
  • Sonarr for TV
  • Radarr for movies
  • Bazarr for subtitles
  • Jellyseerr or Ombi for request management

They connect using APIs, communicate through a private Docker network, and share a unified /data folder that maps to your mounted storage.

This architecture keeps everything predictable, reproducible, and easy to maintain.


Next: Proceed to configure each service inside their Web UIs.