How to Install Deluge Seedbox VPS on Ubuntu

0
1403

Though it is one of the newest seedbox Web UIs, Deluge has proven to be a tested favorite among seeders.

Deluge offers one of the most polished and efficient graphical front-ends, and is often called the fastest seedbox VPS UI.

This guide will walk you through the setup of a Deluge/deluge-web VPS based on Ubuntu (recommended for 10.04 or above).
Access your VPS as the root user via SSH, and run the following commands:

Code:
adduser --disabled-password --system --home /var/lib/deluge --gecos "Deluge server" --group deluge
touch /var/log/deluged.log
touch /var/log/deluge-web.log
chown deluge:deluge /var/log/deluge*

Install Deluge:

Code:
apt-get update && apt-get upgrade

apt-get install deluge-common deluged deluge-web

Open the deluge-daemon file:

Code:
vi /etc/default/deluge-daemon

Press “A” to enter edit mode, and copy in the following:

Code:
Configuration for /etc/init.d/deluge-daemon

The init.d script will only run if this variable non-empty.

DELUGED_USER="deluge"

Should we run at startup?

RUN_AT_STARTUP="YES"

Press ESC, then type :wq and press enter to save and exit the file. Now we will create an init script for the Deluge daemon:

Code:
vi /etc/init.d/deluge-daemon

Copy the following into the file:

Code:
    #!/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

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

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \

    --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test > /dev/null

    RETVAL1="$?"

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \

    --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test > /dev/null

    RETVAL2="$?"

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

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \

    --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON1_ARGS

    RETVAL1="$?"

    sleep 2

    start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \

    --chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON2_ARGS

    RETVAL2="$?"

    [ "$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

    :

Give the script proper permissions:

Code:
chmod 755 /etc/init.d/deluge-daemon

update-rc.d deluge-daemon defaults

You can now reboot your VPS; if everything worked, you will be able to access Deluge at http://xx.xx.xx.xx:8112 with the default password “deluge”. Enjoy!

Leave A Reply

Please enter your comment!
Please enter your name here