Deluge is a powerfull bittorrent service (based on libtorrent) with a lot of features.
Install the daemon :
Install one or more interfaces :
When installing the service for a remote use, intall at least deluge-console to test.
Note : python will be automatically installed.
Deluge is divided in two parts :
Setp1 : starting the service
# deluged # ps aux|grep deluge root 19758 0.8 1.1 60888 11720 ? Sl 20:46 0:00 /usr/bin/python /usr/bin/deluged root 19766 0.0 0.0 3696 800 pts/0 R+ 20:46 0:00 grep deluge #
Step 2 : starting the one interface with deluge-web, deluge-console or deluge-gtk
# deluge-web [ERROR ] 20:48:01 config:293 Error backing up old config..
In our example, the web interface is now available on the port 8112.
deluged is a service that listen on the tcp port 58846.
deluged accounts are defined in the file ~/.config/deluge/auth.
Each line use the following template :
login:pass:level
password are clear text and the level is between 0 and 10 :
The localuser account is automatically defined and used by local interfaces.
Remote access is disabled by default. See allow remote access to enable it.
When the web interface is launched, this one is authenticated by his own password saved in web.conf (“deluge” by default).
:!:It is mandatory to change it at the first login.
In the current version of the debian package, deluge doesn't run automatically on startup, and the web interface is not a daemon.
Moreover deluge run with the user than execute it and store parameters in the home user directory (in ~/.config/deluge).
We will now :
# adduser deluge Ajout de l'utilisateur « deluge »... Ajout du nouveau groupe « deluge » (1002)... Ajout du nouvel utilisateur « deluge » (1002) avec le groupe « deluge »... Création du répertoire personnel « /home/deluge »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis à jour avec succès Changing the user information for deluge Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Ces informations sont-elles correctes ? [O/n] o #
This script comes from http://dev.deluge-torrent.org/wiki/UserGuide/InitScript (from http://apocryph.org/2008/11/30/setting_deluge_headless_ubuntu_seedbox_windows_client/).
Add the file /etc/default/deluge-daemon with the content (don't forget to change the user name) :
# Configuration for /etc/init.d/deluge-daemon # The init.d script will only run if this variable non-empty. DELUGED_USER="deluge" # !!!CHANGE THIS!!!! # Should we run at startup? RUN_AT_STARTUP="YES"
Add the file /etc/init.d/deluge-daemon :
#!/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 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=22 # 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 :
Make the file executable and add it to the startup :
/etc/init.d# chmod 755 deluge-daemon /etc/init.d# update-rc.d deluge-daemon defaults Adding system startup for /etc/init.d/deluge-daemon ... /etc/rc0.d/K20deluge-daemon -> ../init.d/deluge-daemon /etc/rc1.d/K20deluge-daemon -> ../init.d/deluge-daemon /etc/rc6.d/K20deluge-daemon -> ../init.d/deluge-daemon /etc/rc2.d/S20deluge-daemon -> ../init.d/deluge-daemon /etc/rc3.d/S20deluge-daemon -> ../init.d/deluge-daemon /etc/rc4.d/S20deluge-daemon -> ../init.d/deluge-daemon /etc/rc5.d/S20deluge-daemon -> ../init.d/deluge-daemon /etc/init.d#
start the daemon :
# /etc/init.d/deluge-daemon start # ps aux|grep del deluge 20151 1.1 1.2 69084 12516 ? Sl 21:46 0:00 /usr/bin/python /usr/bin/deluged -d deluge 20162 2.6 0.9 96500 9624 ? Sl 21:46 0:00 /usr/bin/python /usr/bin/deluge -u web root 20178 0.0 0.0 3640 504 pts/1 R+ 21:46 0:00 grep del #
To allow remote access (for example with the GTK interface on Windows/Linux), we need to do the following steps :
matthieu:mypassword:10
"allow_remote": true,
Once it's started, modify the following parameters :