Seedbox : installer le client ruTorrent sous Debian 9 - Angristan
Seedbox : installer le client ruTorrent sous Debian 9

Seedbox : installer le client ruTorrent sous Debian 9

Ce billet a été écrit il y a longtemps. Il peut contenir des informations erronées.

Après vous avoir présenté Transmission et Flood, voici un autre client torrent incontournable pour votre seedbox : ruTorrent. Tout comme Flood, c’est une interface web libre pour rTorrent, mais elle est cette fois-ci propulsée par PHP et non pas Node.js.

L’interface de ruTorrent est clairement moins moderne que Flood, mais elle reste néanmoins ergonomique et complète. Aussi, on peut ajouter de nombreux plugins, mais je ne vais pas couvrir l’installation de ceux-ci dans ce tutoriel.

Interface ruTorrent

Une Seedbox ?

Une seedbox est un serveur dédié au téléchargement et au partage de fichiers torrents. Transmission est une interface web qui nous permet de télécharger ces fichiers.

Pourquoi avoir une seedbox ? Le fait que ce soit un serveur signifie que :

• vous avez beaucoup de stockage
• vous avez beaucoup de bande passante, donc des téléchargements rapides
• vous n’êtes pas surveillés par HADOPI
• vous pouvez regarder vos films ou séries en streaming depuis votre serveur.

Installation

Installation des dépendances

apt install screen unzip

Installation de rTorrent

Contrairement à mon article pour installer Flood, qui concernait Debian 8, on peut directement installer rTorrent et libtorrent depuis les dépôts, sans les compiler, puisqu’ils sont disponibles dans leur dernière version.

apt install rtorrent

Configuration de rTorrent

On crée un utilisateur pour rTorrent :

adduser --disabled-password rtorrent

On édite la configuration de rTorrent :

nano /home/rtorrent/.rtorrent.rc

Et on ajoute ceci :

# Vitesse de téléchargement max up/down, en KiB. "0" équivaut à aucune limite. 
download_rate = 0
upload_rate = 10000

# Nombre maximal de téléchargements simultanés
max_downloads_global = 10

# Nombre maximal de peers par torrent
max_peers = 100

# Nombre maximal de peers à upload par torrent
max_uploads = 20

# Répertoire qui contient les fichiers téléchargés.
directory = /srv/seedbox/downloads

# Répertoire où rTorrent stocke l'état de téléchargement des torrents.
session = /srv/seedbox/.session

# Ports utilisables par rTorrent. 2x la même valeur = 1 port
port_range = 49999-49999
port_random = no

# Vérification des données à la fin du téléchargement
check_hash = yes

# Activation de DHT pour les torrents sans trackers.
# À désactiver si vous utilisez des trackers privés
dht = auto
dht_port = 6881
peer_exchange = yes

# On préfère les échanges avec chiffrement
encryption = allow_incoming,try_outgoing,enable_retry

# On autorise les trackers UDP
use_udp_trackers = yes

# Port SCGI, on en a besoin pour communiquer avec ruTorrent
scgi_port = 127.0.0.1:5000

On applique les bonnes permissions au dossier de rTorrent :

chown rtorrent:rtorrent /home/rtorrent/

On crée les dossiers de téléchargement et on applique les permissions :

mkdir -p /srv/seedbox/{downloads,.session}
chown rtorrent:rtorrent -R /srv/seedbox/

Ensuite on crée un service systemd pour rTorrent qui nous permet de le démarrer et de l’arrêter.

nano /etc/systemd/system/rtorrent.service
[Unit]
 Description=rTorrent
 After=network.target

[Service]
 User=rtorrent
 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

[Install]
 WantedBy=default.target
systemctl daemon-reload
systemctl enable rtorrent.service
systemctl start rtorrent.service

Installation de ruTorrent

On télécharge les fichiers de ruTorrent :

cd /srv/
wget https://github.com/Novik/ruTorrent/archive/v3.8.zip
unzip v3.8.zip
rm v3.8.zip
mv ruTorrent-3.8/ seedbox/rutorrent

On y applique les bonnes permissions pour que PHP y ait accès :

chown www-data:www-data -R /srv/seedbox/rutorrent
chmod 775 -R /srv/seedbox

Installation de PHP

On installe PHP-FPM 7.0 depuis les dépôts :

apt install php7.0 php7.0-fpm

Génération du certificat avec Let’s Encrypt

On installe le client letsencrypt :

apt install letsencrypt

Puis on génère un certificat signé par une clé RSA 4096 bits. Mettez votre domaine et votre adresse mail dans la commande ci-dessous.

letsencrypt certonly -d seedbox.hadopi.fr --agree-tos -m [email protected] --rsa-key-size 4096 --standalone

Configuration du serveur web Nginx

On installe nginx :

apt install nginx

Ensuite on va créer un couple utilisateur / mot de passe pour protéger l’accès à ruTorrent via une authentification HTTP.

apt install apache2-utils
htpasswd -c /etc/nginx/auth utilisateur

Ensuite on configure nginx:

