Transmission est le client BitTorrent installé par défaut sur Ubuntu. Il se veut intuitif, fonctionnel et très léger. Il dispose de fonctionnalités comme le chiffrement des échanges de données, l'échange de pairs, le support des blocklists, la limitation des débits en émission et en réception, etc. Il possède une interface graphique très épurée en GTK et d'une seconde en QT. Il est disponible sous licence GPLv2 ou X11.
Table des matières
Intégration de Transmission au launcher Unity
transmission-daemon et le fichier settings.json
Explication du fichier settings.json (avancé)
transmission-daemon et SSL via Apache
Générer mon certificat SSL via OpenSSL
Customiser transmission-daemon (Web-UI)
Restaurer le Web-UI original de transmission-daemon
•.Disposer des droits d'administration.
•.Disposer d'une connexion à Internet configurée et activée.
Transmission est le client BitTorrent par défaut d'Ubuntu. Si vous souhaitez l'utiliser sur d'autres variantes, il suffit d'installer le paquet transmission.
Veillez à ce que le port sélectionné dans Édition → Préférences → Réseaux soit ouvert (le port de base est le 51413). Vous pouvez vous servir de gufw pour configurer vos ports.
Il est possible d'ajouter une fonctionnalité à Transmission afin d'afficher une petite barre de progression et le nombre de téléchargements en cours sur sa tuile du launcher Unity, comme sur l'image ci-dessous.
Pour obtenir ce résultat, voici comment procéder :
2.Ouvrez un terminal et clonez le dépôt Git du projet avec la commande :
git clone https://github.com/kriomant/transmission-unity-launcher.git
3.Copiez le script Python cloné, dans le dossier /urs/local/bin, puis donnez-lui les droits d'exécution :
sudo cp transmission-unity-launcher/transmission-unity-launcher.py /usr/local/bin/
sudo chmod +x /usr/local/bin/transmission-unity-launcher.py
4.Créez les dossiers manquants dans votre HOME :
mkdir -p ~/.local/share/applications
5.Copiez le fichier icône de Transmission dans ce nouveau dossier :
cp /usr/share/applications/transmission-gtk.desktop ~/.local/share/applications/
6.Modifiez le contenu de ce fichier pour qu'il exécute automatiquement le script Python précédemment installé :
sed -i 's/^Exec=transmission-gtk/Exec=\/usr\/local\/bin\/transmission-unity-launcher.py transmission-gtk/' ~/.local/share/applications/transmission-gtk.desktop
7.Donnez-lui les droits d'exécution :
chmod +x ~/.local/share/applications/transmission-gtk.desktop
Il ne reste plus qu'à activer le plugin que vous venez d'installer. Pour cela, rendez-vous dans les préférences de Transmission (Édition → Préférences), onglet Accès à distance, et cochez la case Autoriser l'accès à distance.
Vérifiez que l'authentification est désactivée, et que l'adresse IP 127.0.0.1 est bien indiquée dans la zone Autoriser uniquement ces adresses IP : (la case correspondante doit être cochée) :
Transmission est une application complète comprenant service de téléchargement + interface de téléchargement + web UI depuis la version 1.30. Cela signifie que si vous installez aussi transmission-daemon, alors vous aurez 2 services de téléchargement et 2 web UI sur le même port ce qui cause des problèmes. Les deux applications ne se parlent pas ; donc, si vous ne comprenez pas un mot de ce charabia, installez uniquement Transmission.
Lancez l'application comme indiqué ici ou via le terminal (toutes versions ou variantes d'Ubuntu) avec la commande suivante :
transmission-gtk
Transmission-cli est une version ligne de commande. Pour l'utiliser, installez le paquet (si besoin) transmission-cli. Puis, tapez dans un terminal utilisez la commande :
transmission-cli /le/chemin/de/votre/fichier.torrent
Plusieurs options sont disponibles, afin de les connaître, tapez :
man transmission-cli
À noter que transmission-cli sauvegarde ses téléchargements dans le dossier où il a été lancé, par défaut votre Dossier personnel.
Transmission-create est fourni avec transmission-cli et s'utilise en ligne de commande, il permet de créer un torrent.
Pour créer un torrent, tapez dans un terminal :
transmission-create -o ~/le_torrent_cree.torrent -t http://le-tracker.fr/ -p -c "Mon commentaire" ~/Le_contenu_du_torrent
Voici les options que vous devez changer :
-o "destination" — Mettez le fichier .torrent désiré
-t "tracker" — L'adresse du tracker
-p — Défini si le torrent est privé (enlever dans la majorité des cas)
-c "commentaire" — Un commentaire associé (entièrement facultatif)
La destination peut-être un dossier ou un fichier, comme désiré.
Transmission-daemon est un service en fond pour gérer les téléchargements. Installez le paquet transmission-daemon (si besoin), et pour le lancer, tapez dans un terminal (ou en appuyant sur les touches Alt+F2) :
transmission-daemon
Transmission-daemon permet aussi d'avoir une interface Web pour gérer ses téléchargements lorsque transmission-gtk n'est pas installé comme sur une machine sans serveur graphique. Notez que Transmission-daemon a sa propre instance indépendante de toute autre installation de Transmission.
Pour connaître les différentes options, tapez :
transmission-daemon --help
Pour lancer1) ou arrêter2) le daemon, tapez :
sudo systemctl start|stop transmission-daemon.service
Le fichier de conf se trouve dans « /var/lib/transmission-daemon/info/settings.json », ne pas oublier de couper le daemon pendant son édition si vous ne voulez pas que les modifications soient écrasées !
Si vous n'avez jamais lancé transmission-daemon, veuillez utiliser la commande suivante :
sudo systemctl start transmission-daemon.service
cette commande va permettre de lancer transmission-daemon et par ce fait, créer votre ~/.config/transmission-daemon/
Ici nous aborderons une configuration dite «minimale», car comme vous avez pu le constater le settings.json a énormément d'options, si vous voulez en savoir plus je vous invite sur EditConfigFiles.
Pour que transmission-daemon fonctionne correctement il vous faudra éditer votre fichier ~/.config/transmission-daemon/settings.json avec les options suivantes:
Les options3) | Les explications |
"rpc-username": | Le nom de l'utilisateur. |
"rpc-password": | Le mot de passe. |
"rpc-whitelist-enabled": | Active ou non la limitation d’accès aux IPS spécifiées dans rpc-whitelist. |
"rpc-enabled": | Activer le Web-UI. |
"rpc-authentication-required": | Activer l'authentification du Web-UI. |
"download-dir": | Dossier où seront stockés les données téléchargées. |
"rpc-whitelist": | Liste d’adresses IP autorisés à accéder à l’interface web, séparées par des virgules, le caractère * permet de définir une plage d’adresse (192.168.*.*). |
"incomplete-dir": | Dossier où seront stockés temporairement les données en cours de téléchargement. |
"dht-enabled": | Vous devez mettre cette valeur à false pour désactiver le DHT de votre daemon. |
"pex-enabled": | Vous devez mettre cette valeur à false pour désactiver le PEX de votre daemon. |
Quand toutes les options seront configurées, il vous restera plus qu'à faire :
sudo systemctl start transmission-daemon.service
Votre Seedbox sera alors accessible via:
http://votreip:9091/transmission/web/
Si votre Seedbox n'est pas accessible, ceci voudra sûrement dire que vous avez un firewall, il vous faudra donc ouvrir le port 9091/ en entrée, vous devez également ouvrir le port du peer-port en /UDP.
Les options | Les explications |
"blocklist-enabled": "true" | Activer la blocklist (optionnel). |
"blocklist-url": | L' de la blocklist (si active). |
"dht-enabled": "false" | Désactiver le DHT. |
"download-dir:" | Le dossier de téléchargement. |
"download-queue-enabled:" | Activer la file d'attente. |
"download-queue-size:" | À modifier en fonction de votre ratio. |
"idle-seeding-limit-enabled": "true/false" | Mettre en pause ou non, les torrents qui ne seed pas en continue. |
"incomplete-dir": | Dossier des torrents incomplets. |
"incomplete-dir-enabled": "true/false" | Activer ou désactive le dossier incomplet. |
"lpd-enabled": "true/false" | Active/désactive le LPD. |
"peer-port": "51413" | Le port pour les échanges (à modifier à votre convenance et ne pas oublier de l'ouvrir dans le firewall). |
"peer-port-random-on-start": "true/false" | Activer/désactiver le port aléatoire au démarrage. |
"pex-enabled": "true/false" | Activer/désactiver le PEX. |
"ratio-limit-enabled": "true/false" | Activer/désactiver la limite du ratio. |
"rpc-authentication-required":"true/false" | Activer/désactiver l'authentification du Web-UI. |
"rpc-bind-address": "0.0.0.0" | Adresse sur lesquels activer le Web-UI (0.0.0.0 pour toutes les adresses) |
"rpc-enabled": "true/false" | Activer le Web-UI. |
"rpc-password": "votre_mot_de_passe" | Le mot de passe (à votre guise, il sera chiffré au prochain redémarrage du service). |
"rpc-port": "9091" | Le port pour accéder au Web-UI (à modifier à votre convenance et ne pas oublier de l'ouvrir dans le firewall). |
"rpc-username": "beaver" | Votre identifiant (à votre guise). |
"rpc-whitelist": "ip list" | Liste d’adresses IP autorisées à accéder à l’interface web, séparées par des virgules, le caractère "*" permet de définir une plage d’adresse (192.168.*.*). |
"speed-limit-down": "6000" | Limite de débit en download (ici 6Mo/s, à adapter). |
"speed-limit-down-enabled": "true/false" | Activer/désactiver la limite. |
"speed-limit-up": "6000" | Limite de débit en upload (ici 6Mo/s, à adapter). |
"speed-limit-up-enabled": "true/fase" | Activer/désactiver la limite. |
"start-added-torrents": "true/false" | Démarrer ou non les torrents à l'ajout. |
Pour utiliser SSL avec votre daemon, vous devez créer votre certificat SSL (auto signé dans cet exemple), et modifier 3/4 lignes de votre VirtualHost.
Pour créer son certificat SSL auto signé nous allons utiliser l'outil OpenSSL, il est aussi possible d'installer le paquet ca-certificates en complément de OpenSSL, mais ça ne semble pas utile dans le cas d'un certificat auto-signé.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key
Les explications :
•.-x509 -nodes est le type de certificat voulu4).
•.-days 365 est la durée de validité (en jours) de notre certificat.
•.-newkey rsa:2048 génère une clé RSA de 2048 bits.
•.-out /etc/apache2/server.crt est le chemin absolu de notre certificat.
•.-keyout /etc/apache2/server.key est le chemin absolu de notre clé privée.
Voici pour les explications de la commande, maintenant nous devons ajouter/modifier notre VirtualHost.
sudo nano /etc/apache2/sites-available/transmission.conf
Et on y insère ceci:
<VirtualHost *:443>
ServerName votredomaine.org
SSLEngine on
SSLProxyEngine On
SSLCertificateFile /etc/apache2/server.crt
SSLCertificateKeyFile /etc/apache2/server.key
<IfModule mod_proxy.c>
#turning ProxyRequests on and allowing proxying from all may allow
#spammers to use your proxy to send email.
ProxyRequests Off
<Proxy *>
AddDefaultCharset off
Order Allow,Deny
Allow from all
</Proxy>
ProxyPass /transmission http://localhost:votreportrpc/transmission
ProxyPassReverse /transmission http://localhost:votreportrpc/transmission
# Line below is optional
Redirect permanent /transmission https://votrendd.tld/transmission/web/
</IfModule>
</VirtualHost>
Si la précédente configuration ne fonctionne pas pour vous, vous pouvez tester la suivante :
SSLProxyEngine On
SSLCertificateFile /etc/apache2/server.crt
SSLCertificateKeyFile /etc/apache2/server.key
ProxyPass /transmission http://localhost:9091/transmission
ProxyPassReverse /transmission http://localhost:9091/transmission
Nous chargeons ensuite le module SSL de Apache, ainsi que les modules pour le Reverse Proxy :
sudo a2enmod ssl proxy proxy_http
On charge notre VirtualHost:
sudo a2ensite transmission
On relance Apache:
sudo systemctl restart apache2.service
On ouvre notre navigateur web et on y insère ceci:
https://votrendd.tld/transmission/web/
Une interface Web permet de contrôler Transmission. Depuis la version 1.30, elle est intégrée ainsi qu'un mini serveur web dans l'application transmission. Cela signifie qu'il vous suffit de l'activer dans les préférences et de vous rendre à l'adresse :
http://localhost:9091/transmission/web/
git clone https://github.com/endor/kettu.git web
On se retrouve donc avec un dossier web, nous devons déplacer ce dossier dans /usr/local/share/transmission
Mais avant nous allons faire un backup du dossier web actuel pour se faire on ferra:
mkdir backupwebui && sudo mv /usr/local/share/transmission/web backupwebui/
Ensuite il suffit de déplacer notre dossier web qu'on a git:
sudo mv web/ /usr/local/share/transmission/
On recharge notre page de notre navigateur internet, et vous aurez quelque chose de semblable à ceci:
On récupère la dernière version de Transmission Web Control:
wget https://github.com/ronggang/transmission-web-control/raw/master/release/transmission-control-full.tar.gz
On décompresse l'archive :
tar xvzf transmission-control-full.tar.gz
On se retrouve donc avec un dossier web, nous devons déplacer ce dossier dans:
/usr/share/transmission/
Mais avant nous allons faire un backup du dossier web actuel pour se faire on ferra:
mkdir backupwebui && sudo mv /usr/share/transmission/web backupwebui/
Ensuite il suffit de déplacer notre dossier web qu'on a wget:
sudo mv web/ /usr/share/transmission/
On refresh notre page de notre navigateur internet, et vous aurez quelque chose de semblable à ceci:
Si vous avez déjà accédé à l'interface web de base auparavant sur la même machine, pensez à nettoyer le cache de votre navigateur si l'ancienne interface s'affiche.
On récupère la dernière version de Transmission Web Control:
git clone https://github.com/killemov/Shift.git web
On se retrouve donc avec un dossier web, nous devons déplacer ce dossier dans:
/usr/local/share/transmission
Mais avant nous allons faire un backup du dossier web actuel pour se faire on ferra:
mkdir backupwebui && sudo mv /usr/local/share/transmission/web backupwebui/
Ensuite il suffit de déplacer notre dossier web qu'on a git:
sudo mv web/ /usr/local/share/transmission/
Le projet se trouve ici.