How to Install CouchPotato on Ubuntu 16.04/17.04 with Deluge

This tutorial will show you how to install CouchPotato on Ubuntu 16.04/17.04. CouchPotato is a free and open-source (GPL3) tool to download upcoming movies automatically. It periodically searches for movies on Usenet and torrent sites, and once they are available, it automatically downloads them with your chosen Usenet client or torrent client. We will use the Deluge torrent client as an example. I assume you followed the previous Deluge tutorial.

couchpotato ubuntu

CouchPotato features:

  • An intuitive web interface
  • Allows you to choose movie quality
  • The ability to rename download movies
  • download subtitles
  • A browser extension to easily add movies via
  • Supports many public and private trackers (RARBG, ThePirateBay, SceneTime, TorrentBytes etc.)
  • Supports transmission, qBittorrent, rTorrent, Deluge, uTorrent.
  • Supports many Usenet indexers and Usenet clients (Sabnzbd, NZBGet)

Now let’s see the installation process.

How to Install CouchPotato on Ubuntu 16.04/17.04 Server and Desktop

First, open up a terminal window and install Python and LXML.

sudo apt install python python-lxml

Then install the latest version of pyOpenSSL.

sudo apt install python-pip

sudo pip install --upgrade pyopenssl

Change directory to /var/www/.

cd /var/www/

Install Git and clone CouchPotato repo on Github.

sudo apt install git-core

sudo git clone

Now CouchPotato is downloaded to the directory /var/www/CouchPotatoServer. To start CouchPotato server, run the following command. The & symbol will make it run in the background, so you can use terminal.

python /var/www/CouchPotatoServer/ &

If you are installing CouchPotato on a local Ubuntu 16.04 computer, then the setup wizard will automatically open in your browser after running the above command. If it’s installed on an Ubuntu 16.04 server, then you can access the setup wizard via the following URL.


In the setup wizard, you can set a username and password to secure the CouchPotato web interface. You also have the option to enable dark theme.

couchpotato ubuntu 16.04

Next, you need to select the download application.

couchpotato ubuntu 16.04 install

If you want to download movies on Usenet, then you need to select an Usenet client like Sabnzbd. And if you like to download movie from torrent sites, then you need to select a torrent client. In this tutorial, I choose the Deluge torrent client.

deluge couchpotato ubuntu

By default, Deluge client daemon listens on port 58846, so enter localhost:58846 in the Host field. Then you need to edit the Deluge auth file.

sudo nano /var/lib/deluge/.config/deluge/auth

The default username is localclient. Number 10 indicates this account is used for administration. We can create a new account for CouchPotato like below. Number 5 indicates this account has read and write access.


couchpotato deluge username

Save and close the file. Then restart deluge daemon.

sudo systemctl restart deluged

Next, enter the new username and password in CouchPotato wizard and specify the downloads directory.

After that, you need to choose your torrent sites or Usenet indexer. Most of these torrent sites are private and require registration, but you can choose public torrent sites like RARBG and ThePirateBay.

couchpotato ubuntu 16.04 server

Once you fill needed details in the setup wizard, click the big orange button at the bottom. Now you can login with your username and password.

couchpotato deluge username does not exist

You can now search and add new movie to your wanted list in CouchPotato web interface. Please note that in order for Deluge to automatically download added movies, you need to go to settings and disable black hole.

couchpotato black hole

If it’s enabled, then you will need to set up a watched folder in Deluge for new .torrent files.

It’s also a good idea to go to settings > Downloaders and test connection to Deluge.

couchpotato deluge connection

If you followed the previous Deluge install tutorial, then make sure that deluge user has read and write permissions on the downloads folder. For example, if the downloads folder is ~/Downloads/. Then you can run the following command to give read and write permission to deluge user.

sudo apt install acl

sudo setfacl -R -m "u:deluge:rwx" ~/Downloads/

Warning: Your online activity can be easily tracked. Be sure to use VPN when downloading torrents. See how to connect to VPN from Linux command line.

Once everything is set up correctly, you will see movies are being downloaded in Deluge.

install couchpotato

To install CouchPotato browser extension, go to settings > Automation and click on the Install extension button.

How to Enable Auto Start

To let CouchPotato automatically start at boot time, we need to copy the systemd service file.

sudo cp /var/www/CouchPotatoServer/init/couchpotato.service /etc/systemd/system/couchpotato.service