nano /etc/nginx/conf.d/seedbox.conf

Modifiez le domaine ci-dessous par le votre.

server {
 listen 80;
 listen [::]:80;
 server_name seedbox.hadopi.fr;
 return 301 https://seedbox.hadopi.fr$request_uri;

 access_log /dev/null;
 error_log /dev/null;
}
 server {
 listen 443 ssl http2;
 listen [::]:443 ssl http2;
 server_name seedbox.hadopi.fr;
 root /srv/seedbox/rutorrent/;
 index index.html;

 access_log /var/log/nginx/rutorrent-access.log;
 error_log /var/log/nginx/rutorrent-error.log;

 auth_basic "Fermé!";
 auth_basic_user_file /etc/nginx/auth;

 ssl_certificate /etc/letsencrypt/live/seedbox.hadopi.fr/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/seedbox.hadopi.fr/privkey.pem;
 ssl_trusted_certificate /etc/letsencrypt/live/seedbox.hadopi.frchain.pem;

 ssl_protocols TLSv1.2;
 ssl_ecdh_curve X25519:P-521:P-384:P-256;
 ssl_ciphers EECDH+CHACHA20:EECDH+AESGCM:EECDH+AES;
 ssl_prefer_server_ciphers on;
 ssl_stapling on;
 ssl_stapling_verify on;
 resolver 80.67.169.12 80.67.169.40 valid=300s;
 resolver_timeout 5s;
 ssl_session_cache shared:SSL:10m;

 location ~* \.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|x-html|html|css|xml|js|woff|woff2|ttf|svg|eot)$ {
  expires 30d;
  access_log off;
  log_not_found off;
 }

 location / {
  try_files $uri $uri/ =404;
 }

 location /RPC2 {
  include /etc/nginx/scgi_params;
  scgi_pass 127.0.0.1:5000;
 }

 location ~ \.php$ {
  try_files $uri =404;
  fastcgi_pass unix:/run/php/php7.0-fpm.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
  fastcgi_intercept_errors on;
  fastcgi_ignore_client_abort off;
  fastcgi_connect_timeout 60;
  fastcgi_send_timeout 180;
  fastcgi_read_timeout 180;
  fastcgi_buffers 4 256k;
  fastcgi_buffer_size 128k;
  fastcgi_busy_buffers_size 256k;
  fastcgi_temp_file_write_size 256k;
 }
}

Configuration de ruTorrent

Vous allez probablement avoir ce genre d’erreurs si vous allez sur ruTorrent :

Erreurs ruTorrent

Ce ne sont pas des erreurs bloquantes, mais mieux vaut ne pas en avoir !

On installe donc les dépendances nécessaires :

apt install unrar mediainfo ffmpeg curl

Personnellement j’ai du aller modifier le fichier de conf de ruTorrent pour spécifier l’emplacement de curl :

nano /srv/seedbox/rutorrent/conf/config.php

Comme ceci :

Configuration ruTorrent

Enjoy

Et voilà, vous pouvez accéder à votre client torrent super performant via https://votre-domaine.

Je vous laisser faire un tour dans les réglages et télécharger des distributions GNU/Linux 😉

Interface ruTorrent


Dernière modification le 17 décembre 2017.
S’abonner
Notification pour
guest

17 Commentaires
Le plus récent
Le plus ancien Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Newenn

Bonjour,
tout d’abord merci pour votre guide d’installation.
Voila je vous présente mon problème je suis pas à pas votre guide mais je suis bloqué à l’étape

