Deluge

Deluge est un client Bittorrent efficace (basé sur libtorrent) et riche en fonctionnalités.

Installation

Installer le démon :

  • deluged

Et installer une ou plusieurs interfaces :

  • deluge-web pour l'interface web
  • deluge-console pour la ligne de commande
  • deluge-gtk pour l'interface GTK

Pour l'installation minimale avec une interface déportée, installer au moins deluge-console pour tester.

Remarque : python sera automatiquement installé.

Mise en route

Deluge est composé de deux parties :

  • un démon (deluged) tournant en permanence sur le PC/Serveur
  • une interface au choix installée en local ou à distance, dialoguant sur le port 58846 avec le démon

Etape1 : lancer le démon

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

Etape 2 : lancer une interface avec deluge-web, deluge-gtk ou deluge-console

# deluge-web
[ERROR   ] 20:48:01 config:293 Error backing up old config..

Dans cet exemple, nous utilisons l'interface web, accessible sur le port 8112.

Remarque sur les mots de passe

deluged est un service qui écoute sur le port 58846.
Les comptes utilisés par deluged sont définis dans le fichier ~/.config/deluge/auth.

Le format des lignes du fichier est le suivant :

login:pass:level

les mots de passe sont en clair et le level est compris entre 0 et 10 :

  • 0 : None
  • 1 : Read only
  • 5 : Normal
  • 10 : Admin

Le compte localuser est défini automatiquement et est utilisé par les clients deluge locaux.

Ces comptes ne sont pas utilisable à distance par défaut. Voir autoriser l'acces distant pour l'activer.

Lorsque l'interface web est lancée, celle-ci est authentifiée par son propre mot de passe enregistré dans web.conf. “deluge” par défaut.
:!: Il est donc impératif de changer ce mot de passe à la première connexion.

Automatiser le démarrage

Dans la version actuelle du paquet Debian, deluge ne se lance pas au démarrage, et l'interface web n'est pas en démon.
De plus deluge tourne avec l'utilisateur qui le lance et enregistrer ses paramètres dans le répertoire home de l'utilisateur (dans .config/deluge).

Nous allons ici :

  • créer un utilisateur dédié pour deluge
  • automatiser le démarrage du démon et de l'interface web

Création d'un utilisateur dédié

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

Automatiser le démarrage du démon et de l'interface web

La section suivante provient de http://dev.deluge-torrent.org/wiki/UserGuide/InitScript (venant de http://apocryph.org/2008/11/30/setting_deluge_headless_ubuntu_seedbox_windows_client/).

Ajouter le fichier /etc/default/deluge-daemon contenant (ne pas oublier de changer le nom d'utilisateur) :

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

Ajouter le fichier /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

:

Rendre le script exécutable et l'insérer au démarrage :

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

Lancer le démon :

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

Autoriser l'accès distant

Pour utiliser une interface distante (par exemple GTK sous Linux ou Windows), il faut réaliser les étapes suivantes :

  • ajouter un utilisateur dans le fichier $home/.config/deluge/auth sous la forme user:pass:level, par exemple :
matthieu:mypassword:10
  • arrêter deluge /etc/init.d/deluge-daemon stop
  • activer l'accès remote dans le fichier $home/.config/deluge/core.conf en modifiant la ligne :
"allow_remote": true,
  • redémarrer deluge /etc/init.d/deluge-daemon start
  • pour le client GTK sur le poste distant :
    • désactiver le mode classique dans Editer » Préférences puis Interface » Mode classique
    • utiliser ensuite le gestionnaire du connexion pour ajouter le nouveau serveur

Tunning

Une fois lancé, modifier les éléments suivants :

  • mot de passe de l'interface web (Préférences » Webui » Mot de passe)
  • port d'écoute (Préférences » Network » Ports entrants)
  • la limitation de bande passante (Préférences » Bandwidth » Réglages généraux)
  • les répertoires de téléchargement qui sont par défaut la home de l'utilisateur (Préférences » Downloads » Dossiers)

Backup

  • /home/deluge/.config/deluge

Links

linux/deluge.txt · Dernière modification: 2011/01/08 12:08 par matthieu
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki