Sommaire

Docker et reverse proxy sur Synology

Introduction

Honnêtement, je n’aime pas DSM… De manière plus générale, je dirais que je n’aime pas tout ce qui est typé UI (“User Interface”). Pourquoi ? Car cela limite grandement les possibilités d’automatisation.
Cela reste tout de même intéressant lorsque l’on est débutant…

L’utilisation de Docker sous DSM consiste à configurer un docker run via l’assistant Synology.
Le service que je monte s’utilise via une interface Web. Mon NAS étant déjà configuré en HTTPS avec renouvellement automatique, je vais utiliser le même certificat pour ce service grâce à la fonctionnalité de reverse proxy. Le NAS gèrera donc le chiffrement SSL.
Nous verrons donc ici comment on configure tout cela.

Docker

Pré-requis

On part du principe que Docker est déjà installé avec un volume accessible par l’utilisateur docker (/docker) dans mon cas.

Récupération de l’image

La première chose à faire est de récupérer une image du Docker Hub.

Pour cela, on va dans l’onglet Registre de l’application Docker et on effectue une recherche (qbittorrent dans mon cas).
Une fois l’image voulue trouvé, on double clique dessus (ou on utilise le menu contextuel).
Il nous ait alors demandé de choisir la version de Tag de l’image (latest par exemple).

/docker-et-reverse-proxy-synology/img/Screenshot_1.webp
Choix du Tag
À propos de l'image

J’utilise le conteneur dyonr/qbittorrentvpn car je souhaite monter un VPN au sain même du conteneur. Celui-ci le permet de le monter automatiquement et propose une fonctionnalité de killswitch si le VPN est down.

J’ai finalement dû prendre le Tag legacy_iptables car j’avais des erreurs avec iptables comme un utilisateur de NAS QNAP.

L’image se met donc en téléchargement.

/docker-et-reverse-proxy-synology/img/Screenshot_2.webp
Téléchargement de l’image

L’indice dans le menu de gauche indique qu’un téléchargement est en cours. Quand ce dernier disparait, le téléchargement de l’image est complété.

Création du conteneur

Ici, on va devoir mimer les informations d’une commande docker run mais avec une UI.
Dans mon cas, je vais traduire la commande suivante :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ docker run --privileged  -d \
              --name "EverGiven_A17"
              -p 8080:8080 \
              -v /docker/qbittorrent/config:/config \
              -v /docker/qbittorrent/downloads:/downloads \
              -e "VPN_ENABLED=yes" \
              -e "VPN_TYPE=wireguard" \
              -e "LAN_NETWORK=192.168.92.0/24" \
              -e "LEGACY_IPTABLES=yes" \
              dyonr/qbittorrentvpn

On sélectionne donc l’image et on clique sur le bouton Lancer, un assistant de configuration se lance alors. 🙄

/docker-et-reverse-proxy-synology/img/Screenshot_4.webp
Création du conteur
La case cochée correspond au --privileged de la commande reprise.

Pour les autres paramètres, c’est dans le menu des Paramètres avancés.

Avant de configurer le mappage des dossiers, il faut bien sûr créer les origines auparavant (les dossiers sur la machine physique : le NAS).

On définit donc les volumes :

/docker-et-reverse-proxy-synology/img/Screenshot_5.webp
Ajout des volumes

Ensuite, les ports :

/docker-et-reverse-proxy-synology/img/Screenshot_6.webp
Définition des ports
Si vous laisser les valeurs des ports en auto DSM va attribuer n’importe quels ports libres à ces derniers.
Je vous conseille donc de les spécifier afin de garder la maitrise sur cela.

Ainsi que, les variables d’environnement :

/docker-et-reverse-proxy-synology/img/Screenshot_7.webp
Création des variables d’environnement

Lancement du conteneur

Pour cela, rien de plus simple. On va dans le menu Conteneur et on bascule l’interrupteur.

Afin de vérifier que tous va bien on peut consulter les logs en temps réel dans la catégorie Journal via le bouton Détails du menu :

/docker-et-reverse-proxy-synology/img/Screenshot_8.webp
Affichage des logs

Maintenant que j’ai vérifié l’accès au service, on peut passer à la configuration de l’accès en HTTPS.

Reverse proxy

Le menu est plutôt bien caché :

Portail des applications –> Proxy inversé

/docker-et-reverse-proxy-synology/img/Screenshot_9.webp
Configuration du proxy inversé

Dans cette configuration, j’accède donc en HTTPS à qBittorrent via le port 886 grâce à la redirection de ce port vers le 8080 exposé par le conteneur.

J’ai cependant eu un problème : le certificat utilisé n’était pas le bon ! En effet, c’est le autosigné de Synology qui est utilisé !

Pour changer cela, il faut aller dans l’onglet Certificat du panneau Sécurité.
On clique donc sur le bouton Configurer. Vous trouverez alors votre service et vous pourrez alors sélectionner le bon certificat !

Mise à jour

À venir… Quand l’occasion se présentera ! 🤭

Conclusion

Ayant déjà pris mes aises avec Docker sous Linux (je reste très loin d’un expert), j’ai eu du mal à m’y mettre sur DSM.

Maintenant c’est fait ! Je peux maintenant commencer à exploiter plus de ressources de mon 918+ !