Table des matières

Rtorrent

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.

Rtorrent

Installation

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.

Configuration

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

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

Lancement automatiquement de Rtorrent

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