[NAS] Installer Transmission en passant par Docker

En passant à la nouvelle version de DSM sur mon NAS Synology DS920+, je souhaitais conserver Transmission. Cependant, le paquet natif proposé par SynoCommunity n’est pas encore prêt, notamment à cause des nouvelles restrictions de sécurité.

Je me suis donc basé sur un très bon article rédigé par Marius Bogdan Lixandru : How to install Transmission on your Synology NAS. La solution est donc de passer par un conteneur Docker et de réaliser l’installation en exécutant une simple commande. J’en ai profité pour adapter celle-ci par rapport à mon utilisation.

Pré-requis

Il faut évidemment installer Docker sur votre NAS depuis le Centre de paquets. Une fois installé, un nouveau dossier sera créé.

Depuis DSM ouvrez File Station et allez dans le dossier docker. Créez-y le sous-dossier transmission. Ouvrez ce dernier puis créez cette fois trois sous-dossiers:

  • data
  • downloads
  • watch

Ce qui donne la structure suivante:

NAS transmission: Dossiers Docker

On peut alors passer à l’étape suivante.

Installer Transmission sur votre NAS

Pour effectuer l’installation, il faudra exécuter une commande. Vous pouvez effectuer cela en ouvrant une connexion SSH sur votre NAS. Cependant on peut aussi lancer une commande via… le planificateur de tâches!

NAS transmission: Créer une tâche

Lors de la création choisissez l’exécution en tant que root dans l’onglet Général.

Voici la commande à lancer:

docker run -d --name=transmission \
	-p 9091:9091 \
	-p 51413:51413 \
	-p 51413:51413/udp \
	-e PUID=1026 \
	-e PGID=100 \
	-e USER=user \
	-e PASS=password \
	-e TZ=Europe/Brussels \
	-e TRANSMISSION_WEB_HOME=/flood-for-transmission/ \
	-v /volume1/docker/transmission/data:/config \
	-v /volume1/docker/transmission/downloads:/downloads \
	-v /volume1/docker/transmission/watch:/watch \
	--restart always \
	ghcr.io/linuxserver/transmission

Quelques informations qui nécessitent notre attention:

  • Le commutateur « p » permet de déterminer les ports à utiliser sur le système par rapport à ceux utilisés par le conteneur (mapping des ports).
  • Le commutateur « e » permet de définir des variables d’environnement.

Les variables PUID et PGID sont respectivement les identifiants d’utilisateur et de groupe. Ils peuvent être obtenus à l’aide de la commande « id ». Vous ne savez pas comment faire? Vous pouvez suivre le tutoriel ici.

Si vous définissez USER et PASS, ils vous seront demandés lors de la connexion à l’interface web (ou via RPC). Ces paramètres sont facultatifs, bien que recommandés.

La variable TZ permet de définir le fuseau horaire. Dans notre cas nous avons choisi Europe/Bruxelles.

Enfin la variable TRANSMISSION_WEB_HOME (c’est optionnel) permet de définir le thème à utiliser pour l’interface web. On a le choix entre Combustion, Transmission Web Control, Kettu et Flood for Transmission.

  • Le commutateur « v » permet de lier un dossier de votre volume à un dossier du conteneur.

On enregistrera la configuration dans le dossier data créé lors de la première étape. Quant aux téléchargements nous les stockerons dans downloads.

  • On définit également la politique de redémarrage (voir la documentation). Ainsi on peut faire en sorte que le conteneur redémarre automatiquement lorsqu’il est planté.
  • L’image Docker est fournie par linuxserver.io. Une documentation détaillée est disponible en suivant le lien.

Vous pouvez aussi consulter la page suivante : docker run reference.

Exécution de la commande en SSH

Si vous choisissez de réaliser l’installation via SSH vous pouvez utiliser la commande suivante pour passer temporairement en mode root.

sudo -i

Tester l’interface

Si le conteneur est bien lancé, vous pouvez vous rendre sur la page suivante: http://ADRESSE-IP-DU-NAS:9091/

Vous pouvez également installer les applications suivantes sur vos différents périphériques:

Elles vous permettront de contrôler Transmission sans passer par l’interface web.

2 commentaires sur « [NAS] Installer Transmission en passant par Docker »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *