5.7 KiB
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 end‑to‑end 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 it’s 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.