Sonarr is the TV series download manager — it monitors RSS feeds for new episodes, grabs the best quality from your indexers, and organizes your show library with the folder structure Plex expects.
What it is
| Platform | TrueNAS Scale (Docker custom app) |
| Port | 8989 (web UI) |
| Image | lscr.io/linuxserver/sonarr:latest |
| Config path | /mnt/apps/sonarr/config → /config |
| Media path | /mnt/media/tv → /tv |
| Downloads path | /mnt/downloads → /downloads |
| License | GPL-3.0 |
Sonarr is the TV equivalent of Radarr (movies). It monitors RSS feeds for new episodes of every show in your library, automatically downloads the best quality match, renames and moves files into your media library, and triggers Plex library scans.
When integrated with Prowlarr, Sonarr searches every indexer you have configured. When integrated with qBittorrent or SABnzbd, it sends downloads to the right client. The key difference from Radarr: Sonarr tracks episodes across entire series, handles season packs, and manages ongoing shows that air weekly.
The hard part: season packs and episode monitoring
The install is straightforward. The hard part is configuring episode monitoring so Sonarr grabs full season packs when available instead of individual episodes.
- Season pack strategy
- Show
- Breaking Bad
- Season
- 5 episodes airing weekly
- Option 1
- Individual episodes
- Option 2
- Season pack
The default configuration downloads individual episodes. For most users, season packs are preferred because they have more seeders, complete faster, and require less disk I/O. You need to enable this in Settings → Profile → Upgrade.
- Monitor settings
- Future
- Only episodes airing after today
- Missing
- Episodes that have aired but are not in your library
- Existing
- Episodes already on disk
- First
- First episode of each monitored season
- Last
- Last episode of each monitored season
- None
- No automatic monitoring (manual only)
- Recommended for ongoing series
- Future + Missing
- Recommended for completed series
- Missing
How to install it
Docker Compose (TrueNAS Scale custom app)
services:
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
ports:
- 8989:8989
volumes:
- /mnt/apps/sonarr/config:/config
- /mnt/media:/media
- /mnt/downloads:/downloads
After deploy:
# Open the web UI at http://<nas-ip>:8989
# No initial password required
Initial configuration
- Settings → Media Management → Root Folders
- Add
/tvas the root folder -
This is where Sonarr stores organized TV files
-
Settings → Download Clients → Add
- Type: qBittorrent
- Host:
qbittorrent(container name) or NAS IP - Port: 8080
- Category:
sonarr -
Click Test → Save
-
Settings → Profiles → Quality
- Set your quality profile (e.g., 1080p web-dl, 4K remux)
-
Enable "Upgrades Allowed" to grab better quality when available
-
Add your first show
- Click + Add Series → search for a show
- Set monitoring: "Future + Missing" for ongoing shows
- Set quality profile: "HD-1080p" or your preferred profile
- Click Add
Configuration that matters
Root folders
| Root folder | Purpose |
|---|---|
/tv |
Final location for organized TV files |
/downloads |
Where the download client writes completed downloads |
Quality profiles
| Profile | Use case |
|---|---|
| HD-1080p | Most home servers — web-dl or bluray |
| HD-4K | Large storage, 4K displays |
| Remux-1080p | Best quality 1080p |
| Anime | Specialized profile for anime releases with correct categories |
Naming convention
| Setting | Value |
|---|---|
| Standard TV format | {Series Title} - S{season:00}E{episode:00} - {Episode Title} {quality} |
| Season folder | {Series Title}/Season {season:00}/ |
| Example | /tv/Breaking Bad/Season 01/Breaking Bad - S01E01 - Pilot [bluray-1080p].mkv |
This naming convention is what Plex uses to match episodes to metadata. Get it wrong and episodes show as "Unknown."
Episode monitoring
| Setting | Recommended value | Why |
|---|---|---|
| Monitor | Future + Missing | Grabs new episodes as they air, fills gaps |
| Season folder | Yes | Keeps seasons organized in separate folders |
| Use scene numbering | Off (unless anime) | Standard numbering works for most shows |
| Upgrade to | Bluray-1080p | Grabs web-dl first, upgrades to bluray when available |
What I'd tell anyone building this
-
The download path must be on the same dataset as the media path. Same rule as Radarr. If
/mnt/downloadsand/mnt/tvare on different pools, every file move is a full copy. Put them on the same dataset. -
Don't add indexers manually if you use Prowlarr. Prowlarr syncs indexers to Sonarr automatically. Manual indexer setup causes duplicate results and authentication conflicts.
-
Season packs are almost always better. Individual episodes mean more downloads, more disk I/O, and worse seeders. Enable season pack monitoring in your quality profile settings.
-
The naming convention determines whether Plex matches metadata. If episodes show as "Unknown" in Plex, your Sonarr naming convention is wrong. Check Settings → Media Management → Format.
-
Sonarr does not monitor every show by default. When you add a show, you choose what to monitor. "Future + Missing" is the most common setting — it grabs new episodes and fills gaps, but does not re-download everything.
Get it
Links:
Quick install (Docker Compose):
services:
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
ports:
- 8989:8989
volumes:
- /mnt/apps/sonarr/config:/config
- /mnt/media:/media
- /mnt/downloads:/downloads
Log in at http://<nas-ip>:8989, add your root folder, connect your download client, and start adding shows.