Depuis la dernière mise à jour d’Ubuntu Server, le daemon transmission ne fonctionne plus correctement : il ne démarre plus de manière stable et les téléchargements ne se lancent que pendant cette période où il tente de se lancer.
J’ai passé pas mal de temps à essayer de résoudre le problème, mais les mises à jour de transmission sont vraiment très espacées et il est fort probable que le projet ne soit plus maintenu dans quelque temps
Il est donc temps de passer à un nouveau daemon bittorrent, qui se veut léger, rapide et efficace : deluge. Voici donc un tutoriel pour installer deluge sur Ubuntu Server pour créer une seedbox bittorrent.
Qu’est-ce qu’une seedbox ?
Une seedbox est un serveur informatique privé dédié au stockage, au téléchargement et à l’émission de fichiers numériques. Généralement, les seedboxes utilisent le protocole BitTorrent pour émettre et recevoir des données. Ces serveurs sont connectés à des réseaux à très haut débit symétrique, allant de 100 Mbit/s à 1 Gbit/s ou plus, selon l’option choisie.
Les principaux avantages d’une seedbox sont :
- Vitesse : les seedboxes peuvent télécharger et partager des fichiers à des vitesses très élevées, bien supérieures à celles d’une connexion Internet domestique classique.
- Sécurité : l’utilisation d’une seedbox permet de masquer votre adresse IP personnelle, offrant ainsi une meilleure protection de votre vie privée.
- Disponibilité : une seedbox fonctionne 24h/24 et 7j/7, même lorsque votre ordinateur personnel est éteint.
- Gestion de l’espace : les fichiers sont stockés sur le serveur distant, libérant ainsi de l’espace sur votre propre machine.
Dans le cadre de notre tutoriel, nous allons utiliser Deluge, un client BitTorrent open-source populaire, pour configurer notre seedbox sur un serveur Ubuntu.
Installation de deluge
Création de l’utilisateur UNIX et des répertoires deluge
Créons l’utilisateur deluge
, qui appartient au groupe deluge
, et dont le répertoire d’utilisation est /home/deluge
:
sudo adduser --system --gecos "Deluge Service" --disabled-password --group --home /home/deluge deluge
Code language: JavaScript (javascript)
Résultat :
info: Selecting UID from range 100 to 999 ...
info: Selecting GID from range 100 to 999 ...
info: Adding system user `deluge' (UID 124) ...
info: Adding new group `deluge' (GID 133) ...
info: Adding new user `deluge' (UID 124) with group `deluge' ...
info: Creating home directory `/home/deluge' ...
Code language: PHP (php)
Créons maintenant les répertoires nécessaires, avec les bonnes permissions :
# Create data dirs
sudo install -d -o deluge -g deluge -m 750 /home/deluge/{completed,torrents}
# Config dirs must be private
sudo install -d -o deluge -g deluge -m 700 /home/deluge/.config /home/deluge/.config/deluge
# Ensure ownership across the tree (no blanket chmod)
sudo chown -R deluge:deluge /home/deluge
# Tighten perms: dirs 750, files 640 (except the config dir)
sudo find /home/deluge -type d ! -path "/home/deluge/.config/deluge*" -exec chmod 750 {} \;
sudo find /home/deluge -type f ! -path "/home/deluge/.config/deluge*" -exec chmod 640 {} \;
# Config stays stricter
sudo chmod 700 /home/deluge/.config /home/deluge/.config/deluge
Code language: PHP (php)
Installation de deluge
Installons deluge sur notre serveur :
sudo add-apt-repository ppa:deluge-team/stable
sudo apt update && sudo apt upgrade
sudo apt install deluged deluge-web
Cela installe le daemon deluge et son webui, pour pouvoir y accéder depuis un navigateur.
Configurons les fichiers logs :
sudo install -d -o deluge -g deluge -m 750 /var/log/deluge
sudo -u deluge touch /var/log/deluge/web.log /var/log/deluge/daemon.log
sudo chown deluge:deluge /var/log/deluge/*.log
sudo chmod 640 /var/log/deluge/*.log
Code language: JavaScript (javascript)
Éditions maintenant le fichier deluged.service
pour systemd
:
sudo nano /etc/systemd/system/deluged.service
On y ajoute:
[Unit]
Description=Deluge Bittorrent Client Daemon
After=network-online.target
[Service]
Type=simple
User=deluge
Group=deluge
UMask=007
ExecStart=/usr/bin/deluged -d -l /var/log/deluge/daemon.log -L warning
Restart=on-failure
[Install]
WantedBy=multi-user.target
Code language: JavaScript (javascript)
Enregistrez le fichier et quittez.
Éditons maintenant /etc/systemd/system/deluge-web.service
:
nano /etc/systemd/system/deluge-web.service
Et on y ajoute :
[Unit]
Description=Deluge Bittorrent Client Web Interface
After=network-online.target
[Service]
Type=simple
User=deluge
Group=deluge
UMask=027
ExecStart=/usr/bin/deluge-web -d -i 127.0.0.1 -p 8112 -l /var/log/deluge/web.log -L warning
Restart=on-failure
[Install]
WantedBy=multi-user.target
Code language: JavaScript (javascript)
Et on démarre tous les services deluge:
sudo systemctl daemon-reload
sudo systemctl restart deluged
sudo systemctl restart deluge-web
Il ne nous reste plus qu’à configurer la rotation des logs en créant le fichier /etc/logrotate.d/deluge
avec le contenu suivant:
/var/log/deluge/*.log {
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
systemctl restart deluged >/dev/null 2>&1 || true
systemctl restart deluge-web >/dev/null 2>&1 || true
endscript
}
Code language: JavaScript (javascript)
Configuration de NginX en reverse-proxy pour deluge-web
Sécurisons notre instance deluge avec htpassword:
sudo sh -c 'printf "webui:$(openssl passwd -apr1)\n" > /etc/nginx/.htpasswd-deluge'
Code language: JavaScript (javascript)
Ensuite, tapez votre mot de passe dans l’invite de commande :
Password:
Verifying - Password:
On renforce les permissions du nouveau fichier :
sudo chown root:root /etc/nginx/.htpasswd-deluge
sudo chmod 640 /etc/nginx/.htpasswd-deluge
On édite notre snippet dédié à deluge
:
nano /etc/nginx/snippets/deluge.conf
Et on y ajoute:
############
### Deluge ###
############
# 301 to canonical trailing slash
location = /deluge { return 301 /deluge/; }
# Main proxy block
location ^~ /deluge/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd-deluge;
proxy_pass http://127.0.0.1:8112/;
proxy_http_version 1.1;
proxy_set_header X-Deluge-Base "/deluge/";
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# sensible timeouts + rate limit
proxy_read_timeout 3600s;
# uploads of .torrent files (bump if you like)
client_max_body_size 20m;
# clickjacking & MIME hardening
add_header X-Frame-Options DENY always;
add_header X-Content-Type-Options nosniff always;
}
Code language: PHP (php)
Sauvons le fichier et redémarrons nginx
:
service nginx restart
Configuration de deluge avec le WebUI
1. Visitons notre URL qui se termine par /deluge/
puisque c’est ce que nous avons défini dans notre server block NginX.
2. Changez le mot de passe par défaut (qui est deluge) pour un mot de passe fort et unique.
3. Donnez les bons chemins dans l’onglet Downloads :

Mettons :
/home/deluge
pour le répertoire par défaut,/home/deluge/completed
pour les fichiers téléchargés et complétés,/home/deluge/torrents
pour stocker les fichiers.torrent
4. Dans l’onglet Queue, limitons un peu le seed:

Mettons:
- tous les réglages de Seeding Rotation à 0
- le Share Ratio à 0 et ensuite Remove torrent
Envoyer les fichiers torrent à notre instance deluge
Le moyen le plus simple et le plus transparent de gérer les téléchargements de fichier .torrent reste de les envoyer directement sur le serveur, sans avoir à les télécharger sur notre machine.
Pour ce faire, nous utilisons l’extension Firefox Torrent Control, qui est capable de gérer les liens torrent et magnet des interfaces web des clients BitTorrent les plus populaires : BiglyBT, Cloud Torrent, Deluge, Flood, ruTorrent, Synology Download Station, Tixati, Transmission, tTorrent, µTorrent, Vuze et qBittorrent.ss -ltnp | grep ‘:8112’
Une fois l’extension installée, il suffit de faire un petit tour dans ses options pour y ajouter les informations de votre client bittorrent :

Conclusion
Voilà, il ne vous reste plus qu’à lancer les téléchargements, directement depuis votre navigateur avec un clic droit → Torrent Control → Add torrent. Simple et efficace !
Des obstacles techniques ? Je trouve des solutions sur-mesure pour que votre site WordPress/WooCommerce fonctionne sans accroc.