Installer le broker MQTT Mosquitto sur NAS Synology (DSM 6.2+) avec Docker • Domotique et objets connectés à faire soi-même

Il est très facile d’installer un broker MQTT Mosquitto sur un NAS Synology à l’aide de l’application Docker. Depuis la version 6.2 de DSM (DiskStation Manager, le système d’exploitation des NAS Synology), la structure des dossiers Docker est différente. Synology a développé l’application Docker (attention, ce n’est pas l’application officielle Docker) qui permet de récupérer des images et de gérer facilement des conteneurs. C’est la méthode la plus facile pour installer, configurer, et démarrer des conteneurs si vous n’avez pas l’habitude des lignes de commande. 

L’application Docker de Synology est toutefois limitée pour les réglages avancés. Il faudra utiliser le Terminal ou Powershell pour modifier le fichier de configuration de Mosquitto. Ce tutoriel a été réalisé sur un NAS Synology DS718+ équipé de 8GB de RAM.

NAS Synology compatibles avec Docker

Pour installer Mosquitto dans un conteneur Docker, il faut disposer d’un NAS compatible. Ce sont essentiellement des NAS équipés de processeurs Intel. Voici la liste des modèles de NAS Synology compatibles. La liste officielle se trouve sur cette page.

Série 19:RS1619xs+, RS1219+, DS2419+, DS1819+, DS1019+

Série 18:FS1018, RS3618xs, RS2818RP+, RS2418RP+, RS2418+, RS818RP+, RS818+, DS3018xs, DS1618+, DS918+, DS718+, DS218+

Série 17:FS3017, FS2017, RS18017xs+, RS4017xs+, RS3617xs+, RS3617RPxs, RS3617xs, DS3617xs, DS1817+, DS1517+

Série 16:RS18016xs+, RS2416RP+, RS2416+, DS916+, DS716+, DS716+II, DS216+, DS216+II

Série 15:RS815RP+, RS815+, RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+, DS415+

Série 14:RS3614xs+, RS3614RPxs, RS3614xs, RS2414RP+, RS2414+, RS814RP+, RS814+

Série 13:RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+

Série 12:RS3412RPxs, RS3412xs, RS2212RP+, RS2212+, RS812RP+, RS812+, DS3612xs, DS1812+, DS1512+, DS712+, DS412+

Série 11:RS3411RPxs, RS3411xs, RS2211RP+, RS2211+, DS3611xs, DS2411+, DS1511+, DS411+, DS411+II

Série 10:RS810RP+, RS810+, DS1010+, DS710+ (DSM v6+)

Installer le gestionnaire Docker Synology

La première chose à faire est d’installer l’application Docker développée par Synology. Ouvrez le Centre de Paquets et faites une recherche sur le mot clé Docker dans le champ de recherche. Cliquer sur Installer.

Installer l’éditeur nano

Par défaut, il n’y a que l’éditeur standard VI qui est installé. C’est un éditeur un peu particulier à prendre en main. Heureusement, la communauté a développé un paquet pour installer très facilement l’éditeur nano que l’on connait mieux.

Ouvrez le centre de paquets et cliquer sur Paramètres.

Ajouter la source suivante et enregistrer.

http://packages.synocommunity.com/

Ouvrez la source Communauté qui a été ajoutée à la liste et faites une recherche avec le mot clé nano. Installer le paquet. L’éditeur Nano est disponible dès la fin de l’installation du paquet.

Configurer l’accès SSH

Dernière chose à faire avant d’installer Mosquitto, ouvrir l’accès SSH du NAS. Ouvrez le panneau de configuration et activez le mode avancé (dans le coin supérieur gauche). Ouvrez le panneau Terminal & SNMP puis

  • Cochez Activer le service SSH
  • Configurer le port. Par défaut, SSH utilise le port 22. Pour limiter les risques d’intrusion, vous pouvez le modifier.
  • Appliquer les modifications. Il n’est pas nécessaire de redémarrer le NAS pour prendre en compte les nouveaux réglages.

