Complete *arr Media Automation
Full media automation with Sonarr, Radarr, Prowlarr, and download clients.
Overview
Sonarr, Radarr, and Prowlarr form the core of modern media automation, representing the evolution of self-hosted media management that began with early tools like SickBeard and CouchPotato. Sonarr handles TV show monitoring and acquisition, automatically tracking new episodes across RSS feeds and integrating with both Usenet and BitTorrent sources. Radarr provides identical functionality for movies, while Prowlarr serves as the centralized indexer manager that synchronizes tracker and indexer configurations across all *arr applications. This stack represents years of community-driven development focused on reliability, extensive customization options, and robust metadata handling. Prowlarr eliminates the traditional pain point of manually configuring indexers in each application, instead providing a single management interface that pushes configurations to connected services. When combined with qBittorrent as the download client and Jellyfin as the media server, this creates a complete pipeline from content discovery to streaming. The integration allows for automatic quality upgrades, failed download handling, and intelligent file organization that maintains clean library structures. This particular combination offers privacy-focused alternatives to commercial services - Jellyfin provides tracking-free streaming while qBittorrent offers advanced bandwidth management and RSS automation features. Home media enthusiasts and privacy-conscious users benefit most from this stack, particularly those managing large libraries across multiple content types. The system excels in environments where content needs to be automatically acquired, organized, and made available across multiple devices without relying on external services or subscriptions.
Key Features
- Centralized indexer management through Prowlarr with automatic sync to all connected *arr applications
- Automatic TV episode and movie monitoring with customizable quality profiles and upgrade paths
- Failed download handling and automatic re-searching when downloads fail or are of poor quality
- Calendar view integration showing upcoming releases and monitoring status across all content types
- Hardware-accelerated transcoding in Jellyfin with support for Intel QuickSync, NVIDIA NVENC, and AMD VCE
- Advanced torrent management in qBittorrent with RSS automation, sequential downloading, and bandwidth scheduling
- Comprehensive metadata fetching from TheTVDB, TheMovieDB, and MusicBrainz with automatic artwork and subtitle handling
- List integration supporting IMDb watchlists, Trakt lists, and custom import sources for bulk content addition
Common Use Cases
- 1Home media server operators wanting to automate TV show and movie acquisition from multiple sources
- 2Cord-cutters seeking to replace cable television with automated content delivery and streaming
- 3Media collectors managing large libraries requiring consistent naming, organization, and quality standards
- 4Privacy-focused users avoiding commercial streaming services while maintaining equivalent convenience
- 5Multi-user households needing centralized media management with individual user profiles and parental controls
- 6Remote media access scenarios where content needs to be automatically acquired and available for streaming anywhere
- 7Bandwidth-conscious environments requiring scheduled downloads and quality management to control data usage
Prerequisites
- Minimum 2GB RAM total (512MB each for Sonarr/Radarr, 256MB for Prowlarr, 1GB+ for Jellyfin with transcoding)
- At least 20GB free storage for application data plus adequate space for media libraries and download staging
- Valid indexer accounts for Usenet providers or private torrent trackers to populate Prowlarr configurations
- Basic understanding of media file formats, quality profiles, and torrent/Usenet concepts
- Network configuration knowledge for port forwarding if accessing services remotely or optimizing torrent connectivity
- Familiarity with file permissions and user/group management for proper media file access across containers
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 prowlarr: 3 image: linuxserver/prowlarr:latest4 environment: 5 - PUID=10006 - PGID=10007 - TZ=UTC8 volumes: 9 - prowlarr_config:/config10 ports: 11 - "9696:9696"12 networks: 13 - arr_net1415 sonarr: 16 image: linuxserver/sonarr:latest17 environment: 18 - PUID=100019 - PGID=100020 - TZ=UTC21 volumes: 22 - sonarr_config:/config23 - /media/tv:/tv24 - /media/downloads:/downloads25 ports: 26 - "8989:8989"27 networks: 28 - arr_net2930 radarr: 31 image: linuxserver/radarr:latest32 environment: 33 - PUID=100034 - PGID=100035 - TZ=UTC36 volumes: 37 - radarr_config:/config38 - /media/movies:/movies39 - /media/downloads:/downloads40 ports: 41 - "7878:7878"42 networks: 43 - arr_net4445 lidarr: 46 image: linuxserver/lidarr:latest47 environment: 48 - PUID=100049 - PGID=100050 - TZ=UTC51 volumes: 52 - lidarr_config:/config53 - /media/music:/music54 - /media/downloads:/downloads55 ports: 56 - "8686:8686"57 networks: 58 - arr_net5960 readarr: 61 image: linuxserver/readarr:develop62 environment: 63 - PUID=100064 - PGID=100065 - TZ=UTC66 volumes: 67 - readarr_config:/config68 - /media/books:/books69 - /media/downloads:/downloads70 ports: 71 - "8787:8787"72 networks: 73 - arr_net7475 qbittorrent: 76 image: linuxserver/qbittorrent:latest77 environment: 78 - PUID=100079 - PGID=100080 - TZ=UTC81 - WEBUI_PORT=808182 volumes: 83 - qbit_config:/config84 - /media/downloads:/downloads85 ports: 86 - "8081:8081"87 - "6881:6881"88 - "6881:6881/udp"89 networks: 90 - arr_net9192 jellyfin: 93 image: jellyfin/jellyfin:latest94 environment: 95 - PUID=100096 - PGID=100097 - TZ=UTC98 volumes: 99 - jellyfin_config:/config100 - jellyfin_cache:/cache101 - /media/tv:/media/tv:ro102 - /media/movies:/media/movies:ro103 - /media/music:/media/music:ro104 ports: 105 - "8096:8096"106 networks: 107 - arr_net108109volumes: 110 prowlarr_config: 111 sonarr_config: 112 radarr_config: 113 lidarr_config: 114 readarr_config: 115 qbit_config: 116 jellyfin_config: 117 jellyfin_cache: 118119networks: 120 arr_net: .env Template
.env
1# *arr Media Stack2# Update /media paths to your media directories34# Prowlarr at http://localhost:96965# Sonarr at http://localhost:89896# Radarr at http://localhost:78787# Lidarr at http://localhost:86868# Readarr at http://localhost:87879# qBittorrent at http://localhost:808110# Jellyfin at http://localhost:8096Usage Notes
- 1Configure Prowlarr first as indexer manager
- 2Connect *arr apps to Prowlarr
- 3qBittorrent for downloads
- 4Jellyfin for streaming
- 5Set correct media paths
Individual Services(7 services)
Copy individual services to mix and match with your existing compose files.
prowlarr
prowlarr:
image: linuxserver/prowlarr:latest
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- prowlarr_config:/config
ports:
- "9696:9696"
networks:
- arr_net
sonarr
sonarr:
image: linuxserver/sonarr:latest
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- sonarr_config:/config
- /media/tv:/tv
- /media/downloads:/downloads
ports:
- "8989:8989"
networks:
- arr_net
radarr
radarr:
image: linuxserver/radarr:latest
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- radarr_config:/config
- /media/movies:/movies
- /media/downloads:/downloads
ports:
- "7878:7878"
networks:
- arr_net
lidarr
lidarr:
image: linuxserver/lidarr:latest
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- lidarr_config:/config
- /media/music:/music
- /media/downloads:/downloads
ports:
- "8686:8686"
networks:
- arr_net
readarr
readarr:
image: linuxserver/readarr:develop
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- readarr_config:/config
- /media/books:/books
- /media/downloads:/downloads
ports:
- "8787:8787"
networks:
- arr_net
qbittorrent
qbittorrent:
image: linuxserver/qbittorrent:latest
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
- WEBUI_PORT=8081
volumes:
- qbit_config:/config
- /media/downloads:/downloads
ports:
- "8081:8081"
- "6881:6881"
- 6881:6881/udp
networks:
- arr_net
jellyfin
jellyfin:
image: jellyfin/jellyfin:latest
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- jellyfin_config:/config
- jellyfin_cache:/cache
- /media/tv:/media/tv:ro
- /media/movies:/media/movies:ro
- /media/music:/media/music:ro
ports:
- "8096:8096"
networks:
- arr_net
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 prowlarr:5 image: linuxserver/prowlarr:latest6 environment:7 - PUID=10008 - PGID=10009 - TZ=UTC10 volumes:11 - prowlarr_config:/config12 ports:13 - "9696:9696"14 networks:15 - arr_net1617 sonarr:18 image: linuxserver/sonarr:latest19 environment:20 - PUID=100021 - PGID=100022 - TZ=UTC23 volumes:24 - sonarr_config:/config25 - /media/tv:/tv26 - /media/downloads:/downloads27 ports:28 - "8989:8989"29 networks:30 - arr_net3132 radarr:33 image: linuxserver/radarr:latest34 environment:35 - PUID=100036 - PGID=100037 - TZ=UTC38 volumes:39 - radarr_config:/config40 - /media/movies:/movies41 - /media/downloads:/downloads42 ports:43 - "7878:7878"44 networks:45 - arr_net4647 lidarr:48 image: linuxserver/lidarr:latest49 environment:50 - PUID=100051 - PGID=100052 - TZ=UTC53 volumes:54 - lidarr_config:/config55 - /media/music:/music56 - /media/downloads:/downloads57 ports:58 - "8686:8686"59 networks:60 - arr_net6162 readarr:63 image: linuxserver/readarr:develop64 environment:65 - PUID=100066 - PGID=100067 - TZ=UTC68 volumes:69 - readarr_config:/config70 - /media/books:/books71 - /media/downloads:/downloads72 ports:73 - "8787:8787"74 networks:75 - arr_net7677 qbittorrent:78 image: linuxserver/qbittorrent:latest79 environment:80 - PUID=100081 - PGID=100082 - TZ=UTC83 - WEBUI_PORT=808184 volumes:85 - qbit_config:/config86 - /media/downloads:/downloads87 ports:88 - "8081:8081"89 - "6881:6881"90 - "6881:6881/udp"91 networks:92 - arr_net9394 jellyfin:95 image: jellyfin/jellyfin:latest96 environment:97 - PUID=100098 - PGID=100099 - TZ=UTC100 volumes:101 - jellyfin_config:/config102 - jellyfin_cache:/cache103 - /media/tv:/media/tv:ro104 - /media/movies:/media/movies:ro105 - /media/music:/media/music:ro106 ports:107 - "8096:8096"108 networks:109 - arr_net110111volumes:112 prowlarr_config:113 sonarr_config:114 radarr_config:115 lidarr_config:116 readarr_config:117 qbit_config:118 jellyfin_config:119 jellyfin_cache:120121networks:122 arr_net:123EOF124125# 2. Create the .env file126cat > .env << 'EOF'127# *arr Media Stack128# Update /media paths to your media directories129130# Prowlarr at http://localhost:9696131# Sonarr at http://localhost:8989132# Radarr at http://localhost:7878133# Lidarr at http://localhost:8686134# Readarr at http://localhost:8787135# qBittorrent at http://localhost:8081136# Jellyfin at http://localhost:8096137EOF138139# 3. Start the services140docker compose up -d141142# 4. View logs143docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/arr-media-stack/run | bashTroubleshooting
- Sonarr shows 'No indexers available' error: Configure indexers in Prowlarr first, then sync applications in Settings > Apps
- Downloads stuck in qBittorrent but not importing: Check that download and media paths match between services, ensure proper file permissions
- Jellyfin transcoding fails or shows codec errors: Verify hardware acceleration settings and ensure GPU drivers are properly passed to container
- Prowlarr indexer tests failing with authentication errors: Verify API keys and credentials, check if indexer requires specific user-agent strings
- Media files not appearing in Jellyfin after import: Trigger library scan manually, verify read permissions on media directories, check file naming conventions
- High CPU usage during peak hours: Implement download scheduling in qBittorrent, limit concurrent downloads, configure transcoding quality limits in Jellyfin
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
sonarrradarrprowlarrjellyfinqbittorrentjackett
Tags
#sonarr#radarr#prowlarr#jellyfin#automation
Category
Media & EntertainmentAd Space
Shortcuts: C CopyF FavoriteD Download