Blog

Installation de ruTorrent + rTorrent

Écrit le 26 08 2015 par Kévin MET _

Et voilà un deuxième article dans la même journée ! Je pense que je n'avais jamais fait ça sur ce blog qui est mort depuis plus d'un an. Peut-être qu'il va revenir à la vie... Bref, on va voir comment installer ruTorrent + rTorrent. Si vous ne savez pas ce que c'est, il s'agit d'un client torrent (rTorrent) et d'une interface web pour ce client (ruTorrent). C'est propre, c'est beau et ça fait bien le boulot. J'utilise ça en remplacement de la version Linux de µTorrent. Dans ce tutoriel j'utilise une Debian stretch/sid mais ça devrait bien fonctionner sur une Jessie aussi. A vous de me dire dans les commentaires si c'est bien le cas.

On va commencer par créer un nouveau vhost sur notre apache car c'est mieux de faire les choses proprement.

Dans l'exemple ci-dessous, j'utilise les paramètres suivants :

  • domaine : rtorrent.mondomaine.fr
  • ip : X.X.X.X
  • user : toto
  • répertoire contenant ruTorrent : /var/www/rtorrent.mondomaine.fr

# cat /etc/apache2/sites-available/rtorrent.mondomaine.fr.conf
<VirtualHost X.X.X.X:80>
	ServerName rtorrent.mondomaine.fr
	DocumentRoot /var/www/rtorrent.mondomaine.fr
	ErrorLog /var/log/apache2/rtorrent.mondomaine.fr_error_log
	CustomLog /var/log/apache2/rtorrent.mondomaine.fr_access_log combined
	ProxyPass /RPC2 scgi://localhost:5000/
	<location /RPC2>
		AuthName "dl"
		AuthType Basic
		AuthBasicProvider file
		Require user toto 
		AuthUserFile /etc/apache2/.htpasswd
	</location>
	<Directory /var/www/rtorrent.mondomaine.fr>
		Order allow,deny
		Allow from all
		Require all granted
	</Directory>
</VirtualHost>

Ce qu'il est important de noter dans cette conf c'est la directive ProxyPass et le fait qu'on protège l'accès par un htpasswd. Une fois qu'on a sauvé notre config, on va créer le htpasswd pour l'utilisateur toto :


# htpasswd -c /etc/apache2/.htpasswd toto

Ensuite on active notre conf avec a2ensite :


# a2ensite rtorrent.mondomaine.fr.conf

On va télécharger l'archive de ruTorrent et la mettre ou il faut avec les bons droits :


# cd /var/www/
# wget https://bintray.com/artifact/download/novik65/generic/rutorrent-3.6.tar.gz
# tar xvzf rutorrent-3.6.tar.gz
# mv rutorrent rtorrent.mondomaine.fr
# chown -R www-data:www-data rtorrent.mondomaine.fr
# find /var/www/rtorrent.mondomaine.fr -type f -exec chmod 660 {} \;
# find /var/www/rtorrent.mondomaine.fr -type d -exec chmod 770 {} \;

On vérifie que apache est content avec cette nouvelle conf et on le relance :


# apachectl -t
# service apache2 restart

On va ensuite installer rTorrent sur le serveur et on va le faire tourner avec un user dans un screen. Pour l'exemple on va dire que l'utilisateur qui fera tourné rTorrent sera nommé rtoto. Oui c'est un très mauvais jeu de mot.


# useradd rtoto
# aptitude install rtorrent

Il faut ensuite changer la configuration par défaut de rTorrent pour que ruTorrent puisse le contrôler. Voici mon fichier de conf pour rtorrent. Il doit être dans le dossier home de rtoto avec les droits de rtoto. Pensez donc à l'editer avec cet utilisateur ou lui donnez les droits en lecture sur le fichier si vous l'avez créé avec root.


# cat /home/rtoto/.rtorrent.rc
#
scgi_port = 127.0.0.1:5000
directory = ~/rutorrent/complete
session = ~/rutorrent/session

J'utilise des dossiers spécifiques, directory va contenir les torrents complets et session les torrents en cours. Il ne faudra donc pas oublier de créer ces dossiers avec les bons droits

On va ensuite se créer un petit service des familles pour que rTorrent se lance au démarrage de votre serveur


cat /etc/systemd/user/rtorrent.service

[Unit]
Description=rTorrent
After=network.target

[Service]
Type=forking
KillMode=none
ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent
WorkingDirectory=%h
User=rtoto

On active le service :


systemctl --user enable rtorrent.service

On le lance :


systemctl --user start rtorrent.service

On vérifie qu'il est bien lancé. Si tout va bien on devrait voir un truc comme ça :


systemctl --user status rtorrent.service

● rtorrent.service - rTorrent
   Loaded: loaded (/etc/systemd/user/rtorrent.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2015-08-26 11:46:28 CEST; 6h ago
  Process: 19083 ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent (code=exited, status=0/SUCCESS)
 Main PID: 19084 (screen)
   CGroup: /user.slice/user-0.slice/user@0.service/rtorrent.service
           ├─19084 /usr/bin/SCREEN -d -m -fa -S rtorrent /usr/bin/rtorrent
           └─19086 /usr/bin/rtorrent

Aug 26 11:46:28 coucou.lan systemd[19011]: Starting rTorrent...
Aug 26 11:46:28 coucou.lan systemd[19011]: Started rTorrent.

Il ne vous reste plus qu'à aller vérifier que l'interface web fonctionne bien. Vous pouvez également ajouter des plugins dans le répertoire plugins de ruTorrent. Il suffit simplement de coller le dossier du plugin dans le répertoire plugins de votre installation de ruTorrent.

♥ Partage sur tes réseaux sociaux ♥
Kévin MET
Kévin MET

Auteur de ce blog et gérant de la société MNT-TECH, je publie sur ce blog lorsque le temps me le permet et lorsqu'un sujet qui me parait intéressant n'a pas encore été abordé en français. Toutes les informations techniques présentes sur cette page peuvent être réutilisées moyennant le fait de citer la source.