Il est parfois pratique d’avoir un client bittorent à disposition. Dans cette note je détail l’installation de Transmission ainsi que la configuration de son interface web via Apache sur un serveur dédié sous Debian.
Installation
apt install transmission-daemon
Configuration
Edition du fichier de configuration :
vi /etc/transmission/settings.json
Lignes à modifier :
"download-dir": "/media/downloads",
"incomplete-dir": "/media/downloads",
"rpc-authentication-required": true,
"rpc-host-whitelist-enabled": false,
"rpc-password": "xxx",
"rpc-username": "torrent",
"rpc-whitelist-enabled": false,
Reload du service afin de prendre en compte la nouvelle configuration :
systemctl reload transmission-daemon
Warning : ne pas utiliser restart. Cela a pour effet de réinitialiser le fichier de configuration.
Création du sous domaine
L’idéee est de mettre à disposition l’interface web via une url de type https://torrent.domain.tld .
Un CNAME doit être ajouter dans les enregistrements DNS du registar :
torrent CNAME 10800 domain.tld.
Création du certificat
Comme nous souhaitons exposer le service via https, nous allons créer un certificat let’s Encrypt dédié. Le service Apache doit être stoppé pour cette opération.
systemctl stop apache2
certbot certonly --standalone -d torrent.domain.tld --rsa-key-size 4096
Configuration Apache
Le service web de transmission est disponible par défaut à l’adresse http://localhost:9091/transmission/web. Afin d’exposer le service vers l’extérieur à l’adresse https://torrent.domain.tld, un peu de configuration Apache est nécessaire. Création d’un vhost et définition d’un reverse proxy.
La première étape est de stopper Apache si ce n’est pas déjà fait.
systemctl stop apache2
Les modules Apache suivant doivent être activés :
a2enmod rewrite proxy proxy_http
Création du nouveau vhost dans /etc/apache2/sites-available :
vi torrent.conf
<VirtualHost *>
ServerName torrent.domain.tld
RewriteEngine On
RewriteCond %{SERVER_PORT} =80
RewriteRule ^/(.*)$ https://%{SERVER_NAME}:443/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
ServerName torrent.domain.tld
SSLCertificateFile /etc/letsencrypt/live/torrent.domain.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/torrent.domain.tld/privkey.pem
ProxyPass / http://torrent.domain.tld:9091/
ProxyPassReverse / http://torrent.domain.tld:9091/
</VirtualHost>
Activaiton du vhost et redémarage :
a2ensite torrent
systemctl stop apache2
Et voilà ! Si tout est correct, le client transmission est désormais disponible à l’adresse : https://torrent.domain.tld.