Sonarr

This article will show you how to install Sonarr. Sonarr is a smart PVR for newsgroup and BitTorrent users.

You'll need to execute some commands via SSH to use this software. There is a separate guide on how to connect to your slot via SSH. Commands are kept as simple as possible and in most cases will simply need to be copied and pasted into the terminal window (then executed by pressing the Enter key).

Installation

Sonarr requires mono to run. Please install mono first, then come back to this guide.

Once mono is installed, install Sonarr by logging in via SSH, then copying and pasting the following:

wget -qO ~/NzbDrone.tar.gz http://update.sonarr.tv/v2/master/mono/NzbDrone.master.tar.gz
tar xf ~/NzbDrone.tar.gz
mkdir -p ~/.config/NzbDrone
rm ~/NzbDrone.tar.gz

Installation notes

By default, you will access the software in your browser by using the URL with a port number. If you consider the URL without a port number to be neater, you will need to configure a proxypass.

Configuring before starting Sonarr

A config.xml file needs to be created and tweaked before we can properly run Sonarr. To create it, use the following command:

nano ~/.config/NzbDrone/config.xml

Then, copy and paste the following:

<Config>
  <Port>8989</Port>
  <UrlBase></UrlBase>
  <BindAddress>*</BindAddress>
  <SslPort>9898</SslPort>
  <EnableSsl>False</EnableSsl>
  <ApiKey></ApiKey>
  <AuthenticationMethod>None</AuthenticationMethod>
  <LogLevel>Info</LogLevel>
  <Branch>master</Branch>
  <LaunchBrowser>False</LaunchBrowser>
</Config>

Once you're done hold ctrl + x to save. Press y to confirm.

You then need to tweak the config slightly. You can do this by copying and pasting the following:

sed -i 's|<Port>8989</Port>|<Port>'$(shuf -i 10001-32001 -n 1)'</Port>|g' ~/.config/NzbDrone/config.xml
sed -i 's|<UrlBase></UrlBase>|<UrlBase>/'"$(whoami)"'/sonarr</UrlBase>|g' ~/.config/NzbDrone/config.xml

Starting, stopping and restarting

This section covers the Sonarr process - starting it, stopping it and restarting it. It also covers checking if the process is running, in case that becomes necessary.

You can start Sonarr and print its URL with the following:

screen -dmS sonarr /bin/bash -c 'export TMPDIR=~/tmp; ~/bin/mono --debug NzbDrone/NzbDrone.exe' && echo "http://$(hostname -f):$(sed -rn 's|(.*)<Port>(.*)</Port>|\2|p' ~/.config/NzbDrone/config.xml)/$(whoami)/sonarr/"

If nothing happens or there is an error it could be that the port that was picked in the configuration step in use. Simply run these commands again to try with a different number (you'll need to edit the proxypass if you have one set up):

sed -i 's|<Port>.*</Port>|<Port>'$(shuf -i 10001-32001 -n 1)'</Port>|g' ~/.config/NzbDrone/config.xml
screen -dmS sonarr /bin/bash -c 'export TMPDIR=~/tmp; ~/bin/mono --debug NzbDrone/NzbDrone.exe' && echo "http://$(hostname -f):$(sed -rn 's|(.*)<Port>(.*)</Port>|\2|p' ~/.config/NzbDrone/config.xml)/$(whoami)/sonarr/"

If you need to check that it's running, you can run the command below. If the process is running a list of relevant process ID numbers will be listed. If nothing is listed, the process is not running.

pgrep -fu "$(whoami)" "SCREEN -dmS sonarr"

The Sonarr process is stopped by executing:

kill "$(pgrep -fu "$(whoami)" "SCREEN -dmS sonarr")"

If Sonarr needs to be restarted, copy and paste these commands:

kill "$(pgrep -fu "$(whoami)" "SCREEN -dmS sonarr")"
screen -dmS sonarr /bin/bash -c 'export TMPDIR=~/tmp; ~/bin/mono --debug NzbDrone/NzbDrone.exe'
echo "http://$(hostname -f):$(sed -rn 's|(.*)<Port>(.*)</Port>|\2|p' ~/.config/NzbDrone/config.xml)/$(whoami)/sonarr/"

Please note that if you want to stop the process for Sonarr, it's best to check it afterwards to make sure it has stopped. If the process has crashed and will not stop when requested, you can kill it with:

kill -9 "$(pgrep -fu "$(whoami)" "SCREEN -dmS sonarr")"

Automatically restarting Sonarr if it is not running

Cron jobs can be used to check if Sonarr is running and start it up if it is not. There is a separate page on configuring cron jobs.

Configuring

This section covers setting a password in Sonarr and connecting the Sonarr to different clients.

Setting a password in Sonarr

Within the Sonarr UI, click the Settings icon (the three gears at the top) and then click the General tab. Under Security, click the dropdown menu next to Authentication and select Forms (Login page). Two fields will appear and you'll be able to set a username and password for the web UI. Whilst it's not mandatory you do this, it is a sensible thing to do. You'll need to restart the program for the changes to take effect.

Configuring clients with Sonarr

In Sonarr's user interface click the Settings icon (the three gears at the top) and then click Download Client. Next, click the + button. You can choose the torrent client you want to configure from the menu.

rTorrent

First of all you need to create the rTorrent RPC and this is done by switching from apache to nginx.

Name
Your chosen name for the settings - you can pick what you like
Enable
Yes
Host
server.feralhosting.com
Port
443
Url Path
/username/rtorrent/rpc
Use SSL
Yes
Username
rutorrent (the word 'rutorrent', not your ruTorrent username)
Password
Your ruTorrent access password

In the above settings, server is replaced by the name of your server (e.g. zeus) and username is your username on the server.

Deluge

First make sure Advanced Settings have been set to Shown, in order for the necessary options to appear.

Name
Your chosen name for the settings - you can pick what you like
Enable
Yes
Host
server.feralhosting.com
Port
443
Url Base
/username/deluge
Password
Your Deluge web UI password
Use SSL
Yes

In the above settings, server is replaced by the name of your server (e.g. zeus) and username is your username on the server.

Transmission

First make sure Advanced Settings have been set to Shown, in order for the necessary options to appear.

Name
Your chosen name for the settings - you can pick what you like
Enable
Yes
Host
server.feralhosting.com
Port
443
Url Base
/username/transmission/
Username
Your Transmission username
Password
Your Transmission password
Use SSL
Yes

In the above settings, server is replaced by the name of your server (e.g. zeus) and username is your username on the server.

Uninstallation

kill -9 "$(pgrep -fu "$(whoami)" "SCREEN -dmS sonarr")"
rm -rf ~/.config/NzbDrone/ && ~/NzbDrone

External links