SickChill

This article will show you how to install SickChill and configure it to be used with different torrent clients. SickChill is an automatic TV libbrary manager.

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).

Table of contents

Installation

Install SickChill by logging in via SSH, then copying and pasting the following:

git clone -b python2.7 https://github.com/SickChill/SickChill.git

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.

SickChill may need an updated version of Unrar if you need that facility in post-processing. Please see this guide to upgrading Unrar.

Configuring before starting SickChill

Once you've got a copy of Pip running in a virtual environment, copy and paste the following to set up various components of SickChill:

~/pip/bin/pip install --upgrade -r ~/SickChill/requirements.txt
~/pip/bin/pip install --upgrade pyopenssl

A config.ini file needs to be created and tweaked slightly before we can properly run SickChill. You can copy and paste the commands below to do this.

~/pip/bin/python ~/SickChill/SickBeard.py -d --pidfile="$HOME/SickChill/SickChill.pid"
pkill -9 -fu "$(whoami)" 'SickChill/SickBeard.py'
rm -rf ~/SickChill/SickChill.pid && sleep 10
mkdir ~/.SickChill.tv.shows
sed -ri 's|web_port = (.*)|web_port = '"$(shuf -i 10001-32001 -n 1)"'|g' ~/SickChill/config.ini
sed -ri 's|web_root = (.*)|web_root = /'"$(whoami)"'/sickchill|g' ~/SickChill/config.ini
sed -ri 's|launch_browser = 1|launch_browser = 0|g' ~/SickChill/config.ini
sed -ri 's#root_dirs = (.*)#root_dirs = '"$HOME"'/.SickChill.tv.shows#g' ~/SickChill/config.ini

Starting, stopping and restarting

This section covers the SickChill 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 SickChill and print its URL with the following:

~/pip/bin/python ~/SickChill/SickBeard.py -d --pidfile="$HOME/SickChill/SickChill.pid" && echo http://$(hostname -f):$(sed -rn 's/(.*)web_port = //p' ~/SickChill/config.ini)/$(whoami)/sickchill

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 -ri 's|web_port = (.*)|web_port = '"$(shuf -i 10001-32001 -n 1)"'|g' ~/SickChill/config.ini
~/pip/bin/python ~/SickChill/SickBeard.py -d --pidfile="$HOME/SickChill/SickChill.pid"

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)" "python $HOME/SickChill/SickBeard.py -d"

The SickChill process is stopped by executing:

pkill -fu "$(whoami)" 'SickChill/SickBeard.py'

If SickChill needs to be restarted, copy and paste this command:

pkill -fu "$(whoami)" 'SickChill/SickBeard.py' && rm -rf ~/SickChill/SickChill.pid && ~/pip/bin/python ~/SickChill/SickBeard.py -d --pidfile="$HOME/SickChill/SickChill.pid"

Please note that if you want to stop the process for SickChill, 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:

pkill -9 -fu "$(whoami)" 'SickChill/SickBeard.py'

Automatically restarting SickChill if it is not running

Cron jobs can be used to check if SickChill 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 SickChill and connecting the SickChill to different clients.

Setting a password in SickChill

Within the SickChill UI, click the Config icon (the two gears at the top) and then click General. Next, click the Interface tab. Near the bottom of the fields 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.

Configuring clients with SickChill

In SickChill's user interface click the Config icon (the two gears at the top) and then click Search Settings. Next, click the Torrent Search tab then check/tick the enable torrent search providers box. 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.

Torrent host:port
https://server.feralhosting.com/user/rtorrent/rpc/ (replace server with your server name and user with your username)
Http Authentication
Basic
Client username
rutorrent (the word 'rutorrent', not your ruTorrent username)
Client password
The same password as you use to access ruTorrent

Deluge (via webUI)

Torrent host:port
https://server.feralhosting.com/user/deluge/
(replace server with your server name and user with your username)
Client password
Your Deluge webUI password
Downloaded files location
Make sure it's set to a location you're happy with (or make sure it's blank to use Deluge's default).

Deluge (via daemon)

There are a couple of commands we need to run via SSH first to obtain the daemon port and password (the password is not the same as the webUI password).

To find the port run this command:

sed -rn 's/(.*)"daemon_port": (.*),/\2/p' ~/.config/deluge/core.conf

To find the password run this command:

sed -rn "s/$(whoami):(.*):(.*)/\1/p" ~/.config/deluge/auth

Armed with the port and password, enter the details as follows:

Torrent host:port
https://server.feralhosting.com:port (replace server with your server name and port with the results of the command above)
Client username
Your Deluge daemon username (unless you've changed it, it'll be your Feral username)
Client password
Your Deluge daemon password
Downloaded files location
Make sure it's set to a location you're happy with (or make sure it's blank to use Deluge's default).

Transmission

Torrent host:port
https://server.feralhosting.com/user (replace server with your server name and user with your username)
Transmission RPC URL
transmission/rpc
Client username
The username you use to access Transmission
Client password
The same password as you use to access Transmission

SABnzbd

SickChill can also search for NZB files. This section covers connecting SickChill to SABnzbd.

SABnzbd server URL
https://server.feralhosting.com:port/sabnzbd/ (replace server with your server name and port with your HTTPS port for SABnzbd)
SABnzbd username
The username you set for the SABnzbd UI
SABnzbd password
The password you set for the SABnzbd UI
SABnzbd API key
Find this in the General section of SABnzbd's settings

Troubleshooting

If you experience issues or crashes using SickChill the first thing to try and do is restart the software using the command listed in the section above, Starting, stopping and restarting.

When trying to install the requirements, I get bash: $HOME/pip/bin/pip: No such file or directory

Make sure you've installed your own version of Pip

When trying to run SickChill, I get Failed to import required libs...

Please make sure you've a) installed a version of Pip to your slot (see above) and b) are calling Python using ~/pip/bin/python instead of just python

When I click Test Connection I get the error Error: Unable to connect to rTorrent'

If rTorrent is running and you've made the switch to nginx this error likely means some of the details you've entered are not correct. Please double-check that your username is rutorrent (as in the actual word, "rutorrent", not the username you use to log in to ruTorrent). If you changed your ruTorrent password after switching to nginx, you'll need to use the old password. If you no longer recall it, please reinstall nginx.

I went to start up SickChill and received an error '...SickChill.pid already exists. Exiting.'

Assuming you're using the default locations please run the following command before trying the start up command again:

rm ~/SickChill/SickChill.pid

When I use pip I get an error IndexError: list index out of range

Please try using the option --no-use-wheel when using pip.

Uninstallation

pkill -9 -fu "$(whoami)" 'SickChill/SickBeard.py'
rm -rf ~/SickChill ~/.SickChill.tv.shows