Ubuntu Reference Guide

part of the WillPowered Inc. network
© 2011 William Hall <5/> - This site uses HTML5

Applications\Deluge

Deluge is a more appropriate torrent client than utorrent as it has a seperate daemon so it can create a torrent server. To install it, use the following commands.

$ sudo apt-get install deluge deluge-torrent deluge-web deluge-console deluged

The first thing to do is go to Preferences and the Interface tab. Untick Enable under Classic Mode and restart Deluge. This has seperated the app from the daemon.

You can activate the webui and scheduler from the plugin page from preferences.

When you restart Deluge you will come across the connection manager, open the Options and tick all three options to automatically connect the app to the daemon. Set up the rest of your preferences. Its OK to set the incoming and outgoing ports to be the same.

The webui will be available on port 8112 with the password deluge.

The next step is to make the daemon start automatically by adding two scripts.

$ sudo nano /etc/default/deluge-daemon

Replace the wp with your main username.

# Configuration for /etc/init.d/deluge-daemon # The init.d script will only run if this variable non-empty. DELUGED_USER="wp" # Should we run at startup? RUN_AT_STARTUP="YES" $ sudo nano /etc/init.d/deluge-daemon #!/bin/sh 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" DAEMON2=/usr/bin/deluge DAEMON2_ARGS="-u web" PIDFILE1=/var/run/$NAME1.pid PIDFILE2=/var/run/$NAME2.pid PKGNAME=deluge-daemon SCRIPTNAME=/etc/init.d/$PKGNAME [ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0 [ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME [ -f /etc/default/rcS ] && . /etc/default/rcS . /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 do_start() { start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \ --chuid $DELUGED_USER --user $DELUGED_USER --test > /dev/null RETVAL1="$?" start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \ --chuid $DELUGED_USER --user $DELUGED_USER --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 -- $DAEMON1_ARGS RETVAL1="$?" sleep 2 start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \ --chuid $DELUGED_USER --user $DELUGED_USER -- $DAEMON2_ARGS RETVAL2="$?" [ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 2 } do_stop() { 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 :

Now we have to activate the scripts so that they actually do something.

$ sudo chmod +x /etc/init.d/deluge-daemon $ sudo update-rc.d -f deluge-daemon defaults

If you ever want to remove the daemon use the following command.

$ sudo update-rc.d -f deluge-daemon remove

You can also set up a port, I recommend something in the 30000 range. The graphical UI has a button in the preferences to check that your port forwarding works. You will most likely need both UDP and TCP forwarding to the computer you have Deluge on.

References here.