Prowlarr is the indexer manager that sits between your torrent/usenet sources and Radarr, Sonarr, Lidarr, and Readarr — one place to add, test, and manage every indexer instead of configuring them individually in each app.
What it is
| Platform | TrueNAS Scale (Docker custom app) |
| Port | 9696 (web UI) |
| Image | lscr.io/linuxserver/prowlarr:latest |
| Config path | /mnt/apps/prowlarr/config → /config |
| Purpose | Indexer manager for *arr apps and download clients |
| License | GPL-3.0 |
Prowlarr is the central hub of the *arr stack's search layer. Instead of adding torrent trackers and usenet indexers to Radarr, Sonarr, and every other app separately, you add them once in Prowlarr. It then pushes those indexers to every connected app automatically. When a tracker goes down or you add a new one, you change it in one place.
It also handles authentication tokens, rate limiting, and search result aggregation. If you run Jackett today, Prowlarr replaces it with native *arr integration — no proxy layer, no manual API key copying.
The hard part: indexer categories and download client routing
The install is trivial. The hard part is understanding how Prowlarr routes results to your download clients based on indexer categories.
- Prowlarr routing flow
- Wrong setup
The fix: in Prowlarr's download client settings, you must map indexer categories to the correct download client. Torrent categories go to qBittorrent; usenet categories go to SABnzbd or NZBGet. If you skip this, searches return results but nothing actually downloads.
- Category mapping
How to install it
Docker Compose (TrueNAS Scale custom app)
services:
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
ports:
- 9696:9696
volumes:
- /mnt/apps/prowlarr/config:/config
After deploy:
# Find the initial API key:
docker logs prowlarr 2>&1 | grep -i "api key"
# Or check the web UI → Settings → General
# The API key is needed to connect Radarr, Sonarr, etc.
Log in at http://<nas-ip>:9696 — no password by default, just click Sign In.
Connect to Radarr/Sonarr
- Open Prowlarr → Settings → Apps
- Click + → select Radarr
- Enter the Radarr URL (
http://<nas-ip>:7878), paste the API key from Radarr → Settings → General - Click Test → Save
- Repeat for Sonarr, Lidarr, Readarr
- Prowlarr will sync all indexers to the connected apps automatically
Configuration that matters
Indexer setup
| Setting | Recommended value | Why |
|---|---|---|
| Sync profile | Full sync | Pushes indexer changes to all connected apps |
| Category | Match the indexer type (movies, tv, music) | Ensures correct routing to download clients |
| Minimum seeders | 10–20 | Filters out dead torrents |
| Multi-search | Enable | Searches all indexers simultaneously |
Download client routing
In Settings → Download Clients, add each client:
| Client | Type | Host | Port | Categories |
|---|---|---|---|---|
| qBittorrent | Torrent | qbittorrent (container name) or NAS IP |
8080 | Movies, TV, Music |
| SABnzbd | Usenet | sabnzbd (container name) or NAS IP |
8080 | Movies, TV, Music, Books |
Important: Use container names as hosts if all apps are on the same Docker network. Use the NAS IP if they are on separate networks.
Authentication
| Setting | Recommended value | Why |
|---|---|---|
| Authentication | Forms authentication | Prevents anyone on the LAN from accessing Prowlarr |
| Username | admin | Default; change in Settings → General |
| Password | Strong, unique | Set immediately after first login |
What I'd tell anyone building this
-
Prowlarr replaces Jackett. If you run Jackett today, uninstall it after setting up Prowlarr. Jackett is a proxy that adds latency; Prowlarr integrates natively with the *arr stack.
-
The API key is the key to everything. Every *arr app needs Prowlarr's API key to connect. Find it in Settings → General, or in the container logs (
docker logs prowlarr 2>&1 | grep -i api). -
Indexer categories matter. A torrent indexer tagged as "Movies" will only show results when Radarr searches. A usenet indexer tagged as "TV" will only show results when Sonarr searches. If searches return nothing, check your indexer categories.
-
Don't add indexers to Radarr/Sonarr directly. Add them in Prowlarr and let it sync. If you add an indexer in both places, you get duplicates and authentication conflicts.
-
Prowlarr needs write access to the same config volume across restarts. Mount
/mnt/apps/prowlarr/configto/config. If the container uses an ephemeral layer, all your indexer settings are lost on restart.
Get it
Links:
Quick install (Docker Compose):
services:
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
ports:
- 9696:9696
volumes:
- /mnt/apps/prowlarr/config:/config
After deploy:
# API key (needed to connect Radarr, Sonarr, etc.):
docker logs prowlarr 2>&1 | grep -i "api key"
Log in at http://<nas-ip>:9696, go to Settings → Apps, and connect your *arr apps.