If you've already got qBittorrent grabbing files and Sonarr or Radarr deciding what to grab, there's a specific annoyance waiting for you: adding a new indexer. You open Sonarr, paste in the tracker URL and API key, test it, save it. Then you do the exact same thing in Radarr. Add a third app — Lidarr, Readarr, whatever — and you're pasting the same credentials a third time. Miss one field in one app and that indexer quietly stops working there while it keeps working everywhere else.
Prowlarr exists to end that. It's an indexer manager that sits in front of Sonarr, Radarr, and the rest of the "arr" family, holding your indexer list in one place and pushing it out to every connected app automatically. Add an indexer once in Prowlarr, and Sonarr and Radarr both pick it up without you touching either of their settings pages.
This guide installs Prowlarr in its own LXC container on Proxmox VE, using the same community-scripts installer behind the Sonarr and Radarr guides on this site. By the end you'll have Prowlarr running, at least one indexer added, and both Sonarr and Radarr syncing from it instead of managing their own separate lists.
What You Will Learn
- What Prowlarr actually does and how it's different from Sonarr or Radarr
- How to install Prowlarr in an LXC container on Proxmox VE with the community-scripts installer
- How to add an indexer and push it out to Sonarr and Radarr automatically
- What the most common connection errors mean and how to fix them
- A handful of settings worth changing before you forget about them
What Is Prowlarr?
Prowlarr is an indexer manager. An indexer, in this context, is a source that Sonarr or Radarr searches when it's looking for a file — could be a private tracker, a public torrent site, or a Usenet indexer. Most of these speak one of two API standards: Torznab for torrent-based indexers, and Newznab for Usenet ones. Every app in the arr family — Sonarr, Radarr, Lidarr, Readarr — already knows how to talk to indexers using those standards, which is exactly what makes Prowlarr possible.
Instead of configuring the same indexer separately in Sonarr, then again in Radarr, you add it once in Prowlarr. Prowlarr then uses each app's own API to push that indexer's connection details out automatically, through something it calls an "Application" link. From that point on, adding, removing, or editing an indexer happens in exactly one place.
It's worth being clear about what Prowlarr doesn't do: it doesn't download anything, and it doesn't manage your media library. That's still Sonarr, Radarr, and your download client's job. Prowlarr only manages the list of places those apps go looking.
Why Would You Use It?
The obvious win is not repeating yourself. If you're running just Sonarr, Prowlarr is arguably overkill — you can live fine with its built-in indexer settings. The moment you add a second app, though, the math changes fast. Three indexers times two apps is six configuration entries to keep in sync, and trackers rotate URLs and API keys more often than you'd like.
There's a second reason people end up here: Prowlarr also tracks indexer health and search activity across every connected app in one dashboard. If a tracker starts timing out or an API key expires, you'll see it flagged in Prowlarr instead of discovering it three weeks later when Sonarr quietly stops finding new episodes.
Homelab users running two or three arr apps get the most value here. If you're only ever going to run Sonarr and nothing else, you can reasonably skip this guide. But if there's any chance you'll add Radarr, Lidarr, or Readarr down the line, setting up Prowlarr now saves you from redoing indexer configuration later.
Prerequisites
- A Proxmox VE host running 8.x or 9.x, with the node able to reach the internet
- Root access to the Proxmox web UI or shell
- At least 4 GB of free storage for the container
- Sonarr and/or Radarr already installed and reachable on your network — this guide assumes at least one of them exists already
- The IP address and API key for each arr app you plan to connect, found under Settings → General → Security in each app
- Comfort pasting one command into the Proxmox web shell
Step-by-Step Tutorial
1. Open the Proxmox Shell
Log into the Proxmox web UI, select your node in the left-hand tree, and open Shell from the toolbar at the top. This puts you in a root shell on the Proxmox host — you haven't created the container yet, this is just where the installer runs from.
2. Run the Prowlarr install script
Paste this into the shell and press Enter:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/prowlarr.sh)"
This downloads and runs an installer from the community-scripts project, the same third-party script collection used for the Sonarr and Radarr guides on this site. It isn't an official Proxmox tool, and it isn't written by the Prowlarr developers either — it's a widely used, actively maintained convenience script that builds the container and installs Prowlarr on top, so you don't have to do either step by hand.
3. Step through the settings, or just accept the defaults
The script opens a menu asking whether you want the default install or the advanced one. The default builds an unprivileged Debian 13 container with 2 CPU cores, 1 GB of RAM, and 4 GB of disk — plenty for Prowlarr, which barely uses any resources since it's only managing indexer lists rather than actually downloading anything.
Pick Advanced if you want to set the hostname, disk size, or network bridge yourself before the container gets created. There's no wrong answer for most homelabs here — the default is fine unless you have a specific reason to change it.
4. Wait for the install and note the IP address
This takes two to three minutes on typical hardware. When it finishes, the script prints the container's IP address and the Prowlarr URL, something like http://192.168.1.55:9696. Port 9696 is Prowlarr's default — different from Sonarr's 8989 and Radarr's 7878, so all three can run at once without a port clash even on the same host.
5. Open Prowlarr and set up authentication
Visit the URL from the last step. Prowlarr asks you to create a username and password on first launch. Set a real one — this container will eventually hold API keys for every other app it's connected to, so it's not a good place to leave the defaults sitting open.
6. Add your first indexer
Go to Indexers → Add Indexer. Prowlarr ships with a searchable list of hundreds of supported indexers — search for the one you use, click it, and fill in whatever it asks for. Public trackers usually need nothing more than clicking save. Private trackers will ask for an API key or passkey, which you'll find in your account settings on the tracker's own site.
Click Test before saving. If the test fails, double-check the API key first — that's the field people mistype most often.
7. Connect Prowlarr to Sonarr
Go to Settings → Apps → the plus icon → Sonarr. You'll need Sonarr's URL, meaning its IP address and port 8989, plus its API key from Sonarr's own Settings → General → Security page. Paste both in, click Test, then Save.
Once this connection is saved, every indexer already added in Prowlarr gets pushed to Sonarr automatically. You don't need to add anything on the Sonarr side — check Settings → Indexers in Sonarr and you should already see them listed there, tagged as managed by Prowlarr.
8. Connect Prowlarr to Radarr
Repeat the same process under Settings → Apps, this time picking Radarr, using Radarr's URL on port 7878 and its own API key from Settings → General → Security. Save it, and your indexers show up in Radarr the same way they did in Sonarr — no manual entry required.
9. Run a sync and confirm everything's connected
Back in Prowlarr, open System → Status, or just check the indexer list inside Sonarr and Radarr directly. If an indexer shows up in both with a green status, the sync worked. Try a manual search from within Sonarr or Radarr for something you know exists — if results come back, the whole chain is working end to end.
Commands Explained
There's really only one command in this guide, so it's worth understanding exactly what it does rather than just trusting it blindly.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/prowlarr.sh)"
curl -fsSL downloads the script from GitHub. The -f flag makes curl fail silently on server errors instead of printing an HTML error page, -s hides the progress meter, -S shows the error message anyway if something fails, and -L follows redirects. The downloaded text gets substituted straight into bash -c "...", which runs it immediately in the current shell. Nothing gets saved to disk first — you're piping a remote script directly into bash, which is standard practice for these installers, but it does mean you're trusting the source. Sticking to the official community-scripts repository, rather than a random fork someone linked in a forum post, is what keeps that trust reasonable.
Common Errors
| Error | What It Means | Fix |
|---|---|---|
| "Unable to connect to Sonarr" in Prowlarr's Apps test | Prowlarr can't reach Sonarr's IP or port, or the API key is wrong | Confirm the Sonarr container is running and reachable, then re-copy the API key from Sonarr's Security settings — a trailing space is a common culprit |
| Indexer test fails with "Unable to connect" | The tracker's site is down, or the container has no outbound internet access | Test the tracker URL from a browser first, then check the container's network settings in Proxmox if the site itself loads fine |
| Indexers appear in Prowlarr but not in Sonarr or Radarr | The Application sync hasn't run yet, or the connection test never actually passed | Go back to Settings → Apps in Prowlarr, click Test on the connection, then Save again — a failed test silently skips the sync |
| "401 Unauthorized" when testing an app connection | The API key pasted into Prowlarr doesn't match what Sonarr or Radarr currently has | API keys reset if you ever reinstall or reset an app — always grab the current one from that app's own Security settings |
Troubleshooting
If Prowlarr's web UI won't load at all, start with the basics. From the Proxmox shell, enter the container with pct enter <VMID>, then check the service with systemctl status prowlarr. A stopped service usually restarts cleanly with systemctl restart prowlarr, and the logs under /var/log/prowlarr inside the container will usually explain why it stopped in the first place.
If an indexer worked yesterday and doesn't today, check its status under Indexers in Prowlarr — a red icon next to one means Prowlarr flagged it as failing, and hovering over it shows the last error. Trackers occasionally require you to re-verify your account or accept updated terms, which shows up here as a login failure even though your credentials haven't actually changed.
Connection problems between Prowlarr and Sonarr or Radarr almost always come down to one of two things: a stale API key, or the container's IP address changing after a reboot. If you're on DHCP, consider setting a static IP or a DHCP reservation for each of these containers. Chasing a changed IP address across three different apps gets old fast.
Best Practices
Set a static IP or DHCP reservation for the Prowlarr container early. It's connected to every other app you run, and a changed IP breaks all of those links at once instead of just one.
Back up Prowlarr's configuration the same way you'd back up Sonarr or Radarr — a scheduled vzdump backup of the LXC container covers it, and it's worth setting up before you've added twenty indexers by hand and would hate to redo it.
Don't connect Prowlarr to indexers you don't actually use. Every added indexer gets searched on every request, and one that's slow or unreliable drags down search results across every connected app, not just the one you originally added it for.
Turn on Prowlarr's indexer health checks and actually look at them when one turns red. It's a far faster way to catch a dead tracker than noticing weeks later that Sonarr silently stopped finding new episodes.
Frequently Asked Questions
Do I need Prowlarr if I'm only running Sonarr?
Not really. Sonarr manages its own indexers just fine on its own. Prowlarr earns its place once you're running a second app and don't want to configure the same indexer twice.
Does Prowlarr download anything itself?
No. It only manages indexer connections and pushes them out to Sonarr, Radarr, and similar apps. The actual downloading still happens through qBittorrent or whatever download client those apps are configured to use.
Can Prowlarr connect to apps running on a different Proxmox node?
Yes, as long as the containers can reach each other over the network. Use the target app's LAN IP address and port when setting up the connection in Prowlarr's Apps settings — nothing requires them to be on the same node.
What happens if I remove an indexer from Prowlarr?
It gets removed from every connected app on the next sync, not just from Prowlarr itself. That's the same one-place-to-manage-it behavior working in reverse.
Is Prowlarr safe to expose to the internet?
Treat it the way you'd treat Sonarr or Radarr — don't expose it directly. If you need remote access, put it behind a reverse proxy with authentication, or use something like Tailscale to reach your homelab without opening ports.
Why is Prowlarr's default port 9696 instead of something more obvious?
No particular reason beyond avoiding a clash with the rest of the arr apps, which already occupy 8989, 7878, and similar numbers. It's arbitrary, but consistent, and it's not something you can change without editing the app's own configuration.
Conclusion
Prowlarr is a small piece of infrastructure that solves an annoying problem rather than a flashy one. Once it's connected to Sonarr and Radarr, adding a new indexer takes thirty seconds instead of the several minutes it took to configure each app separately, and you stop wondering whether you remembered to update all of them.
If you're already running the rest of the arr stack covered elsewhere on this site — qBittorrent for downloads, Sonarr for TV, Radarr for movies — this container is the piece that ties the indexer side of all three together. It's a five-minute install for something you'll stop thinking about almost immediately after it's running, which is exactly what you want from infrastructure like this.