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.

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 contact@hadopi.fr --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

L'article Seedbox : installer le client ruTorrent sous Debian 9 a été publié sur Angristan

Vus : 4755
Publié par Angristan : 57