Installer le broker MQTT Mosquitto

Lancez l’application Docker depuis le menu de DSM.

Ouvrer le panneau Registre et faites une recherche sur le mot clé mosquitto dans le champ de recherche. Sélectionner le dépôt eclipse-mosquitto officiel. Lancez le téléchargement en cliquant sur Télécharger dans la barre d’options.

Choisir latest (version la plus récente) dans la boite de dialogue qui s’affiche.

Tous les fichiers nécessaires au fonctionnement de Mosquitto (dockerfile) sont téléchargés dans la librairie d’images. Même si vous détruisez le conteneur, l’image restera disponible sur le disque. Cela permet par exemple de tester plusieurs configurations.

Sélectionner eclipse-mosquitto dans la liste et cliquer sur Lancer pour démarrer l’installation du broker.

Vous pouvez personnaliser le nom de conteneur. Cliquez ensuite sur paramètres avancés.

Cocher l’option Activer le redémarrage automatique qui permettra de relancer Mosquitto en cas de plantage.

Ne changez pas la configuration réseau. Par défaut, le mode bridge est sélectionné.

Sur l’onglet Paramètres des ports, cliquer sur le + pour ajouter une redirection de port. Ajouter un redirection du port 1883 du NAS vers le port 1883 du conteneur Mosquitto. Vous pouvez également ajouter une redirection vers le port 9001 si vous voulez vous connecter en websocket à Mosquitto.

Cliquer sur Appliquer pour terminer la configuration. Dans la fenêtre de synthèse qui s’affiche, cocher Exécuter ce conteneur lorsque l’assistant a terminé puis Appliquer.

Le conteneur démarre automatiquement et le broker Mosquitto est disponible immédiatement. Ouvrez l’onglet Conteneur puis détail pour afficher l’état du broker.

Modifier la configuration de Mosquitto. Ouvrir le port 9001

Dans la plupart des cas, vous ne devriez pas avoir besoin de toucher au fichier de configuration de Mosquitto. Nous allons toutefois voir comment faire. Vous aurez peut être besoin d’ouvrir le port 9001 qui permet de se connecter en Websocket à Mosquitto.

Connectez-vous en SSH à votre NAS. Utilisez Powershell ou Putty sur Windows, le Terminal de commande sur Linux ou macOS.

Une fois connecté, connectez vous en root avec la commande

sudo su -

Saisissez de nouveau votre mot de passe

Rechercher le chemin du fichier mosquitto.conf avec la commande

find / -name mosquitto.conf

Vous devriez obtenir quelque chose qui ressemble à ceci.

/volume1/@docker/btrfs/subvolumes/e22e9eda6d82a1ec8b772536eb339c611f306af1153f150c2ecb3e1a30922b11-init/mosquitto/config/mosquitto.conf /volume1/@docker/btrfs/subvolumes/e22e9eda6d82a1ec8b772536eb339c611f306af1153f150c2ecb3e1a30922b11/mosquitto/config/mosquitto.conf

Il ne faut ouvrir le fichier qui se trouve dans le dossier qui se terminant par -init.

Ouvrer le fichier de configuration avec la commande

nano /volume1/@docker/btrfs/subvolumes/e22e9eda6d82a1ec8b772536eb339c611f306af1153f150c2ecb3e1a30922b11/mosquitto/config/mosquitto.conf

Descendez le curseur dans la section Default listener et ajouter les ports souhaité. Par exemple

listener 1883
listener 9001

Combinaison Ctrl + X puis Y pour enregistrer. Re-démarrer le conteneur depuis DSM pour appliquer les modifications. N’oubliez pas d’ajouter une redirection vers le nouveau port si nécessaire.

Tutoriels sur MQTT pour objets connectés DIY

Voici d’autres tutoriels sur MQTT pour aller plus loin

Avez-vous aimé cet article ?

[Total: 0 Moyenne: 0]