{{tag>fr fr:linux fr:serveur fr:transfert_de_fichier}} ====== 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 ===== * 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/