How to set up Prowlarr to grab your content

Configuring Prowlarr for Sonarr & Radarr

Containers Aug 29, 2021

The chances are a lot of us bought our NAS devices to, at least in part, run a media server on them. We all have our (legal) methods for obtaining our content, and a lot of us use Radarr, Sonarr and the other 'arr' apps to automate our collections. If you've gone through this, you'll know that nzb and torrent indexers (depending on which you use) need to be configured in each of the *arr apps. Well, this is where Prowlarr comes in.

Prowlarr has been developed to be a single point indexer manager. Set up the indexers in Prowlarr, and you can then connect your other *arrs to it, which will then automatically import the indexer settings directly into them. I'll go through it below.

💡
note that while I focus on Radarr and Sonarr, the same process is true for Lidarr and Readarr

Preparing your system

Our file system of media folders needs to be created first so that we know what we're pointing our container volumes to. (If you already have sonarr and radarr setup, or at least have a working directory for downloads and movies/tv, skip this step and head to the next one, Creating the Docker Network.)

I follow the Trash Guide for directory locations, which allows for hardlinks/atomic file movement (less work for your disk drives). Basically this means having all your media folders, including your download folder, in one Shared folder. You will likely want something that looks like this:

volume1	
 │  
 └── media
	   ├── torrents
	   │   ├── movies
	   │   ├── music
	   │   └── tv
	   ├── usenet
	   │   ├── movies
	   │   ├── music
	   │   └── tv
	   └── libraries
     	   ├── movies
     	   ├── music
     	   └── tv
we will give Sonarr and Radarr full access to the whole media folder, and our download client access only to the relevant torrents or usenet subfolder

So if you don't have this folder structure already:

  • Create your root 'media' directory
  • Create your 'torrents' or 'usenet' directories (depending on what you use) and their sub-directories inside your 'media' directory
  • Create your 'libraries' directory and associated sub-directories

Creating the Docker Network

In our docker-compose file we are going to specify a network for the containers called arr, so let's go ahead and create that network:

  • SSH into your machine
  • type in the following:
docker network create arr
this will create a bridge network at the next available subnet, and give it the name 'arr'
rather than allow docker to auto-assign a subnet, if you prefer you can specify your own custom subnet. You can find out more in this article

Creating the Containers

We're going to use docker-compose for this.

  • In SSH, navigate to your docker or compose directory and create your container folders using the following command:
mkdir {prowlarr,sonarr,radarr}
specifying directories or files in { } brackets is a way of applying the command to multiple directories at once
  • Next. create your docker-compose.yml and .env files:
touch {docker-compose.yml,.env}
  • vim or nano into your docker-compose.yml file and copy paste the below:
networks:
  default:
    name: arr
  	external: true

services:
  prowlarr: #indexer manager for Sonarr & Radarr
    image: ghcr.io/linuxserver/prowlarr:develop
    container_name: prowlarr
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - TZ=$TZ
    volumes:
      - ./prowlarr:/config
    ports:
      - 9696:9696
    restart: unless-stopped

  radarr: #movie search agent
    image: ghcr.io/linuxserver/radarr
    container_name: radarr
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - TZ=$TZ
      - UMASK=022
    volumes:
      - ./radarr:/config
      - $MEDIADIR:/media
    ports:
      - 7878:7878
    restart: unless-stopped

  sonarr: #TV show search agent
    image: ghcr.io/linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - TZ=$TZ
      - UMASK=022
    volumes:
      - ./sonarr:/config
      - $MEDIADIR:/media
    ports:
      - 8989:8989  
    restart: unless-stopped
a single stack, including network association, for our *arrs
  • vim or nano into your .env file, and copy paste the below, adding the variables to suit your system:
PUID=1000 #change to your user's PUID
PGID=100 #change to your user's PGID
TZ=Europe/Paris #change to your timezone location
MEDIADIR=/path/to/your/media/directory
  • Still in SSH and in the directory you put your docker-compose.yml, type docker-compose up -d followed by enter key to run it. After it's finished doing what it does, and provided you set up the folder configuration correctly and the ports you specified were previously unused, you should now have your three containers accessible at the relevant http://hostIP:[port] in your browser

Configuring Prowlarr

Pre-configuring Sonarr and Radarr

We'll first get some information from Sonarr and Radarr which will be needed to properly configure Prowlarr.

  • Access Sonarr by typing http://machineIP:8989 into your browser address bar (change machineIP to your host machine's actual IP)
  • Navigate to 'Settings' > 'General' and copy the API Key
  • Do exactly the same for Radarr (using port 7878), and make sure you remember which is which
💡
I use 'docker-mods' to change the visual theme of my Sonarr and Radarr instances. If you want yours to look the same, paste the following into the 'environment' block in docker-compose.yml: 
services:
	sonarr:
    	environment:
        	- DOCKER_MODS=gilbn/theme.park:sonarr 
            - TP_DOMAIN=gilbn.github.io 
            - TP_THEME=aquamarine
for sonarr, change to theme.park:radarr

Setting up Prowlarr

Now we access Prowlarr in the same way as Sonarr/Radarr by typing http://machineIP:9696 into your browser address bar.

The first screen you see should look something like this:

the initial Prowlarr screen

For this next bit I'm going to assume you have access to certain indexers already - a full list of those compatible with Prowlarr can be found here, and if you don't already have access then you'll need to purchase/configure them before you start this next step:

Setting up an indexer

  • Click the Add New Indexer button
  • The list of available indexers will pop up, and you can refine your search using the bar at the top of the popup:
a list of refined nzb indexers
  • When you've selected your indexer, another popup will be displayed:
  • Change the name if you wish, make sure the box next to Enable is checked, and input your indexer API key
💡
if you don't know your indexer's API key, log in to your indexer and search for instructions on finding it. It will normally be somewhere in your Profile or Security or Connections pages
  • If you want, clicking the 'settings' gear wheel will show advanced options. These aren't necessary for our purposes right now
  • Click the 'Test' button. If it returns a green symbol then you've successfully connected to your indexer. Hit 'Save'
  • Repeat for as many indexers as you have

Connecting Prowlarr to your other arrs

  • In the left hand navigation pane, click 'Settings' > 'Apps' and the big + button under 'Applications'
  • In the popup, select 'Sonarr', and in the next popup you'll see the following:
  • Change the name if you want, make sure the server ports are correct, and paste in the Sonarr ApiKey we got earlier on. Click 'Test', and if you get the green tick, hit 'Save'
  • Repeat the Application steps to add Radarr too
💡
if you do not get a successful test, attempt using your NAS machine's IP in place of localhost
  • Now go back to either your Sonarr or Radarr screens, and navigate to 'Settings' > 'Indexers'. You should see the name of the indexer(s) you configured in Prowlarr populated. They are identifiable by the (Prowlarr) tag after the indexer name:

Congratulations! You've now configured Prowlarr with Radarr and Sonarr, and you know the process for doing the same with the other *arrs you may have.

As this isn't a full Sonarr/Radarr setup tutorial, there are other settings you still need to do before they will operate properly, such as configuring your Download Client (whatever it may be) and other optional settings such as profiles and quality. This article won't go into that, but as a word of caution:

It's possible to set your Download Client inside Prowlarr and use it exclusively as your search agent for all your *arrs. At some point it may be possible to add a download client to Prowlarr which then gets passed to the applications in the same way as the indexers do, but it's not a current feature. As of now it seems that search and download within Prowlarr isn't particularly well defined, so I would continue to do that within your individual Sonarr/Radarr etc. apps.


Your automated Media Server - a docker guide
This is your step-by-step guide to setting up a fully automated and dedicated media server using docker-compose with Sonarr, Radarr and Lidarr
Portainer - Easy Container Management for Docker
A step-by-step docker walkthrough to installing and configuring Portainer, your one-stop container-management resource

PTS

With very limited knowledge, PTS fell down the selfhosted rabbit hole after buying his first NAS in October 2020. You can find him on the Synology discord server (click the icon below)

Have some feedback or something to add? Comments are welcome!

Please note comments should be respectful, and may be moderated