Debian 10 64 Bits – Installation Transmission

Auteur : Vince NADUS
Date de publication : July 23, 2021
serveurs transmission web APACHE

Voici une guide sur l’installation d’une seedbox basé sur Transmission, avec son interface web, et avec le serveur web de votre choix. En bonus, nous configurerons une connexion HTTPS vers votre seedbox. (pensez à let’s encrypt).


Procédure

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-get install transmission-deamon

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 redémarrer le démon transmission avec la commande, un restart n’est en aucune façon nécessaire. :
systemctl reload transmission-daemon
Attention : Le restart remet la configuration du json à zéro !!!

Transmission est maintenant accessible à cette adresse : http://IP_SERVEUR:9091/transmission/web/

Si vous tentez d’y accéder, vous aurez une erreur vous indiquant que vous n’avez pas les droits nécessaire pour 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 suivant les « // » dans votre configuration)

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.

Une fois la configuration achevée, vous pouvez commencer à télécharger/partager !

Serveur web

L’installation et la configuration de Transmission étant terminé, il ne reste plus qu’a configurer votre serveur web favoris pour accéder à la seedbox en HTTPS via un nom de domaine

Pré-requis

Voici les quelques pré-requis avant la configuration du serveur web de votre choix :

  • Faire pointer son sous-domaine (ou domaine) en A(avec NAT)(ou AAAA) sur l’IP de la seedbox
  • Faire pointer son sous-domaine (ou domaine) en AAAA sur l’IP de la seedbox
  • Installer Apache ou Nginx
  • Générer un certificat pour son domaine avec Let’s Encrypt (ou acme-tiny)

Il nous faut modifier la configuration de Transmission pour que le démon n’écoute qu’en local :

« rpc-bind-address »: « 127.0.0.1 »,

Reverse proxy HTTPS avec Nginx

Dans cet exemple nous prenons en compte que vous utilisez Nginx et que votre domaine est subdomain.domain.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 subdomain.domain.fr; return 301 https://subdomain.domain.fr$request_uri; access_log /dev/null; error_log /dev/null; } server { listen 443 ssl http2; server_name subdomain.domain.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/subdomain.domain.fr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/subdomain.domain.fr/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/subdomain.domain.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; }

Reverse proxy HTTPS avec Apache

Dans cet exemple nous prenons en compte que vous utilisez Apache et que votre domaine est subdomain.domain.fr

La configuration sera à placer dans /etc/apache2/sites-available/subdomain.domain.fr.conf (ou /etc/httpd/sites-available/subdomain.domain.fr.conf, si vous êtes sur CentOS) :

NameVirtualHost *:80 NameVirtualHost *:443 <VirtualHost *:80> ServerAdmin admin@admin.admin ServerName subdomain.domain.fr ErrorLog logs/subdomain.domain.fr-error_log CustomLog logs/subdomain.domain.fr-access_log common RewriteEngine On RewriteCond %{SERVER_PORT} =80 RewriteRule ^/(.*)$ https://%{SERVER_NAME}:443/$1 [R,L] </VirtualHost> <VirtualHost *:443> ServerAdmin admin@admin.admin ServerName subdomain.domain.fr ErrorLog logs/subdomain.domain.fr-ssl_error_log CustomLog logs/subdomain.domain.fr-ssl_access_log common SSLEngine On SSLCertificateFile « /etc/pki/tls/certs/mon_certificat.crt » SSLCertificateKeyFile « /etc/pki/tls/private/mon_certificat.key » ProxyPass / http://IP_SERVER:9091/ ProxyPassReverse / http://IP_SERVER:9091/ </VirtualHost>

Activons ensuite les modules mod_ssl, proxy et proxy_http :

a2enmod mod_ssl a2enmod proxy a2enmod proxy_http systemctl restart apache2.service

Accès à l’interface web

Il ne vous reste plus qu’à joindre votre seedbox avec le lien https://subdomain.domain.fr

Puis d’entrée les identifiants du compte