Monday, 23 November 2015

Sickrage & Couchpotato

I've split these instructions into their own section just to make it easier to understand. We're going to go through the installation of Sickrage and Couchpotato on Ubuntu 14.04 using command line only to reduce the resources needed on the machine.

Let's get started with the installation of  Sickrage:


sudo apt-get install git-core python python-cheetah
cd ~


sudo git clone https://github.com/SickRage/SickRage.git /opt/sickrage
sudo cp /opt/sickrage/runscripts/init.ubuntu /etc/init.d/sickrage
sudo chmod +x /etc/init.d/sickrage

sudo chown username:username -R /opt/sickrage




Time to edit a config file:

sudo nano /etc/default/sickrage

Now paste this lot in changing user to the name of the user you are installing it to



# COPY THIS FILE TO /etc/default/sickrage
SR_HOME=/opt/sickrage
SR_DATA=/opt/sickrage/
SR_USER=username

Set some permission

sudo chmod +x /etc/default/sickrage

Now time to get it running on boot

sudo update-rc.d sickrage defaults

And you can start it with the following command and then connect to http://machine:8081 to finish off setting it up.

sudo chmod 0777 /var/run/sickrage

sudo service sickrage start


And now it's time for Couchpotato:

sudo git clone https://github.com/RuudBurger/CouchPotatoServer.git /opt/CouchPotato

Set the owner of the file, replacing username with your username

sudo chown -R username:username /opt/CouchPotato

Edit a config file

sudo nano /etc/default/couchpotato

Then paste this lot in replacing username again

CP_HOME=/opt/CouchPotato
CP_USER=username
CP_PIDFILE=/home/username/.couchpotato.pid
CP_DATA=/opt/CouchPotato

Now we set permissions and get it to run on startup

sudo cp /opt/CouchPotato/init/ubuntu /etc/init.d/couchpotato
sudo chmod +x /etc/init.d/couchpotato
cd /etc/init.d/
sudo update-rc.d couchpotato defaults

And finally start it with sudo service couchpotato start

Now connect to it with a browser at http://machinename:5050 to finish the setup.






Thursday, 12 November 2015

SabNZB setup on Ubuntu

To be honest, this is really very easy. we start by opening a terminal onto the machine we are going to install the package onto and type:

sudo apt-get install sabnzbdplus


Now we edit one of the config files:

sudo nano /etc/default/sabnzbdplus


USER=root
# The Host one can be 0.0.0.0 if you only have one IP address
HOST=0.0.0.0
# Change this to another port if 8080 is already in use.
PORT=8082


Then we make it executable:

sudo chmod +x /etc/init.d/sabnzbdplus


Then we restart the service

sudo service sabnzbdplus restart

Once this has finished point your browser to http://ipaddress:8082 and finish setting it up, you will need a usenet provider, I use newsdemon myself.

Deluge Torrent Client on Ubuntu

In my efforts to simplify my instructions, I've decided to rewrite my instructions for the installation of the Deluge client on Ubuntu.

It is quite straightforward and all this tasks are carried out via an ssh connection.

So let's get started with:

sudo apt-get update
sudo apt-get install deluge-console deluged deluge-web

Now we make deluge run on startup, create a file with:

sudo nano /etc/default/deluge-daemon

And then enter this text:


####################
# Configuration for /etc/init.d/deluge-daemon

# The init.d script will only run if this variable non-empty.
DELUGED_USER="username"             # !!!CHANGE THIS!!!!

# Should we run at startup?
RUN_AT_STARTUP="YES"
#####################

Save the file and then it's time to create another one with:

sudo nano /etc/init.d/deluge-daemon

Paste the following text into the file


####################################################

#!/bin/sh
### BEGIN INIT INFO
# Provides:          deluge-daemon
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      $network
# Should-Stop:       $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Daemonized version of deluge and webui.
# Description:       Starts the deluge daemon with the user specified in
#                    /etc/default/deluge-daemon.
### END INIT INFO

# Author: Adolfo R. Brandes 
# Updated by: Jean-Philippe "Orax" Roemer

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Deluge Daemon"
NAME1="deluged"
NAME2="deluge"
DAEMON1=/usr/bin/deluged
DAEMON1_ARGS="-d"             # Consult `man deluged` for more options
DAEMON2=/usr/bin/deluge-web
DAEMON2_ARGS=""               # Consult `man deluge-web` for more options
PIDFILE1=/var/run/$NAME1.pid
PIDFILE2=/var/run/$NAME2.pid
UMASK=022                     # Change this to 0 if running deluged as its own user
PKGNAME=deluge-daemon
SCRIPTNAME=/etc/init.d/$PKGNAME

# Exit if the package is not installed
[ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ]
then
   log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."
   exit 0
fi

if [ -z "$DELUGED_USER" ]
then
    log_warning_msg "Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME."
    exit 0
fi

#
# Function to verify if a pid is alive
#
is_alive()
{
   pid=`cat $1` > /dev/null 2>&1
   kill -0 $pid > /dev/null 2>&1
   return $?
}

#
# Function that starts the daemon/service
#
do_start()
{
   # Return
   #   0 if daemon has been started
   #   1 if daemon was already running
   #   2 if daemon could not be started

   is_alive $PIDFILE1
   RETVAL1="$?"

   if [ $RETVAL1 != 0 ]; then
       rm -f $PIDFILE1
       start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile \
       --exec $DAEMON1 --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON1_ARGS
       RETVAL1="$?"
   else
       is_alive $PIDFILE2
       RETVAL2="$?"
       [ "$RETVAL2" = "0" -a "$RETVAL1" = "0" ] && return 1
   fi

   is_alive $PIDFILE2
   RETVAL2="$?"

   if [ $RETVAL2 != 0 ]; then
        sleep 2
        rm -f $PIDFILE2
        start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile \
        --exec $DAEMON2 --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON2_ARGS
        RETVAL2="$?"
   fi
   [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
   # Return
   #   0 if daemon has been stopped
   #   1 if daemon was already stopped
   #   2 if daemon could not be stopped
   #   other if a failure occurred

   start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2
   RETVAL2="$?"
   start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1
   RETVAL1="$?"
   [ "$RETVAL1" = "2" -o "$RETVAL2" = "2" ] && return 2

   rm -f $PIDFILE1 $PIDFILE2

   [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] && return 0 || return 1
}

case "$1" in
  start)
   [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME1"
   do_start
   case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
  stop)
   [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME1"
   do_stop
   case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
  restart|force-reload)
   log_daemon_msg "Restarting $DESC" "$NAME1"
   do_stop
   case "$?" in
     0|1)
      do_start
      case "$?" in
         0) log_end_msg 0 ;;
         1) log_end_msg 1 ;; # Old process is still running
         *) log_end_msg 1 ;; # Failed to start
      esac
      ;;
     *)
        # Failed to stop
      log_end_msg 1
      ;;
   esac
   ;;
  *)
   echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
   exit 3
   ;;

esac


#########################################

I don't understand it but as long as you can copy and paste you don't need to either.


Now we set the file permissions:


sudo chmod 755 /etc/init.d/deluge-daemon
sudo chmod 0777 -R -v ~/.config


And then we make it run on startup:

sudo update-rc.d deluge-daemon defaults



We can then start it with this command:

sudo invoke-rc.d deluge-daemon start


And stop it with this command:

sudo invoke-rc.d deluge-daemon stop


You should now be able to access it with http://machinename:8112