Ceci est une ancienne révision du document !


Deluge

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

Installation

Installer au choix :

  • deluge-webui pour l'interface web
  • deluge-console pour la ligne de commande
  • deluge 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 -u (gtk|web|console)

# deluge -u 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.

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

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

#
# 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'administration distante

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
  • 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 “I” de “allow_remote”
sS'allow_remote'
p20
I01
  • 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 (Configuration » Webui » Mot de passe)
  • port d'écoute (Configuration » Réseau » Port)
  • la limitation de bande passante (Configuration » Bande passante » Global)
  • les répertoires de téléchargement qui sont par défaut la home de l'utilisateur (Configuration » Deluge » Téléchargement)

Version de développement

A venir.

svn checkout http://svn.deluge-torrent.org/trunk deluge

python setup.py clean -a

  • python-setuptools
  • python-simplejson
  • python-twisted-web

python setup.py build

Links

linux/deluge.1254767441.txt.gz · Dernière modification: 2009/10/05 20:30 par matthieu
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki