How to install CouchPotato and SickRage on Raspberry Pi


Instructions for installation of CouchPotato and Sickrage for Raspberry Pi

** UPDATE - at the end of instructions are the scripts that automatically installs couchpotato, sickrage, unrar, zip, rpimonitor, syncthing and headphones* *
** Fixed old Sickrage link to new: (jan2016)* *
** Added new installations scripts for syncthing and headphones (jan2016)* *
** important note! Use completed folder for torrents on external disk, otherwise there will be problems with permissions. (July2016)* *


  1. SSH into your working instance of OSMC on your Raspberry Pi or Raspberry Pi 2.

For example: ssh
User: osmc
Pass: osmc
2. Create a user, mod his groups, and make empty home folder for ~/.couchpotato configs

    sudo useradd couchpotato
    sudo usermod -a -G osmc couchpotato
    sudo mkdir /home/couchpotato
    sudo chown -R couchpotato:couchpotato /home/couchpotato

If you get error: sudo: git: command not found
First run command:

sudo apt-get update && sudo apt-get install git
3. Clone (download) CouchPotato and assign right folder ownership

    sudo git clone /opt/CouchPotatoServer
    sudo chown -R couchpotato:couchpotato /opt/CouchPotatoServer

4. Create the correctly configured systemd unit for CouchPotato. Edit its [Service] section ExecStart path.

   cd /opt/CouchPotatoServer
   sudo cp ./init/couchpotato.fedora.service ./init/couchpotato.service
   sudo nano ./init/couchpotato.service

Find and change line ExecStart=/var/lib/CouchPotatoServer/ --daemon
New line should look like this ExecStart=/opt/CouchPotatoServer/ --daemon
Replace var/lib with opt

Before saving it should look something like that (works autorestart) :

    Description=CouchPotato application instance

    ExecStart=/opt/CouchPotatoServer/ --daemon


5. Install a systemd unit of CouchPotato

sudo cp ./init/couchpotato.service /etc/systemd/system/couchpotato.service
6. Launch the daemon at startup

sudo systemctl enable couchpotato.service
7. Launch the daemon.
Enjoy results on or http://osmc:5050 (or whatever your Raspberry Pi IP address or name is)

sudo systemctl start couchpotato.service

Use different completed folder for Movies and NOT the same for TV Shows.
/HD/Downloads/Movies - Movies (CouchPotato)
/HD/Downloads/Completed - TV Shows (SickRage)


  1. Create a user, mod his groups, and make empty home folder for ~/.sickrage configs

     sudo useradd sickrage
     sudo usermod -a -G osmc sickrage
     cd /opt/
     sudo git clone sickrage
     sudo cp sickrage/runscripts/init.systemd /etc/systemd/system/sickrage.service
     sudo chown -R sickrage:sickrage /opt/sickrage

If you don’t have enough permission use command:
sudo chmod +x /opt/sickrage
2. Edit service file:
sudo nano /etc/systemd/system/sickrage.service
3. Remove “/usr/bin/python2.7”:

Before change:
ExecStart=/usr/bin/python2.7 /opt/sickrage/ -q --daemon --nolaunch --datadir=/opt/sickrage

After Change:
ExecStart=/opt/sickrage/ -q --daemon --nolaunch --datadir=/opt/sickrage
4. Launch the daemon at startup

sudo systemctl enable sickrage.service
5. Launch the daemon, at first start sickrage create settings file config.ini

sudo systemctl start sickrage.service
6. Stop sickrage to edit config.ini
sudo service sickrage stop
7. Add username and password into config.ini:
sudo nano /opt/sickrage/config.ini

search for:
web_username = ""
web_password = ""

and add your yousername (example):
web_username = "osmc"
web_password = "osmc"

If you don’t do that, your Pi may freeze when you try login into sickrage. Beacuse there is no username and password.
8. Start the daemon to accept new username and password.

sudo service sickrage start

If you get some error after this, you have two options:

  1. Maybe you didn’t edit file sickrage.service
  2. Or applications doesn’t have enought permissions to folder.
    (If sickare doesn’t start, you probably didn’t delete path “/usr/bin/python2.7” from /etc/systemd/system/sickrage.service)

Now try to open http://192.168.x.xx:8081 or http://osmc:8081

Solution for “A stop job is running for SickRage daemon (1m 30s)”, when you reboot or shutdown Raspberry Pi

Connect with ssh, and try following:
sudo nano /etc/systemd/system/sickrage.service

Under ExecStart add following:

Ctr+x, Y, enter.

It should look like this:

