| name | servarr |
| description | Deploy, configure, and manage the full media stack — Sonarr, Radarr, Lidarr, Prowlarr, Plex, Tautulli, Overseerr, qBittorrent, Jackett, Bazarr, Recyclarr. Use when setting up media automation, quality profiles, indexers, Docker stacks, or managing a media server. Triggers on mentions of Sonarr, Radarr, Lidarr, Prowlarr, Plex, Tautulli, Overseerr, Jackett, *arr, servarr, media library, quality profiles, TRaSH Guides, media server, NAS. |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash, WebFetch |
Servarr
Expert at deploying and managing the complete media automation stack.
Overview
The media stack follows a pipeline: Acquire → Organize → Serve → Request
- Prowlarr — Unified indexer manager, syncs to all *arr apps (port 9696)
- Sonarr — TV show monitoring and download automation (port 8989)
- Radarr — Movie monitoring and download automation (port 7878)
- Lidarr — Music collection management (port 8686)
- qBittorrent — Download client for torrents (port 8080)
- Bazarr — Automatic subtitle downloads (port 6767)
- Recyclarr — Sync TRaSH Guides quality profiles (CLI)
- Jackett — Indexer proxy, alternative to Prowlarr (port 9117)
- Plex — Media server for playback and transcoding (port 32400)
- Tautulli — Plex monitoring, analytics, and notifications (port 8181)
- Overseerr — User request management → triggers acquisition (port 5055)
Quick Start
services:
sonarr:
image: lscr.io/linuxserver/sonarr:latest
ports: ["8989:8989"]
volumes: ["/path/to/data:/data", "./config/sonarr:/config"]
environment: &env { PUID: "1000", PGID: "1000", TZ: "America/New_York" }
radarr:
image: lscr.io/linuxserver/radarr:latest
ports: ["7878:7878"]
volumes: ["/path/to/data:/data", "./config/radarr:/config"]
environment: *env
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
ports: ["9696:9696"]
volumes: ["./config/prowlarr:/config"]
environment: *env
API Pattern
All *arr apps use the same authentication and API style:
curl -H "X-Api-Key: YOUR_API_KEY" http://localhost:PORT/api/v3/ENDPOINT
API keys are found in each app under Settings → General → Security.
Core Concepts
Quality Profiles — Define acceptable release qualities (720p, 1080p, 4K). Use Recyclarr + TRaSH Guides for optimized defaults.
Root Folders — Where media files are stored. Use a shared /data mount for hardlinks.
Indexers — Configured centrally in Prowlarr, synced to all apps automatically.
Download Clients — qBittorrent/SABnzbd configured in each app under Settings → Download Clients.
Remote Path Mappings — Translate paths between apps when running on different hosts or containers.
Documentation
- Stack Overview — Architecture and data flow
- Docker Compose Setup — Full deployment templates
- Sonarr — Overview (settings, installation, FAQ, system)
- Radarr — Overview (settings, installation, FAQ, quick start)
- Lidarr — Overview (installation, troubleshooting)
- Prowlarr — Overview (installation, FAQ, indexers)
- Plex — Media server setup and library management
- Tautulli — Plex monitoring, analytics, notifications, API
- Overseerr — Request management
- Jackett — Indexer proxy setup and configuration
- qBittorrent — Download client configuration
- Bazarr — Subtitle management
- Quality Profiles — TRaSH Guides best practices
- Recyclarr Config — Recyclarr setup and guide configs
- Hardlinks Guide — TRaSH folder structure for instant moves
- API Reference — Shared API v3 patterns
- Troubleshooting — Common issues and fixes
- Remote Management — Laptop→NAS patterns
Common Workflows
Wire up the full stack
- Deploy Docker Compose → 2. Configure Prowlarr indexers → 3. Add Sonarr/Radarr/Lidarr as apps in Prowlarr → 4. Set qBittorrent as download client in each app → 5. Add root folders → 6. Run Recyclarr for quality profiles → 7. Point Plex at media folders → 8. Set up Overseerr with Sonarr/Radarr
Add a movie via API
curl -X POST -H "X-Api-Key: $RADARR_KEY" -H "Content-Type: application/json" \
http://localhost:7878/api/v3/movie \
-d '{"tmdbId": 123, "qualityProfileId": 1, "rootFolderPath": "/data/movies", "monitored": true, "addOptions": {"searchForMovie": true}}'
Upstream Sources
Sync & Update
When user runs sync: fetch latest from upstream, update docs/.
When user runs diff: compare current vs upstream, report changes.