Then edit the file.

sudo nano /etc/systemd/system/couchpotato.service

Find the following line:


Change it to:


Also change the value of User and Group from couchpotato to your own username and group like below.


Save and close the file. And enable auto start.

sudo systemctl enable couchpotato.service

That’s it! I hope this tutorial helped you install CouchPotato on Ubuntu 16.04 with Deluge. As always, if you found this post useful, then subscribe to our free newsletter to get new tutorials.

Rate this tutorial
[Total: 10 Average: 4.3]

2 Responses to “How to Install CouchPotato on Ubuntu 16.04/17.04 with Deluge

  • Raul Rios
    1 year ago

    when i try run te service see this message :

    [email protected]:~# Traceback (most recent call last):
    File “/var/www/CouchPotatoServer/”, line 135, in
    File “/var/www/CouchPotatoServer/”, line 89, in run
    runCouchPotato(self.options, base_path, sys.argv[1:], data_dir = self.data_dir, log_dir = self.log_dir, Env = Env)
    File “/var/www/CouchPotatoServer/couchpotato/”, line 353, in runCouchPotato
    server.listen(config[‘port’], config[‘host’])
    File “/var/www/CouchPotatoServer/libs/tornado/”, line 125, in listen
    sockets = bind_sockets(port, address=address)
    File “/var/www/CouchPotatoServer/libs/tornado/”, line 145, in bind_sockets
    File “/usr/lib/python2.7/”, line 228, in meth
    return getattr(self._sock,name)(*args)
    socket.error: [Errno 98] Address already in use
    Exception in thread Thread-4 (most likely raised during interpreter shutdown):Exception in thread Thread-5 (most likely raised during interpreter shutdown):Exception in thread Thread-3 (most likely raised during interpreter shutdown):Exception in thread APScheduler (most likely raised during interpreter shutdown):Exception in thread Thread-6 (most likely raised during interpreter shutdown):
    Traceback (most recent call last):

    Traceback (most recent call last):Traceback (most recent call last): File “/usr/lib/python2.7/”, line 801, in __bootstrap_inner

    File “/usr/lib/python2.7/”, line 801, in __bootstrap_innerTraceback (most recent call last): File “/usr/lib/python2.7/”, line 801, in __bootstrap_inner

    File “/usr/lib/python2.7/”, line 754, in run File “/usr/lib/python2.7/”, line 801, in __bootstrap_inner File “/usr/lib/python2.7/”, line 754, in run File “/usr/lib/python2.7/”, line 754, in run

    File “/var/www/CouchPotatoServer/libs/axl/”, line 210, in _execute File “/usr/lib/python2.7/”, line 754, in run
    File “/var/www/CouchPotatoServer/libs/axl/”, line 210, in _execute File “/var/www/CouchPotatoServer/libs/axl/”, line 210, in _execute

    Traceback (most recent call last):

    File “/usr/lib/python2.7/”, line 174, in get
    File “/usr/lib/python2.7/”, line 801, in __bootstrap_inner File “/var/www/CouchPotatoServer/libs/apscheduler/”, line 579, in _main_loop File “/usr/lib/python2.7/”, line 174, in get
    File “/usr/lib/python2.7/”, line 174, in get

    : ‘NoneType’ object is not callable
    File “/usr/lib/python2.7/”, line 754, in run: ‘NoneType’ object has no attribute ‘debug’
    : ‘NoneType’ object is not callable

    File “/var/www/CouchPotatoServer/libs/axl/”, line 210, in _execute: ‘NoneType’ object is not callable

    File “/usr/lib/python2.7/”, line 174, in get
    : ‘NoneType’ object is not callable

    [2]+ Exit 1 python /var/www/CouchPotatoServer/

  • Something I ran into, might help other users

    In 18.04 LTS the file to add couchpotato’s username and password isn’t /var/lib/deluge/.config/deluge/auth anymore. It’s /home/deluge/.config/deluge/auth. Hope this helps someone!

Leave a Comment

  • Comments with links are moderated by admin before published.
  • Your email address will not be published.
  • Use <pre> ... </pre> HTML tag to quote the output from your terminal/console.
  • Please use the community ( for questions unrelated to this article.
  • I don't have time to answer every question. Making a donation would incentivize me to spend more time answering questions.

The maximum upload file size: 2 MB.
You can upload: image.