Description=SickRage Daemon

ExecStart=/opt/sickrage/ -q --daemon --nolaunch --datadir=/opt/sickrage


Or just use this simple command:
sudo sed -i '55i TimeoutStopSec=5s' /etc/sickrage/sickrage.service


Transmission script for autoremoving completed torrents:

  1. Stop Transmission:
    sudo service transmission stop

  2. Go to transmission location and create new file:

    cd .config
    cd transmission-daemon
    sudo nano

  3. Copy and paste text below, change “yourusername” and “yourpassword” to
    your user and password for transmission. After you paste it and edit,
    press “ctrl+x”, “y” and “enter” (be careful how is text copied, it must
    be same as here, otherwise will not work correctly):


    the folder to move completed downloads to port, username,


    SERVER=“9091 --auth yourusername:yourpassword”

    use transmission-remote to get torrent list from

    transmission-remote list use sed to delete first / last line

    of output, and remove leading spaces use cut to get first

    field from each line

    TORRENTLIST=transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=1
    transmission-remote $SERVER --list

    for each torrent in the list

    echo Processing : $TORRENTID

    check if torrent download is completed

    DL_COMPLETED=transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"

    check torrents current state is

    STATE_STOPPED=transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"

    if the torrent is “Stopped”, “Finished”, or “Idle” after

    downloading 100%"

    if [ “$DL_COMPLETED” ] && [ “$STATE_STOPPED” ]; then

    move the files and remove the torrent from Transmission

    echo "Torrent #$TORRENTID is completed"
    echo "Removing torrent from list"
    transmission-remote $SERVER --torrent $TORRENTID --remove
    echo "Torrent #$TORRENTID is not completed. Ignoring."

  4. Edit settings.json:
    sudo nano settings.json

  5. Search for:
    "script-torrrent-done-enabled": false,

Now change “false” to “true”

"script-torrrent-done-enabled": true,
6. Set path to script in settings.json. Search for:


Add path:

Now looks something like this:
"script-torrent-done-filename": "/home/omsc/.config/transmission-daemon/",
7. Run transmission service:
sudo service transmission start

Enable usb hard drive over samba

  1. edit samba configuration file:
    sudo nano /etc/samba/smb.conf
  2. add text below comment = OSMC Home Directory

browsable = yes
read only = no
valid users = osmc
path = /media/
comment = USB media

  1. now should look something like this:

browsable = yes
read only = no
valid users = osmc
path = /home/osmc
comment = OSMC Home Directory

browsable = yes
read only = no
valid users = osmc
path = /media/
comment = USB media

4. restart samba service
sudo service samba restart

Script for update couchpotato

  1. create file
    sudo nano

  2. copy text into file


    CuchPotato Auto Update Script from htpcBeginner

    sudo service couchpotato stop
    sleep 10
    #foldee where is installed couchpotato
    sudo mv /opt/CouchPotatoServer /opt/CouchPotatoServer.old
    cd /opt/
    sudo git clone /opt/CouchPotatoServer
    sudo service couchpotato start

  3. run script
    sudo sh

  4. Script moves /opt/CouchPotatoServer to /opt/CouchPotatoServer.old. If you wish to delete old version, you can use command below or change below “old line in script” to “command”

command or new line in script:
sudo rm -R /opt/CouchPotatoServer

old line in script :
sudo mv /opt/CouchPotatoServer /opt/CouchPotatoServer.old

info: Setting are saved in /home/couchpotato/.couchpotato

Fix for removing movies from couchpotato/kodi
Fix for issues for removing movies with couchpotato or kodi, solution was posted by member Martin.

Run only this command in ssh:

sudo chfn -o umask=002 couchpotato

Script with easy installation

Download and unzip file

Copy file to osmc home folder and run command:
sudo sh - installs sickrage, couchpotato, zip, unrar (username and password for sickrage is osmc) - same as, only with comments (recommended if something goes wrong) - update couchpotato, rename old versions to CouchPotatoServer.old - delete old version, installs new CouchPotatoServer (settings and database are saved at /home/couchpotato/) - script for removing completed torrents in transmission - unistalls zip, unrar, couchpotato, sickrage (make backup of database before doing this, location for couchpotato is /home/couchpotato) - syncthing for snyc files between devices (include 2 scripts for crontab for sorting photos and videos) - application for downloading music

Is OSMC just a customised debian distro with a specialised kodi install?
CouchPotato Autostart
Transmission permission denied error
Vero 2 stuck at "please stand by." after update
Transmission - remove torrent when complete
[HowTo] Torrentbox - NAS
Cron not working after reinstall
Transmission and Sickrage doesn't run at machine startup

