{{tag>en en:linux en:file_transfert en:server}} ====== Deluge ====== Deluge is a powerfull bittorrent service (based on libtorrent) with a lot of features. ===== Installation ===== Install the daemon : * deluged Install one or more interfaces : * deluge-web for the web interface * deluge-console for the command line * deluge-gtk for the GTK interface When installing the service for a remote use, intall at least deluge-console to test. Note : python will be automatically installed. ===== Startup ===== Deluge is divided in two parts : * a deamon (deluged) always running * an interface locally or remotely (using tcp port 58846) 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. ===== Note on passwords ===== 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 : * 0 : None * 1 : Read only * 5 : Normal * 10 : Admin 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. ===== Automatic startup ===== 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 : * add a dedicated user for deluge * automatically start the service and the web interface ==== Adding a dedicated user ==== # 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 # ==== Automatically start the service and the web interface ==== 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 # ===== Allow remote access ===== To allow remote access (for example with the GTK interface on Windows/Linux), we need to do the following steps : * add a user in the file //$home/.config/deluge/auth//, for example : matthieu:mypassword:10 * stop deluge : /etc/init.d/deluge-daemon stop * allow remote access into the file //$home/.config/deluge/core.conf// by modifying the line : "allow_remote": true, * start deluge : /etc/init.d/deluge-daemon start * on the GTK client : * disable the classic mode in Edit >> Preferences then Interface >> classic mode * use the connection manager to add the new server ===== Tunning ===== Once it's started, modify the following parameters : * web interface password (Preferences >> Webui >> Mot de passe) * listening port (Preferences >> Network >> Incoming Port) * bandwidth limit (Preferences >> Bandwidth >> Global) * download folders (Preferences >> Downloads >> Folders) ===== Backup ===== * /home/deluge/.config/deluge ===== Links ===== * http://deluge-torrent.org/ * http://deluge-torrent.info/ * http://forum.deluge-torrent.org/ * http://apocryph.org/2008/11/30/setting_deluge_headless_ubuntu_seedbox_windows_client/