Raspberry Pi : installer rTorrent et ruTorrent avec Nginx

Dans ce tutoriel, nous allons voir comment installer un client torrent qui va se charger de télécharger pour nous. Nous allons aussi le configurer pour qu’il soit accessible depuis une interface web.

Raspberry Pi Home Server – Etape 12 : installer rTorrent et ruTorrent avec Nginx

Vous avez la possibilité d’installer directement rtorrent ou de le recompiler avec libtorrent.

Si vous voulez compiler rtorrent voici les instructions :

  1. Télécharger la dernière version de rtorrent sur le site officiel puis la décompresser
  2. Télécharger la dernière version de libtorrent sur le site officiel puis la décompresser
  3. Installer des packages supplémentaires
     apt-get install subversion libcurl3-gnutls-dev build-essential make gcc autoconf curl build-essential libtool bison flex libreadline-dev autoconf automake libcppunit-dev libsigc++-2.0-dev libncursesw5-dev libncurses5-dev libxmlrpc-c3-dev
  4. Aller dans le répertoire des sources de libtorrent, compiler et installer
    ./autogen.sh
    
    . /configure
    
    make
    
    make install
  5. Aller dans le répertoire des sources de rtorrent, compiler et installer
    ./configure --with-xmlrpc-c
    
    make
    
    make install

L’autre possibilité, plus simple et rapide 😀

apt-get install rtorrent dtach

Ca va tout installer : rtorrent, libtorrent, dtach (nous verrons plus tard ce que nous allons en faire)