When i try to sudo git clone, i got this:
osmc@osmc:~$ sudo git clone /opt/CouchPotatoServer
sudo: git: command not found

osmc@osmc:~$ sudo git clone sickrage
sudo: git: command not found

Where`s the problem?

sudo apt-get update && sudo apt-get install git


Thank you for help! It works now.


Now im stuck at:

sudo cp runscripts/init.systemd /etc/systemd/system/sickrage.service

osmc@osmc:/opt$ sudo cp runscripts/init.systemd /etc/systemd/system/sickrage.service
cp: cannot stat ‘runscripts/init.systemd’: No such file or directory

Do i need python (sudo apt-get install python-openssl, sudo apt-get install python-yenc) or anything else?


I’m new on Rpi, on OSMC and on every this stuff…
I followed this tuto step by step but I get an error and it don’t works…

For the couchpotato installation :
Just after “nano .init/couchpotato.service” i change everything to have the same text, I save, and when I want to install systemd unit I have the following error :

osmc@osmc:/opt/CouchPotatoServer$ sudo systemctl start couchpotato.service
Warning: Unit file of couchpotato.service changed on disk, ‘systemctl daemon-reload’ recommended.

I’m completely lost…
Can you help me ?
Thanks a lot !


you must do

cd sickrage



First copy file: sudo cp ./init/couchpotato.service /etc/systemd/system/couchpotato.service
reload daemon: systemctl daemon-reload
and: systemctl enable couchpotato.service

After those steps try to run again command: sudo systemctl start couchpotato.service

Does it work?


You can use command cd sickrage and after that
sudo cp runscripts/init.systemd /etc/systemd/system/sickrage.service, like Aitor_Mendez says.


this command:
sudo cp sickrage/runscripts/init.systemd /etc/systemd/system/sickrage.service


I have done it like you said, and it still doesn`t work…
When i try to login at http://osmc:8081, RPI2 starts freezing and RAM goes to 98% and then stops :confused:

Log file:


Yes it works !
Except we have to add a sudo befor systemctl daemon-reload and a sudo before systemctl enable couchpotato.service

Thanks a lot !

(PS : I launch couchpotato. I’ll try to configure it and then restart RPi to be sure the autostart works…)


I would recommend to stop sickrage with: sudo service sickrage stop , disable startup script: sudo systemctl disable sickrage.service, (not sure if you could use: sudo systemctl remove sickrage.service) then remove startup script: sudo rm /etc/systemd/system/couchpotato.service
and sudo rm -R /opt/sickrage. Now try again with the begining of istallation proces for sickrage. I hope that this will help you.


Yes it works even after a restart ! Thanks you !

But i have a problem with transmission… I know i’m not on the good subject but i don’t know the good word to search my issue (English is not my langage…).

Perhaps someone can help me or send me a link :wink:

  • I downloaded transmission directly from the OSMC AppStore. I have access to transmission from web : ip_raspberry:9091
  • I configured CP to connect to transmission, and when I click to “test transmission” i read “connection successfull”

When I download a movie (directly from CP in a first time), the movie is snatched, but transmission don’t add it to the queue (I verified : i choose “show : all”).

**EDIT : ** When I add a torrent manually it works…

Port is open, directory are configured, I have source…

I d’ont understand my mistake…

Thanks for your help !


Excellent. I’m happy to hear that you successfully fix your problem :smiley: maybe you should try with address http://localhost:9091 . That means if your pi2 doesnt have reserved ip on router (dhcp), it should always work, no matter what ip address is. I hope you dont have selected black hole, that means that torrent files are saved in some folder and transmission is watching that folder for new torrents.


Did not help… Same problem, ram`s goes to 96% and RPi freezes…
Here is print screen of every step i made


I don’t see sudo nano for file sickrage.service. Maybe thats the problem if you didn’t edit file and correct paths and run commands.


I did change ExecStart to path /opt/sickrage


I really don’t know what to say, try to update with commands and reboot pi:
sudo apt-get update
sudo apt.get upgrade

Is that fresh installation or restore of osmc?


Fresh install 10 times i 2 days :smiley: (every time when it fails, i did a fresh install) i did apt-get update/upgrade/dist-upgrade, everything.


Yes it works… I don’t know why… because i tried the both before to post an issue :smile:

Anyway, my last job is to add french provider in customs_plugin and to fix my renaming issue…

Thanks for this very great tuto step by step !!!