/CouchPotatoServer

Automatic Movie Downloading via NZBs & Torrents

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

CouchPotato

Join the chat at https://gitter.im/CouchPotato/CouchPotatoServer Build Status Coverage Status

CouchPotato (CP) is an automatic NZB and torrent downloader. You can keep a "movies I want"-list and it will search for NZBs/torrents of these movies every X hours. Once a movie is found, it will send it to SABnzbd or download the torrent to a specified directory.

Running from Source

CouchPotatoServer can be run from source. This will use git as updater, so make sure that is installed.

Windows, see the CP forum for more details:

  • Install Python 2.7
  • Then install PyWin32 2.7 and GIT
  • If you come and ask on the forums 'why directory selection no work?', I will kill a kitten, also this is because you need PyWin32
  • Open up Git Bash (or CMD) and go to the folder you want to install CP. Something like Program Files.
  • Run git clone https://github.com/CouchPotato/CouchPotatoServer.git.
  • You can now start CP via CouchPotatoServer\CouchPotato.py to start
  • Your browser should open up, but if it doesn't go to http://localhost:5050/

OS X:

  • If you're on Leopard (10.5) install Python 2.6+: Python 2.6.5
  • Install GIT
  • Install LXML for better/faster website scraping
  • Open up Terminal
  • Go to your App folder cd /Applications
  • Run git clone https://github.com/CouchPotato/CouchPotatoServer.git
  • Then do python CouchPotatoServer/CouchPotato.py
  • Your browser should open up, but if it doesn't go to http://localhost:5050/

Linux:

  • (Ubuntu / Debian) Install GIT with apt-get install git-core
  • (Fedora / CentOS) Install GIT with yum install git
  • Install LXML for better/faster website scraping
  • 'cd' to the folder of your choosing.
  • Install PyOpenSSL with pip install --upgrade pyopenssl
  • Run git clone https://github.com/CouchPotato/CouchPotatoServer.git
  • Then do python CouchPotatoServer/CouchPotato.py to start
  • (Ubuntu / Debian with upstart) To run on boot copy the init script sudo cp CouchPotatoServer/init/ubuntu /etc/init.d/couchpotato
  • (Ubuntu / Debian with upstart) Copy the default paths file sudo cp CouchPotatoServer/init/ubuntu.default /etc/default/couchpotato
  • (Ubuntu / Debian with upstart) Change the paths inside the default file sudo nano /etc/default/couchpotato
  • (Ubuntu / Debian with upstart) Make it executable sudo chmod +x /etc/init.d/couchpotato
  • (Ubuntu / Debian with upstart) Add it to defaults sudo update-rc.d couchpotato defaults
  • (Linux with systemd) To run on boot copy the systemd config sudo cp CouchPotatoServer/init/couchpotato.service /etc/systemd/system/couchpotato.service
  • (Linux with systemd) Update the systemd config file with your user and path to CouchPotato.py
  • (Linux with systemd) Enable it at boot with sudo systemctl enable couchpotato
  • Open your browser and go to http://localhost:5050/

Docker:

FreeBSD:

  • Become root with su
  • Update your repo catalog pkg update
  • Install required tools pkg install python py27-sqlite3 fpc-libcurl docbook-xml git-lite
  • For default install location and running as root cd /usr/local
  • If running as root, expects python here ln -s /usr/local/bin/python /usr/bin/python
  • Run git clone https://github.com/CouchPotato/CouchPotatoServer.git
  • Copy the startup script cp CouchPotatoServer/init/freebsd /usr/local/etc/rc.d/couchpotato
  • Make startup script executable chmod 555 /usr/local/etc/rc.d/couchpotato
  • Add startup to boot echo 'couchpotato_enable="YES"' >> /etc/rc.conf
  • Read the options at the top of more /usr/local/etc/rc.d/couchpotato
  • If not default install, specify options with startup flags in ee /etc/rc.conf
  • Finally, service couchpotato start
  • Open your browser and go to: http://server:5050/

Development

Be sure you're running the latest version of Python 2.7.

If you're going to add styling or doing some javascript work you'll need a few tools that build and compress scss -> css and combine the javascript files. Node/NPM, Grunt, Compass

After you've got these tools you can install the packages using npm install. Once this process has finished you can start CP using the command grunt. This will start all the needed tools and watches any files for changes. You can now change css and javascript and it wil reload the page when needed.

By default it will combine files used in the core folder. If you're adding a new .scss or .js file, you might need to add it and then restart the grunt process for it to combine it properly.

Don't forget to enable development inside the CP settings. This disables some functions and also makes sure javascript errors are pushed to console instead of the log.