Seedbox : installer le client ruTorrent sous Debian 9
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.
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 :
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 :
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 😉
Dernière modification le 17 décembre 2017.
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
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.
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! 🙂
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.
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.
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
Bonsoir et pour renouveler le certificat lestencrypt automatiquement comment faire ? merci
Autre erreur:
# apt install unrar
Package unrar is not available, but is referred to by another package.
à remplacer par
# apt install unrar-free
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;
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
Oui, PulseHeberg ne tolère plus les seddboxes.
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
oops petite erreur de mise en forme, je corrige ça, merci
bonjour
en ce qui est des hébergeurs c’est autorisé ?
Généralement oui, en tout cas sur des serveurs dédiés. Sur des VPS ça dépend, il faut demander à l’hébergeur pour être sûr.
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
J’aime beaucoup ce thème aussi 🙂
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