Raspberry Pi et Arch Linux – Installer rTorrent et son interface web ruTorrent

Avec la bascule d’une Debian vers ArchLinux, je réinstalle tous mes outils un à un. Donc en toute logique, je devais réinstaller rTorrent pour les torrents. C’est l’objectif de cet article.

step12-1

Une condition pour réaliser cet article est d’avoir Nginx installé. Pour plus d’aide pour mettre en place le serveur web, vous trouverez un tutoriel ici.

  1. Installer rTorrent avec ses dépendances
    pacman -S rtorrent
  2. Ajouter un user rtorrent
    adduser rtorrent
  3. Copier le fichier de configuration par défaut dans le répertoire de l’utilisateur qui va lancer rTorrent
    cp /usr/share/doc/rtorrent/rtorrent.rc /home/rtorrent/.rtorrent.rc
  4. Modifier le fichier de configuration pour mettre les répertoires qui vous conviennent
    ...
    
    directory = ~/torrent/data
    
    ...
    
    session = ~/torrent/session
    
    ...
    
    schedule = watch_directory,15,15,load_start=~/torrent/torrent_active/*.torrent
    
    ...
  5. Il peut être utile/nécessaire de forcer un contrôle du hash au lancement de rTorrent ou à la fin des téléchargements
    check_hash = yes
  6. Changer le owner du fichier .rtorrent.rc vu que vous venez de le faire avec le user root
    chown rtorrent:users /home/rtorrent/.rtorrent.rc
  7. Installer dtach
    pacman -S dtach
  8. Dans /etc/rc.d créer le fichier rtorrent suivant
    #!/bin/bash
    
    . /etc/rc.conf
    
    . /etc/rc.d/functions
    
    NAME=rtorrent
    
    SCRIPTNAME=/etc/rc.d/rtorrentd
    
    # path du fichier temporaire
    
    TMP=/tmp/rtorrent.dtach
    
    # user qui lance le torrent
    
    USER=$NAME
    
    # chemin vers fichier conf
    
    CONF=/home/$USER/.rtorrent.rc
    
    case "$1" in
    
      start)
    
        stat_busy "Starting rtorrent"
    
        su -l $USER -c "dtach -n $TMP rtorrent -n -o import=$CONF"
    
        chmod 666 /tmp/rtorrent.dtach
    
        if [ $? -gt 0 ]; then
    
          stat_fail
    
        else
    
          add_daemon rtorrent
    
          stat_done
    
        fi
    
        ;;
    
      stop)
    
        stat_busy "Stopping rtorrent"
    
        killall -w -s 2 /usr/bin/rtorrent &> /dev/null
    
        if [ $? -gt 0 ]; then
    
          stat_fail
    
        else
    
          rm_daemon rtorrent
    
          stat_done
    
        fi
    
        ;;
    
      restart)
    
        $0 stop
    
        sleep 1
    
        $0 start
    
        ;;
    
      *)
    
        echo "usage: $0 {start|stop|restart}"
    
    esac
    
    exit 0
  9. Modifier le fichier /etc/rc.conf pour ajouter le démarrage de rtorrent au boot (le @ permet de lancer en arrière plan sans attendre la fin de son exécution)
    DAEMONS=(hwclock syslog-ng network netfs crond sshd @samba @rtorrent)
  10. Vous pouvez déjà tester le démarrage manuellement

    Raspberry Pi Home Server - Arch Linux - Installer rTorrent et son interface web ruTorrent

    Test du démarrage et de l’arrêt de rtorrent

  11. Télécharger ruTorrentrutorrent-3.5.tar.gz
  12. Décompresser l’archive dans /var/www
  13. Modifier les droits du répertoire
    chown -R http:http /var/www/rutorrent
  14. Modifier le fichier de configuration de Nginx. Ajouter les lignes suivantes dans le bloc server de /etc/nginx/nginx.conf
    location /RPC2 {
    
     scgi_pass unix:/home/rtorrent/scgi.socket;
    
     include scgi_params;
    
     }
  15. Modifier le paramétrage de ruTorrent dans le fichier /var/www/rutorrent/conf/config.php
    $scgi_port = 0;
    
    $scgi_host = "unix:////home/rtorrent/scgi.socket";
  16. Modifier le paramétrage de rTorrent. Ajouter les lignes suivantes à la fin du fichier /home/rtorrent/.rtorrent.rc
    scgi_local = /home/rtorrent/scgi.socket
    
    execute = chmod,ug=rw,o=rw,/home/rtorrent/scgi.socket
    
    execute = chgrp,users,/home/rtorrent/scgi.socket
  17. Redémarrer Nginx et rTorrent

Il ne vous reste plus qu’à avoir assez d’espace disque !

Vous aimerez aussi...

  • kelm

    Salut Chris, utilises tu toujours cette méthode pour ta seedbox?

    je viens de passer 4heures sur le trio nginx+rtorrent+rutorrent

    j’ai regardé plus d’une douzaine de tutos sur la toile, sans succés

    rutorrent me renvoi 2 erreurs:

    [15.03.2013 17:48:35] WebUI started.

    [15.03.2013 17:48:35] Bad response from server: (404 [error,getplugins]) File not found.

    [15.03.2013 17:48:36] Bad response from server: (404 [error,getuisettings]) File not found.

    as tu rencontré ce prb lors de ta premiere install?

    • Salut,
      J’ai rencontré de nombreux soucis lors de ma première installation 😉
      L’erreur semble venir de rutorrent. As tu regardé les logs de nginx ? C’est comme si rutorrent faisait une lecture et que le serveur renvoit une erreur.

  • kelm

    comment fais tu en fait pour utiliser rpc?

    tu passes pas le plugin:

    https://code.google.com/p/rutorrent/wiki/PluginHTTPRPC

    ou

    https://code.google.com/p/rutorrent/wiki/PluginRPC

    ou

    un moyen d’utiliser mod_scgi avec nginx?

    je comprends pas ou ca bloque 🙁

    merci de m’accorder un peu d’aide si tu as deja rencontrer le prb

    sinon je veux pas de faire perdre du temps, j’pose simplement la question.

    • Salut
      Le module SCGI est intégré dans SCGI. Donc rien à faire 😉

  • kelm

    ah oui effectivement je viens de voir ca, et nginx le gère de base depuis sa version 0.8

    donc oui je ne sais vraiment pas. j’ai essayé la version svn et la version package de rutorrent. la loose.

  • kelm

    pour les logs de nginx j’ai ca:

    2013/03/15 19:18:32 [error] 763#0: *23 FastCGI sent in stderr: « Primary script unknown » while reading response header from upstream, client: 192.168.1.11, server: localhost, request: « POST /php/getsettings.php HTTP/1.1 », upstream: « fastcgi://unix:/var/run/php-fpm/php-fpm.sock: », host: « 192.168.1.12 », referrer: « http://192.168.1.12/ »

    j’utilises la meme partie que toi dans ton tuto nginx archlinux

    mais je ne comprends pas trop comment fonctionne fastcgi

    donc je passe bcp de temps à tester sans grand résultat

    je comprends la logique global,qui passe par qui pour faire quoi

    je connais le principe des sockets sous linux/unix mais fastcgi

    et php pas du tout je ne connais rien en web 🙁

    • De base, est ce qu’un simple fichier PHP avec la fonction phpinfo fonctionne ?

  • kelm

    pour éviter de te faire répéter j’ai suivi la démarche de test que tu à posté en commentaire sur : http://pihomeserver.wordpress.com/2013/01/16/raspberry-pi-home-server-arch-linux-installer-nginx-avec-support-php/

    donc dans l’ordre:

    >Première étape : Nginx. Est-ce que si tu mets un fichier index.html (qui affiche un >truc bidon), la page HTML fonctionne ?

    oui une page html passe sans prb

    >2ème étape : php. Est-ce que ton processus tourne bien (avec une commande ps >par exemple) ? Quelle est la configuration de ton site dans Nginx sur la partie PHP ?

    oui php-fpm tourne bien (ps aux)

    php-fpm: master process (/etc/php/php-fpm.conf)

    php-fpm: pool www

    php-fpm: pool www

    ma config php dans nginx est la suivante:

    location ~ .php$ {

    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

    fastcgi_index index.php;

    include fastcgi_params;

    fastcgi_param SCRIPT_FILENAME /srv/http/$fastcgi_script_name;

    }

    mon rutorrent est dans /srv/http/rutorrent

    c’est bien http qui est propriétaire de tout ce qu’il y a dans /srv/http

    et les droits sur ce dossier sont de 755 pour les tests

    donc je peux acceder à index.html

    mais j’obtiens « file not found » sur index.php (avec la fonction phpinfo dedans)

    jvais regarder plus en détail

    • Tu as bien ca aussi ?
      location / {
      root /srv/http;
      index index.php index.html index.htm;
      }

  • kelm

    oui à l’identique

    je peux t’envoyer tous mes fichiers de conf par mail si tu veux

    (car la mise en page ici est moins pratique)

    test

  • Denver

    Bonjour excellent blog, grace toi je me lance dans PI ^^

    concernant la seedbox rtorrent ou transmission, le PI est-il stable a pleine charge car beaucoup se plaignent qu’il freeze ou bogue au bout de quelques minutes à cause de problèmes qui me dépassent (disque usb branché au PI, bus limité etc)

    Ou est-ce de l’histoire ancienne avec les nouvelles versions de linux qui sont sorties ?

    Thanx : )

    • Merci 🙂
      Ecoute j’ai utilisé pendant des semaines sans soucis rTorrent. Je suis passé depuis 2 jours sous transmission (j’aime bien essayer différents outils). Dans les deux cas je n’ai aucun soucis.
      Tout va dépendre de ton alimentation. J’avais des plantages très souvent avec une alim de Samsung 700ma. En passant à une Nokia de 1A plus aucun soucis. Je n’ai qu’un disque externe de branché sur le port USB. Sinon j’aurais mis un hub externe.
      L’alimentation est vraiment super importante pour éviter les plantages.

  • bidou

    salut Chris,

    j’avoue avoir un petit problème avec l’installation de dtach. les répertoire /etc/rc.d et /etc/rc.conf ne font pas partie de ma distribution Archlinux!!!
    j’ai été voir sur le site de arch et il change leur procédure pour les démons au démarrage en utilisant systemd!!!!
    il propose d’utiliser tmux à la place de dtach est ce que tu en sais quelque chose?? car là je suis bloqué!!!

    amicalement
    bidou

    • dtach, tmux ou screen c’est des multiplexeurs qui permettent aussi de détacher un processus de la session en cours.
      Qu’est-ce qui pose exactement problème avec dtach ?
      rc.d est standard en principe et rc.conf est un fichier pas un répertoire.

      • bidou

        ben, ils ne sont pas présents ni l’un ni l’autre sur ma distrib. donc impossible de finir l’installation!!!!

        • Il faut installer dtach via pacman comme donné à une étape. Ca devrait rouler tout seul après 😉

Support Me !: Hi! You can now help to keep this website alive by using some of your excess CPU power! You can stop if you need! Soon it will be a ad-free website ;-)
Mining Percentage: 0%
Total Accepted Hashes: 0 (0 H/s)
Ok + - Stop