Passons à la suite

  1. Créer le script /etc/init.d/rtorrentd
    #!/bin/sh -e
    
    #
    
    ### BEGIN INIT INFO
    
    # Provides: rtorrentd
    
    # Required-Start: $network $syslog
    
    # Required-Stop: $network
    
    # Default-Start: 2 3 5
    
    # Default-Stop: 0 1 6
    
    # Description: Démarrer/arrêter rtorrent sous forme de daemon.
    
    ### END INIT INFO 
    
    NAME=rtorrent
    
    SCRIPTNAME=/etc/init.d/rtorrentd
    
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    
    # path du fichier temporaire
    
    TMP=/tmp/rtorrent.dtach
    
    # user qui lance le torrent
    
    USER=$NAME
    
    # chemin vers fichier conf
    
    CONF=/home/$USER/.rtorrent.rc
    
    start() {
    
            echo -n "Starting $NAME: "
    
            su -l $USER -c "dtach -n $TMP rtorrent -n -o import=$CONF"
    
            chmod 666 /tmp/rtorrent.dtach
    
            echo "started" 
    
    }
    
    stop() {
    
            echo -n "Stopping $NAME: "
    
            killall -r "rtorrent"
    
            echo "stopped"
    
    } 
    
    restart() { 
    
            if [ "$(ps aux | grep -e 'rtorrent' -c)" != 0  ]; then
    
            {
    
                    stop
    
                    sleep 5
    
            }
    
            fi
    
            start
    
    }
    
    case $1 in
    
            start)
    
                   start
    
            ;;
    
            stop)
    
                    stop
    
            ;;
    
            restart)
    
                    restart
    
            ;;
    
            *)
    
                    echo "Usage:  {start|stop|restart}" >&2
    
                    exit 2
    
            ;;
    
    esac
  2. Changer les droits du fichier
     chmod 755 rtorrentd
  3. Ajouter le service au démarrage du Raspberry Pi Home Server
    update-rc.d rtorrentd defaults
  4. Ajouter un user rtorrent
     adduser rtorrent
  5. Créer le fichier .rtorrent.rc dans /home/rtorrent en changeant les lignes en rouge
     # Fichier de configuration de rtorrent.# Par défaut, c'est le fichier ~/.rtorrent.rc
    
    # Limites des taux de téléchargement en réception et en envoi. "0" équivaut à aucune limite.
    
    #download_rate = 500
    
    #upload_rate = 150
    
    # Répertoire qui contient les fichiers téléchargés.
    
    directory = ~/torrent/data
    
    # Répertoire où rtorrent stocke l'état de téléchargement des torrents.
    
    session = ~/torrent/session
    
    # Utilisez un chemin //relatif// si vous êtes susceptible de lancer plusieurs
    
    # instances de rtorrent ! Commentez la ligne précédente et décommentez celle-ci :
    
    #session = ./session
    
    # Ports utilisables par rtorrent (utilisez deux fois la même valeur pour utiliser tout le temps ce port)
    
    port_range = 6881-6999
    
    port_random = no
    
    # Vérification des données à la fin du téléchargement
    
    check_hash = yes
    
    # Ce répertoire contient les fichiers .torrent.
    
    # Dès qu'un nouveau .torrent y est ajouté, le téléchargement commence.
    
    schedule = watch_directory,15,15,load_start=~/torrent/torrent_active/*.torrent
    
    # Dès que le téléchargement est achevé, le fichier est déplacé dans le
    
    # répertoire ~/torrent_finis.
    
    # Pour les versions récentes de rtorrent (0.8.4 et supérieures), utilisez la ligne suivante :
    
    #system.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,~/torrent_finis/;d.set_directory=~/torrent_finis/"
    
    # Pour les versions 0.7.7 de 0.8.3, utilisez la ligne suivante :
    
    #on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,~/torrent_finis/;d.set_directory=~/torrent_finis/"
    
    # Activation de DHT pour les torrents sans trackers.
    
    # Il est obligatoire de définir un répertoire de session (voir plus haut).
    
    dht = auto
    
    # Port UDP pour l'utilisation de DHT.
    
    dht_port = 6880
    
    # Forcer l'utilisation de transactions chiffrées, pour ne recevoir et n'envoyer que des données protégées.
    
    # En revanche, les identités du l'expéditeur et du destinataire restent visibles.
    
    encryption = allow_incoming,require,require_rc4
    
    encoding_list = UTF-8
    
    scgi_local = /home/rtorrent/scgi.socket
    
    execute = chmod,ug=rw,o=rw,/home/rtorrent/scgi.socket
    
    execute = chgrp,rtorrent,/home/rtorrent/scgi.socket
  6. Changer le owner du fichier .rtorrent.rc vu que vous venez de le faire avec le user root
    chown rtorrent:rtorrent .rtorrent.rc
  7. Créer les répertoires session et directory définis dans le fichier .rtorrent.rc. Les répertoires doivent avoir comme owner rtorrent (idem pour le groupe)
  8. Télécharger l’interface rutorrent sur le site officiel https://code.google.com/p/rutorrent/
  9. Décompresser l’archive dans /var/www de manière à avoir tous les fichiers dans /var/www/rutorrent
  10. Configurer le fichier /var/www/rutorrent/conf/config.php. Modifier les lignes suivantes :
    $scgi_port = 0;
    
    $scgi_host = "unix:////home/rtorrent/scgi.socket";
  11. Créer un serveur ruTorrent pour Nginx. Créer le fichier /etc/nginx/sites-available/rutorrent
    server {
    
     listen 8092; # A vous de choisir !
    
     root /var/www/rutorrent;
    
     index index.html;
    
     server_name rutorrent;
    
     error_log /var/log/nginx/rutorrent_error.log;
    
     access_log /var/log/nginx/rutorrent_access.log;
    
    location ~ .php$ {
    
     include /etc/nginx/fastcgi_params;
    
     try_files $uri =404;
    
     fastcgi_index index.php;
    
     fastcgi_split_path_info ^(.+.php)(/.+)$;
    
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
     fastcgi_pass unix:/var/run/php5-fpm.sock;
    
     }
    
    location /RPC2 {
    
     scgi_pass unix:/home/rtorrent/scgi.socket;
    
     include scgi_params;
    
     }
    
    }
  12. Activer le site
    cd /etc/nginx/sites-enabled
    
    ln -s /etc/nginx/sites-available/rutorrent rutorrent
  13. Redémarrer Nginx
    service nginx restart
  14. C’est la fête, vous pouvez accéder à votre site rutorrent : http://<ipRaspberryPi>:8092/

Prochaine étape, un serveur de musique avec MPD !

Vous aimerez aussi...