Seedbox : installer le client torrent Transmission sous Debian et Ubuntu
Étant en pleine migration de mon dédié SoYouStart vers un VPS PulseHeberg pour ma seedbox, j’en profite pour écrire une série de tutoriel lié à l’installation de celle-ci.
Transmission est un client qui permet de télécharger des fichiers torrent. Il est disponible sur un grand nombre de plateformes sous la forme un client « lourd », un outil en ligne de commande, ou encore un service en arrière plan, ce qui nous intéresse ici pour notre seedbox.
C’est un client qui existe depuis 11 ans et qui est très stable. Il n’a pas énormément de fonctionnalités, mais c’est mon client préféré parce que c’est une valeur sûre, « ça juste marche © »
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
C’est probablement le client qui s’installe le plus facilement, puisqu’il est disponible sous forme de paquet dans les dépôts.
apt install transmission-daemon
Configuration
Ensuite, on va pouvoir modifier le fichier de configuration ici :
nano /etc/transmission-daemon/settings.json
Attention : une fois les modifications effectuées, il faudra faire service transmission-daemon reload
et non pas restart
. En effet, pour une raison obscure, si vous faites restart
, le fichier de conf va se réinitialiser…
Transmission sera accessible à cette adresse : http://IP_DU_SERVEUR:9091/transmission/web/.
Vous aurez une erreur vous indiquant que vous n’avez pas le droit d’y accéder. En effet la page est protégé par une whitelist d’IPs et une authentification par utilisateur et mot de passe.
Il va falloir aller chercher ici dans la conf :
"rpc-authentication-required": true, // Activation de l'auth par mot de passe "rpc-bind-address": "0.0.0.0", // 127.0.0.1 pour écouter en local "rpc-enabled": true, // Activation de l'interface web "rpc-password": "MOT_DE_PASSE", // Tapez votre mot de passe, il sera salé au reload "rpc-port": 9091, // Port d'écoute "rpc-url": "/transmission/", // Correspond à l'URL d'accès "rpc-username": "UTILISATEUR", // Nom d'utilisateur pour l'auth "rpc-whitelist": "127.0.0.1", // IPs à whitelist "rpc-whitelist-enabled": true, // Activation de la whitelist
(Attention à ne pas mettre les commentaires et // dans votre conf, ça marchera pas)
Le reste des options dans la configuration concerne les dossiers de téléchargement, le ratio de partage, la vitesse, les slots, les peers, etc.. Vous trouverez une explication complète du fichier ici.
Pour que les modifications soient prisent en compte :
service transmission-daemon reload
(Surtout pas de stop/start ou de restart : ça reset la conf.)
Une fois que vous avez configuré transmission à votre goût, vous pouvez commencer à télécharger !
Configurer un reverse proxy HTTPS avec Nginx
Tant qu’on y est, autant faire les choses proprement, et accéder à notre seedbox en HTTPS via un nom de domaine 🙂
Pré-requis :
- Faire pointer son domaine ou sous-domaine en A (ou AAAA) sur l’IP de la seedbox
- Installer Nginx
- Générer un certificat pour son domaine avec Let’s Encrypt
On va faire en sorte que Transmission n’écoute qu’en local :
"rpc-bind-address": "127.0.0.1",
Ensuite, on configure Nginx. Dans cet exemple ce sera pour le domaine seedbox.hadopi.fr
.
La configuration sera à placer dans /etc/nginx/conf.d/seedbox/conf
ou /etc/nginx/sites-enabled/seedbox.conf
, selon votre version de Nginx.
upstream transmission { server 127.0.0.1:9091; } server { 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; server_name seedbox.hadopi.fr; access_log /var/log/nginx/seedbox-access.log; error_log /var/log/nginx/seedbox-error.log; location / { return 301 https://$server_name/transmission/; } location ^~ /transmission { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header Connection ""; proxy_pass_header X-Transmission-Session-Id; location /transmission/rpc { proxy_pass http://transmission; } location /transmission/web/ { proxy_pass http://transmission; } location /transmission/upload { proxy_pass http://transmission; } location /transmission/web/style/ { alias /usr/share/transmission/web/style/; } location /transmission/web/javascript/ { alias /usr/share/transmission/web/javascript/; } location /transmission/web/images/ { alias /usr/share/transmission/web/images/; } location /transmission/ { return 301 http://$server_name/transmission/web; } } 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.fr/chain.pem; ssl_protocols TLSv1.2; ssl_ecdh_curve secp384r1; ssl_ciphers EECDH+AESGCM:EECDH+AES; ssl_prefer_server_ciphers on; resolver 80.67.169.12 80.67.169.40 valid=300s; resolver_timeout 5s; ssl_stapling on; ssl_stapling_verify on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_session_tickets off; }
La configuration HTTPS est tiré de mon article sur le sujet.
Et voilà, profitez bien !
Image de une par Revista Espírito Livre.
Dernière modification le 17 décembre 2017.
Salut, je souhaite connaitre ton avis sur une configuration au niveau d’iptable.
je souhaite que transmission soit uniquement joignable lorsque je suis connecté à mon serveur à travers mon vpn (openvpn)
Ainsi, pour la règle iptable j’ai utilisé celle-ci :
iptables -A INPUT -i tun0 -p tcp –destination-port 9091 -j ACCEPT
Et celle-ci
iptables -A INPUT -i tun0 -p tcp –destination-port 51413 -j ACCEPT
ceci fait que je peux accéder à transmission uniquement lorsque je suis connecté à mon vpn.
Est-ce que d’un point de vue sécurité il y a un risque ?
Merci !
Petite question un peu (longtemps après) : comment je gère les drotis du daemon-transmission :
Je souhaite que les données soit écrite dans un répertoire indexé par plex … Je commence à regarder.
Comment dans les options de transmission utiliser un compte système pour s’authentifier ? Enfin quelle option faut-il activer …
Pendant ce temps, je vais réfléchir à ces uestions …
Merci pour l’article !
Bonjour !
Merci pour ce super tuto ! Clair et simple !
J’aimerai savoir où sont stockés les fichiers torrents car je dois modifier l’adresse de mon tracker et je ne trouve rien dans le settings.json.
Si vous aviez une piste.
D’avance merci.
AGM
Bonjour,
Merci pour le tuto, j’ai réussi a installer transmission sur mon dédié, mais comment fait on lorsqu’on a une IP dynamique pour se connecter sur (http://IP_DU_SERVEUR:9091/transmission/web/)? mon IP dans ./etc/transmission-daemon/settings.json n’est plus bonne du coup, une fois mon PC redémarré. Merci pour ton aide.
Tu utilises l’authentification par mot de passe 🙂
As-tu déjà essayé Transmission Remote Gui ? Je l’utilise depuis des années avec mon daemon transmission : https://sourceforge.net/projects/transgui/
Le client desktop de Transmission le fait aussi, mais bon ça apporte pas grand chose, en tout cas pour moi 🙂
Bonjour,
Aurais-tu une solution (ou fera-tu un tutoriel) sur comment streamer une fois téléchargé un film ?
C’est prévu 🙂 (Plex/Emby)
Super ! J’ai hâte de voir ton tutoriel sur emby !
Il y a une faute dans ta première commande 😉
Ah merci 🙂
Salut
Normale que un restart efface tout les modif.
En faite quand tu arrête transmission il réécris sa config qui et en mêmoire.