Je vous ai parlé il y a quelques temps de la configuration d’un client Deluge permettant de se monter une petite seedbox. Aujourd’hui je vous propose un nouveau tuto traitant cette fois ci d’une toute autre solution : rTorrent interfacé avec Flood !

1. Objectifs

L’objectif de ce tutoriel est de vous montrer la marche à suivre pour installer votre propre seedbox sur un système d’exploitation Linux Debian ou Ubuntu (adaptez les commandes à votre distribution !) avec le logiciel rTorrent sur lequel nous allons ajouter une interface en Node.js un peu sympa : Flood.

Je pars du principe que vous avez déjà un serveur opérationnel, avec ou sans interface graphique c’est comme vous le sentez, perso j’en ai pas donc tout sera fait en interface de commande. Si vous n’avez pas de serveur à disposition, vous pouvez aller jeter un oeil chez Online.net qui vous louera un petit (ou un gros) serveur à prix raisonnable.

Si vous avez un nom de domaine c’est encore mieux car toute la fin du tutoriel traite de la mise en place d’un reverse proxy pour accéder à l’interface via une url propre et non pas via l’ip + le port.

Pour info, dans les commandes et fichiers de configuration dont je vous parle en dessous, tout ce qui est en gras est à adapter à votre configuration !!!

 

2. Installation et configuration des pré-requis : screen, curl, git et apache

Pour installer rTorrent et Flood, un certain nombre de pré-requis sont nécessaires et c’est par cela que nous allons commencer.

On commence par installer screen, curl et git qui sont nécessaires au bon fonctionnement de la seedbox :

sudo apt install screen curl git

Ensuite, on ajoute un utilisateur qui permettra de lancer rTorrent sans utiliser le compte administrateur, la meilleure option en terme de sécurité : 

sudo adduser --disabled-password rtorrent

Et voilà pour les pré-requis, si vous envisagez de mettre en place le reverse proxy pour avoir une URL propre, vous devrez installer Apache2 en plus du reste :

sudo apt install apache2

 

3. Installation et configuration de rTorrent

Une fois que vous avez installé l’ensemble des pré-requis, vous pouvez passer à l’installation du logiciel rTorrent :

sudo apt install rtorrent

Ensuite, on s’occupe du fichier de configuration :

sudo vi /home/rtorrent/.rtorrent.rc

Adaptez les valeurs suivantes à votre installation :

# Emplacement des fichiers téléchargés
directory = /répertoire/rtorrent/downloads

# Emplacement des sessions de téléchargement
session = /répertoire/rtorrent/.session

# Ports à ouvrir (2 ports identiques = 1 seul et même port, 2 ports différents = plage de ports !)
port_range = 40000-40000
port_random = no

# Vérifier le hash de controle à la fin du téléchargement
check_hash = yes

# Activation du DHT (pour les trackers publics)
dht = auto
dht_port = 6881
peer_exchange = yes

# Authoriser les trackers UDP
use_udp_trackers = yes

# Activer le chiffrement si possible
encryption = allow_incoming,try_outgoing,enable_retry

# Port de communication avec Flood
scgi_port = 127.0.0.1:5000

Ensuite, on créé et on donne les bonnes permissions aux différents répertoires :

sudo mkdir /répertoire/rtorrent/downloads
sudo mkdir /répertoire/rtorrent/.session
sudo chmod 775 -R /répertoire/rtorrent
sudo chown rtorrent:rtorrent -R /répertoire/rtorrent
sudo chown rtorrent:rtorrent /home/rtorrent/.rtorrent.rc

On créé un service rTorrent qui permettra de démarrer simplement le logiciel :

sudo vi /etc/systemd/system/rtorrent.service

Et on y insère le code suivant :

#!/bin/sh

[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

On active le service rTorrent et on démarre le logiciel :

sudo systemctl enable rtorrent.service
sudo systemctl start rtorrent

Voilà, vous avez maintenant un rTorrent fonctionnel et prêt à faire feu. Rendons le un peu plus sexy…

 

4. Installation et configuration de Flood

Flood c’est super sexy donc on va pas se priver et l’installer pour remplacer l’interface habituelle de rTorrent. Croyez moi, y’a pas photo c’est carrément mieux !

On commence par installer Node.js, un framework basé sur Javascript et avec lequel est développé Flood :

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs

On récupère ensuite Flood sur git et on le place dans le bon répertoire :

cd /répertoire/rtorrent
sudo git clone https://github.com/jfurrow/flood.git

Puis on prépare le fichier template :

cd flood
sudo cp config.template.js config.js

On l’édite :

sudo vi config.js

On modifie cette valeur :

floodServerHost: '0.0.0.0'

Et on active Flood :

sudo npm install --production

Même principe que pour rTorrent, on évite de lancer Flood avec un compte administrateur donc on créer un utilisateur dédié :

sudo adduser --disabled-password flood

Et on lui donne les droits sur le répertoire où est installé Flood :

sudo chown -R flood:flood /répertoire/rtorrent/flood/

On fait également en sorte que Flood soit un service afin de faciliter sa maintenance (Marche / Arrêt) :

sudo vi /etc/systemd/system/flood.service

On insère le code suivant :

#!/bin/sh

[Service]
WorkingDirectory=/répertoire/rtorrent/flood
ExecStart=/usr/bin/npm start
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=notell
User=flood
Group=flood
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

Et on active enfin le service :

sudo systemctl enable flood
sudo systemctl start flood

Voilà, votre seedbox est prête à faire feu et est joignable à l’adresse suivante : http://IP-DE-VOTRE-SERVEUR:5000

 

5. Configuration du reverse proxy avec Apache

Si vous possédez un nom de domaine et que vous préférez avoir http://VOTRE-DOMAINE.EXT au lieu de http://IP-DE-VOTRE-SERVEUR:5000 parce que ça fait plus propre mais également pour des raisons évidentes de sécurité, il faut maintenant configurer le reverse proxy.

Commençons par activer le module proxy_http pour apache :

sudo a2enmod proxy_http

Puis créons un fichier host pour définir les paramètres de notre interface :

sudo vi /etc/apache2/sites-available/mon-nom-de-domaine.conf

Y insérer :

<VirtualHost *:80>
ServerAdmin VOTRE_ADRESSE_EMAIL
ServerName VOTRE_NOM_DE_DOMAINE
ServerAlias VOTRE_NOM_DE_DOMAINE

ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:9092/
ProxyPassReverse / http://localhost:9092/
</VirtualHost>

Activez le fichier host et redémarrez Apache :

sudo a2ensite mon-nom-de-domaine.conf
sudo service apache2 reload

Voilà, votre seedbox est désormais accessible via l’adresse http://VOTRE_NOM_DE_DOMAINE

Si vous voulez passer le http en https, je vous invite à jeter un coup d’oeil à mon tutoriel sur Let’s Encrypt

0 comments

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.