Nous allons voir comment installer rtorrent sur notre serveur, ainsi qu’une interface web, flood. Rtorrent ne doit évidemment pas servir à télécharger des films, le piratage c’est mal, tout ça tout ça.
Pour Rtorrent, c’est simple, il suffit d’installer la version présente dans les dépôts Debian avec la commande
sudo aptitude install rtorrent screen
Si vous êtes sous une autre distribution que Debian, vérifiez bien que le package rtorrent présent dans vos dépôt est compilé avec xmlrpc-c. Si ce n’est pas le cas il faudra que vous le compiliez vous-même vu que Flood en a besoin.
Créez un fichier .rtorrent.rc et collez cette config :
# This is an example resource file for rTorrent. Copy to # ~/.rtorrent.rc and enable/modify the options as needed. Remember to # uncomment the options you wish to enable. # Log file log.open_file = "rtorrent",/home/user/rtorrent.log log.add_output = "debug", "rtorrent" # Default directory to save the downloaded torrents. directory = /home/user/torrent # Default session directory. Make sure you don't run multiple instance # of rtorrent using the same session directory. Perhaps using a # relative path? session = /home/user/.session # Port range to use for listening. port_range = 56001-56005 # Start opening ports at a random position within the port range. port_random = no # UDP port to use for DHT. # dht_port = 6881 scgi_local = /home/user/rpc.socket execute.nothrow = chmod,770,/home/user/rpc.socket
Pensez à changer “user” par l’utilisateur qui va lancer rtorrent.
Il faut que répertoire indiqué après “directory =” existe, pensez donc à le créer.
Tel que configuré, Rtorrent va créer un fichier socket au démarrage et c’est via ce socket que les interfaces web vont pouvoir communiquer avec Rtorrent. Il faut bien évidemment que l’utilisateur qui va lancer Rtorrent ait les droits de créer le socket dans le répertoire indiqué après “scgi_local =”.
Flood est une interface moderne avec une gestion d’utilisateur intégrée et fonctionnant via Node.js.
Pour fonctionner, Flood va avoir besoin de Node.js et Npm. Installer les avec la commande
sudo aptitude install nodejs npm
Installez ensuite Flood avec la commande
sudo npm i -g flood
On va maintenant créer un script systemd avec la commande
sudo nano /etc/systemd/system/flood.service
Le contenu du fichier doit ressembler à ça :
[Unit] Description=Flood Web UI After=network.target [Service] WorkingDirectory=~ ExecStart=/usr/local/bin/flood -h 0.0.0.0 -p 3001 --allowedpath /home/user/ User=user LogLevelMax=3 [Install] WantedBy=multi-user.target
Modifiez “user” par l’utilisateur qui exécutera Flood et allowedpath par le chemin où vous stockerez vos fichiers. Je vous conseille d’utiliser le même utilisateur que pour Rtorrent, vous n’aurez ainsi pas d’ennui d’accès au socket.
Ouvrez le port 3001 pour pouvoir accéder à Flood et tout est configuré.
Vous pouvez accéder à Flood en tapant “votreadresseip:3001” dans votre navigateur. Il vous sera demandé de créer un compte puis d’indiquer chemin du socket Rtorrent. Si vous avez plusieurs instances Rtorrent, vous pouvez créer d'autres utilisateur Flood dans le menu Paramètres > Authentification
Si vous voulez pouvoir lancer rtorrent en arrière plan, voici un petit script qui fait l’affaire. Vous devez par contre avoir Screen d’installé pour qu’il fonctionne :
[Unit] Description=rTorrent After=network.target [Service] Type=forking KillMode=none User=user ExecStartPre=/bin/bash -c "if test -e %h/.session/rtorrent.lock && test -z `pidof rtorrent`; then rm -f %h/.session/rtorrent.lock; fi" ExecStart=/usr/bin/screen -dmfa -S rtorrent /usr/bin/rtorrent >> /home/user/rtorrent.log ExecStop=/bin/bash -c "test `pidof rtorrent` && killall -w -s 2 /usr/bin/rtorrent" WorkingDirectory=~ [Install] WantedBy=multi-user.target
Il faudra que vous changiez le nom d’utilisateur dans le script.
Il faut copier le script dans le fichier :
/etc/systemd/system/rtorrent.service
Pour lancer rtorrent, il faut utiliser la commande
sudo systemctl start rtorrent.service
Et pour qu’il se lance au démarrage c’est la commande
sudo systemctl enable rtorrent.service
Si vous avez plusieurs sessions de Rtorrent, il faudra créer autant de script que vous avez de session et changer l’utilisateur dans le script.
Ce script provient de https://wiki.archlinux.org