Why Indexer Management Deserves Its Own Tool
If you run a self-hosted media stack – something like Sonarr, Radarr, or Lidarr – you already know the friction that comes with managing indexers across multiple apps. Each one needs its own API key, its own configuration, its own maintenance when a tracker goes down or changes its URL. Prowlarr solves that by sitting between your indexers and your download clients as a single point of control. Configure an indexer once in Prowlarr, and it automatically syncs to every connected app in your stack.
Prowlarr is an open-source indexer manager built by the same team behind the *arr suite. It supports both Usenet indexers and torrent trackers, and it integrates directly with Sonarr, Radarr, Lidarr, and Readarr through their respective APIs. This guide walks through a complete installation and configuration on a Linux-based self-hosted server, from Docker setup through first indexer sync.

Installing Prowlarr with Docker Compose
Docker is the cleanest way to run Prowlarr on most home servers. It keeps dependencies isolated, makes updates trivial, and fits naturally into an existing *arr stack. The official Linuxserver.io image is the most widely maintained option, with regular updates and solid documentation. Before starting, make sure Docker and Docker Compose are installed and that you have a directory ready for Prowlarr’s config files – something like /opt/prowlarr/config works well.
Create a docker-compose.yml file in your Prowlarr directory and add the following service definition:
- image: lscr.io/linuxserver/prowlarr:latest
- container_name: prowlarr
- environment: PUID=1000, PGID=1000, TZ=America/New_York
- volumes: ./config:/config
- ports: 9696:9696
- restart: unless-stopped
Set PUID and PGID to match the user that owns your config directory – run id your_username to get those values. The timezone variable affects how Prowlarr logs and schedules tasks, so set it accurately. Once the file is saved, run docker compose up -d to pull the image and start the container. Prowlarr will be available at http://your-server-ip:9696 within a few seconds. On first launch it walks you through a short setup wizard covering authentication and update preferences.
If you prefer a bare-metal install without Docker, Prowlarr publishes Linux binaries directly. Download the latest release from the official GitHub releases page, extract it to /opt/Prowlarr, and create a systemd service file to manage the process. The service file should set the working directory to /opt/Prowlarr and run the Prowlarr binary as a non-root user. Enable and start the service with systemctl enable –now prowlarr, then access the web interface on port 9696 as normal. The Docker route is simpler for most setups, but the native install is useful if you are already running other *arr apps natively and want to keep everything consistent.

Adding and Configuring Indexers
The indexer library in Prowlarr is one of its strongest features. Navigate to Indexers in the top menu and click the plus button to browse the built-in catalog. Prowlarr ships with support for hundreds of public and private torrent trackers as well as major Usenet indexers like NZBgeek and NZBfinder. Public trackers like 1337x or RARBG clones require no account – just add them and they work immediately. Private trackers require your account credentials or a pre-generated passkey, which you will find in your tracker’s profile settings.
Each indexer entry has a test button that fires a live search and reports back latency, result count, and any authentication errors. Run this test immediately after adding any indexer. A failed test usually means a wrong passkey, an outdated base URL, or a tracker that has gone offline. Prowlarr displays the specific error message returned, which makes debugging fast. For Usenet indexers, you will also need a separate Usenet provider (SABnzbd or NZBGet as your client, and a provider like Newshosting or Frugal Usenet for the actual binary access) – Prowlarr manages indexing only, not downloading.
Prowlarr also supports custom indexers through the Cardigann framework, which uses YAML definition files to describe how to search a site that is not in the built-in catalog. Drop a valid Cardigann definition file into the Definitions folder inside your Prowlarr config directory and restart the container. The indexer will appear in the catalog under “Custom.” This is particularly useful for regional trackers or niche private communities that the main catalog has not added yet.
Connecting Prowlarr to Your *arr Apps
Adding your download apps is done under Settings > Apps. Click the plus button, select the app type – Sonarr, Radarr, Lidarr, and so on – then enter its local URL and API key. The API key for each app lives under its own Settings > General page. Prowlarr will validate the connection immediately and, if successful, push all currently configured indexers to that app automatically. You will see them appear in the app’s own indexer list within seconds.
The sync behavior is configurable. Under each app connection in Prowlarr, you can set it to sync all indexers or only those tagged for that specific app. Tagging is worth setting up early if you run multiple apps with different needs – for example, keeping adult content indexers out of Sonarr while allowing them in a separate Radarr instance. Create tags under Settings > Tags, apply them to indexers, then filter by tag on each app connection. This gives you granular control without maintaining separate indexer lists in every app.
Prowlarr also exposes a search API that apps use for interactive searches – when you manually search for a movie or show inside Radarr, for example, the request routes through Prowlarr and queries all connected indexers simultaneously. This is significantly faster than querying each indexer individually, and it means adding a new indexer to Prowlarr immediately makes it available for manual searches across your entire stack without any extra steps per app.

Finishing Touches and Maintenance
A few settings are easy to overlook but worth configuring before you consider the setup done. Under Settings > Indexers, set a default minimum seeder count for torrent indexers to avoid grabbing dead torrents with no peers. Set an RSS sync interval – every 30 to 60 minutes is a reasonable default for most setups, though private trackers sometimes ask members to reduce polling frequency to stay within their API rate limits. Check the tracker’s FAQ or rules page if you are unsure what interval they allow.
Prowlarr logs all indexer activity under System > Logs, and the history view under History shows every search query and its results. These two views are your first stop when something is not being found. A common issue is an indexer returning zero results not because content is unavailable, but because Prowlarr is sending a search query format the indexer does not understand – usually a mismatch between TVDB IDs and IMDB IDs for TV content. Checking the log entry for that specific query will show exactly what was sent and what came back.
Updates in Docker are handled by pulling the latest image and recreating the container – docker compose pull && docker compose up -d handles both steps. Prowlarr will notify you of available updates through the web UI as well. If you run Watchtower for automatic container updates, Prowlarr is safe to include in that rotation since the Linuxserver image maintains strong backward compatibility across point releases. Config migrations run automatically on startup, so there is no manual intervention needed when moving between minor versions – though checking the GitHub release notes before a major version jump is always worth the two minutes it takes.
Frequently Asked Questions
What is Prowlarr used for?
Prowlarr manages torrent and Usenet indexers in one place and syncs them automatically to connected apps like Sonarr, Radarr, and Lidarr.
Does Prowlarr work without Docker?
Yes. Prowlarr provides native Linux binaries that can be run as a systemd service, though Docker is the simpler option for most home server setups.