(systemctl daemon-reload
systemctl enable rtorrent.service
systemctl start rtorrent.service

quand je l’exécute j’ai l’erreur suivante :
Job for rtorrent.service failed because the control process exited with error code.
See « systemctl status rtorrent.service » and « journalctl -xe » for details.

puis qua d je vais voir le status voici le message :

 rtorrent.service – rTorrent
  Loaded: loaded (/etc/systemd/system/rtorrent.service; enabled; vendor preset: enabled)
  Active: failed (Result: exit-code) since Sun 2020-11-15 10:51:21 CET; 2min 54s ago
 Process: 21370 ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent (code=exited, status=200/CHDIR)

nov. 15 10:51:21 ns1 systemd[1]: Starting rTorrent…
nov. 15 10:51:21 ns1 systemd[21370]: rtorrent.service: Changing to the requested working directory failed: Permission
nov. 15 10:51:21 ns1 systemd[21370]: rtorrent.service: Failed at step CHDIR spawning /usr/bin/screen: Permission denied
nov. 15 10:51:21 ns1 systemd[1]: rtorrent.service: Control process exited, code=exited, status=200/CHDIR
nov. 15 10:51:21 ns1 systemd[1]: rtorrent.service: Failed with result ‘exit-code’.
nov. 15 10:51:21 ns1 systemd[1]: Failed to start rTorrent.

Auriez vous une idée d’où vient ce problème svp ?

Merci par avance et bonne journée à vous.

cocoslater

Bonjour et merci pour ce tuto, je suis arrivé au bout mais quand je tente d’accéder à l’interface rutorrent, j’ai simplement une page « welcome to nginx »

quelqu’un peut il m’aider?

Merci! 🙂

themadmax

Comment peut-on rajouter un acces au repertoire de téléchargement. J’ai rajouter une location dans le fichier nginx mais cela ne fonctionne pas 404.

Oreloth

Bonjour Angristan, je souhaite savoir quels détails de ce tutoriel je dois modifier pour faire tourner ruTorrent sur un serveur Apache depuis un simple sous-dossier du répertoire www/html.

Merci par avance si tu prends le temps de répondre à ma question.

blacxi

Bonjour @angristan,

Tout d’abord merci de ton tuto.
J’ai aussi le même problème que Oreloth, peux-tu nous indiquer comment faire l’installa avec Apache2 stp ?

Merci

lolo

Bonsoir et pour renouveler le certificat lestencrypt automatiquement comment faire ? merci

1coonu

Autre erreur:
# apt install unrar
Package unrar is not available, but is referred to by another package.

à remplacer par
# apt install unrar-free

1coonu

Bonjour, 2 petites erreurs de syntaxe pour moi qui on fait que nginx a pas démarrer
Erreur 1
server {
listen 80;
listen [::]:80;
server_name seedbox.hadopi.fr;
……

remplacer par:
server {
listen 80;
listen [::]:80;
server_name _;
……….

Erreur 2
ssl_trusted_certificate /etc/letsencrypt/live/seedbox.hadopi.frchain.pem;

ne pas oublier le « slash (/) » avant chain.pem
ssl_trusted_certificate /etc/letsencrypt/live/seedbox.hadopi.fr/chain.pem;

citizenz

Pour info, sur un VPS Linux Pulseheberg ou sur un VPS Storage Pulseheberg, il n’est pas possible de faire tourner rtorrent. Voici le type d’erreur :

# systemctl status rtorrent.service
● rtorrent.service – rTorrent
Loaded: loaded (/etc/systemd/system/rtorrent.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since mer. 2017-11-08 14:56:41 EST; 433ms ago
Process: 30431 ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent (code=exited, status=1/FAILURE)
Process: 30423 ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent (code=exited, status=0/SUCCESS)
Main PID: 30424 (code=exited, status=0/SUCCESS)

nov. 08 14:56:35 cresus systemd[1]: Starting rTorrent…
nov. 08 14:56:35 cresus systemd[1]: Started rTorrent.
nov. 08 14:56:41 cresus systemd[1]: rtorrent.service: Control process exited, code=exited status=1
nov. 08 14:56:41 cresus systemd[1]: rtorrent.service: Unit entered failed state.
nov. 08 14:56:41 cresus systemd[1]: rtorrent.service: Failed with result ‘exit-code’.

Si on essaie de lancer rtorrent « à la mano » sous le user rtorrent :
# su – rtorrent
$ rtorrent
(14:59:38) Closed XMLRPC log.
[Throttle 10000/off KB] [Rate 0,0/ 0,0 KB] [Port: 49999] …/… [U 0/2010] [D 0/10] [H 0/32] [S 0/3/768] [F 0/128]
Processus arrêté

J’ai testé sous Debian 9 et Ubuntu 16.04…
Et il y a ce message d’erreur :
systemd[1]: apt-daily.service: Failed to set invocation ID on control group /system.slice/apt-daily.service, ignoring: Operation not permitted

Pulseheberg semble donc bloquer rtorrent et les box en général :
https://mondedie.fr/d/9656-discussion-beta-installer-rutorrent-sur-debian-9-nginx-php-fpm/22

thecroc

Dans mon copier coller j’ai bien évidemment pas lu.

Et il ne faut pas mettre les lignes suivantes dans le service mais les taper après avoir configurer ce dernier.

systemctl daemon-reload
systemctl enable rtorrent.service
systemctl start rtorrent.service

theg

bonjour
en ce qui est des hébergeurs c’est autorisé ?

Andy

Salut Stan.
merci pour ce tuto.
En ce qui concerne la gueule de l’interface, il ya des tas de theme qui pullulent sur Github, comme celui là par exemple : https://github.com/Phlooo/ruTorrent-MaterialDesign

Aussi, ruTorrent me rappelle les heures sombre de ma seedbox, à l’époque d’un processeur à fond pour un processus franchement moyen et bien trop gourmand pour générer une interface web que, au final, on utilise très peu… Pour peu qu’on aie qq add-on sur firefox qui envoient les torrent directement.
Bref, je suis passè depuis longtemps sur Transmission, et, même si ruTorrent est friendly, je le conseille vivement pour sa simplicité !

Cela dit, merci pour le tuto, je bag ça 😉
Andy

Gecko Mystosa

Il y a aussi d’autres thèmes pour ruTorrent et généralement, c’est Oblivion qui est très apprécié. Merci pour ce thème que je ne connaissais pas (-; – https://github.com/Novik/ruTorrent/tree/master/plugins/theme/themes