Après avoir vu comment installer rTorrent depuis les sources, un front-end serait plus que le bienvenu pour gérer rTorrent autrement qu’en ligne de commande. Il en existe plusieurs, plus ou moins mis à jour ou encore supportés.
Pour ma part, j’ai choisi de me tourner vers ruTorrent, car c’est le plus connu et le plus mis à jour d’entre tous et dispose d’une communauté assez grande pour aider en cas de pépin.
Ici nous supposons que vous avez déjà un serveur Web avec PHP fonctionnel !
Dépendances
Pour le fonctionnement de la plupart des plugins, php-cli sera nécessaire, unrar-free et unzip pour la décompression automatique et mediainfo nous sert à obtenir des informations sur les fichiers audio et vidéo. Quant à subversion, ce sera pour récupérer les sources de ruTorrent et pouvoir le mettre à jour très simplement.
apt-get subversion install mediainfo php-cli unzip unrar-free
Installation
cd /var/www/ svn co http://rutorrent.googlecode.com/svn/trunk/rutorrent chown -R www-data:www-data /var/www/rutorrent
Et voilà, c’est installé. Pour le mettre à jour :
/var/www/rutorrent/ svn up
Configuration
Editer l’adresse et/ou le port scgi sur lequel rTorrent est en écoute :
cd /var/www/rutorrent/conf nano config.php
$scgi_port = 5001; $scgi_host = "127.0.0.1";
Ici, rTorrent est en écoute sur localhost (127.0.0.1) et le port 5001. Il faut veiller à ce que ce couple adresse /port correspondent à votre situation.
Vérifiez bien dans le .rtorrent.rc à avoir bien mis le chemin des dossiers de downloads en chemin absolu pour éviter que le chemin ne soit interprété par ruTorrent comment étant relatif à son chemin. Donc, par exemple si on reprend la configuration que l’on avait vu dans le précédents billet :
./downloads
en
/home/rtorrent/downloads
Ajout de plugins
Vous pouvez soit récupérer les plugins un à un ou bien les récupérer tous d’un coup, ici pour les récupérer d’un coup :
cd /var/www/rutorrent rm -R plugins svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/ ldconfig chown -R www-data:www-data /var/www/rutorrent
Activez les plugins que vous souhaitez avec :
nano conf/plugins.ini
Un exemple de fichier plugins.ini :
;; Plugins' permissions. ;; If flag is not found in plugin section, corresponding flag from "default" section is used. ;; If flag is not found in "default" section, it is assumed to be "yes". ;; ;; For setting individual plugin's permissions you must write something like that: ;; ;; [ratio] ;; enabled = yes ;; canChangeToolbar = yes ;; canChangeMenu = yes ;; canChangeOptions = no ;; canChangeTabs = yes ;; canChangeColumns = yes ;; canChangeStatusBar = yes ;; canChangeCategory = yes [default] enabled = yes canChangeToolbar = yes canChangeMenu = yes canChangeOptions = yes canChangeTabs = yes canChangeColumns = yes canChangeStatusBar = yes canChangeCategory = yes ;; A utiliser par défaut [_getdir] enabled = yes [show_peers_like_wtorrent] enabled = yes [erasedata] enabled = yes [diskspace] enabled = yes [datadir] enabled = yes [data] enabled = yes [create] enabled = yes [cpuload] enabled = yes [tracklabels] enabled = yes [trafic] enabled = yes [theme] enabled = yes 1 enabled = yes [seedingtime] enabled = yes [rss] enabled = yes [extsearch] enabled = yes [edit] enabled = yes [cookies] enabled = yes [autotools] enabled = yes [unpack] enabled = yes [ratio] enabled = yes [chunks] enabled = yes [feeds] enabled = yes [loginmgr] enabled = yes [rssurlrewrite] enabled = yes [niouz] enabled = yes [pausewebui] enabled = yes [lbll-suite] enabled = yes [mediainfo] enabled = yes [chat] enabled = yes [logoff] enabled = yes [filemanager] enabled = yes
Vous pouvez choisir simplement les plugins à activer ou à désactiver par ce fichier ini.
Si vous avez choisi vos plugin un à un et que vous souhaitez utiliser ruTorrent avec une connexion fast-cgi de NGINX ou bien Lighttpd n’oubliez pas d’activer le plugin RPC :
cd /var/www/rutorrent/plugins svn co http://rutorrent.googlecode.com/svn/trunk/plugins/rpc
Authentification
Ici, nous faisons une installation sur un sheevaplug, nous n’allons donc pas activer le SSL qui serait trop gourmand en ressource. Une authentification HTTP suffit amplement. De plus, nous ne traiterons pas le cas multi-utilisateur, juste une authentification. Cependant, avec la méthode qui suivra, on pourra se logger avec plusieurs identifiants différents mais on aura accès à la même interface. Pour éviter d’installer Apache pour le module de génération de password, on crée un petit script en perl qui fait exactement la même chose.
On se place, par exemple, dans le home de l’utilisateur pour créer le script :
cd nano htpasswd-perl.pl
#!/usr/bin/perl if (! scalar @ARGV ) { print "Usage: program passwordfile user password\n"; print "(this program automatically creates the pw file if needed.)\n"; exit 0; } @saltsource = ('a'..'z', 'A'..'Z', '0'..'9','.','/'); $randum_num = int(rand(scalar @saltsource)); $salt = $saltsource[$randum_num]; $randum_num = int(rand(scalar @saltsource)); $salt .= $saltsource[$randum_num]; $outf=$ARGV[0]; $user=$ARGV[1]; $passwd=$ARGV[2]; if ($user & $passwd) { $encrypted = crypt($passwd, "$salt"); if (-f $outf) { open(OUT, ">>$outf") || die "htpasswd-b error: $!\n"; } else { open(OUT, ">$outf") || die "htpasswd-b error: $!\n"; } print OUT "$user:$encrypted\n"; close(OUT); exit 0; }
On le rend exécutable :
chmod +x htpasswd-perl.pl
Utilisation :
./htpasswd-perl.pl /destination/fichier login mdp
Ici la commande passée pour une cohérence avec la suite de l’article :
./htpasswd-perl.pl /var/rutorrent/.htpasswd login mdp
Configuration NGINX
Une configuration exemple nginx qui va bien :
server { listen 80; server_name yourdomain.com; #name server root "/var/www/rutorrent"; # root directory index index.php index.html index.htm; location / { auth_basic "Restricted"; auth_basic_user_file /$document_root/.htpasswd; } # Below there is only what you need to have php-fastcgi location ~ \.php$ { root "/var/www/rutorrent"; fastcgi_pass 127.0.0.1:9000; # IMPORTANT: php-fastcgi listening port. include /etc/nginx/fastcgi_params; # IMPORTANT: import fastcgi_params fastcgi_index index.php; } location ~ \.htaccess { deny all; } }
Un petit reload de la configuration pour la prise en compte des paramètres:
service nginx reload
Et normalement ruTorrent est accessible et vous demande de vous authentifier à l’accès de la page.
Edit : Voilà le petit screenshot :
Interface ruTorrent
Sources
- (fr) Script perl pour la génération du mot de passe
- (en) Site officiel ruTorrent