Serveur MQTT du club

De Wiki Clubelek

Le MQTT au Clubelek, quoi et pourquoi ?

Selon Wikipédia[1], MQTT (initialement Message Queuing Telemetry Transport,) est un protocole de messagerie publish-subscribe basé sur le protocole TCP/IP. Il est l'un des protocoles clés dans le déploiement de l'internet des objets.

Concrètement, différents programmes (embarqués ou non), peuvent utiliser le protocole MQTT pour publier des messages sur des topics. Ils peuvent également souscrire à ces mêmes topics afin d'être notifié dès qu'un nouveau message est posté par un autre objet ou service. Il s'agit donc d'un système de "Publisher/Subscriber". Le serveur qui héberge l'ensemble et auquel se connectent les différents usagers s'appelle un broker MQTT.

Le Clubelek dispose d'un broker MQTT disponible en ligne et hébergé sur la même machine, chez OVH, que l'ensemble des services du club. Cette intégration unique permet d'avoir un emplacement centralisé pour développer, prototyper, débugger et faire tourner une flotte d'expérimentations, de services et d'objets connectés. Il est également possible d'utiliser MQTT via WebSocket.

Ce service va ainsi pourvoir permettre à chacun de développer plus facilement ses petits projets pour le club sans avoir à gérer le déploiement et la mise en place de ces services. Puisqu'il est disponible partout via le nom de domaine clubelek.fr, la configuration est universelle quel que soit le réseau utilisé (local, salon, expo, etc...). Le fonctionnement des objets l'utilisant nécessite néanmoins, en conséquence, une connexion internet.

Suggestion de clients MQTT pour le débug

Nous vous conseillons d'utiliser MQTTX sur votre ordinateur afin de pouvoir superviser et utiliser le broker MQTT du club sans passer par du code (utile pour développer ou débugger !) https://mqttx.app/downloads

Informations de connexion pour le serveur du Clubelek

Le broker du Clubelek est disponible via le protocole MQTT, sans chiffrement (déconseillé) et via le protocole WebSocket avec chiffrement TLS (conseillé). Vous pouvez vous y connecter via les paramètres suivants :

Paramètres de connexion au broker MQTT du Clubelek
Paramètre MQTT (non sécurisé) WSS (sécurisé)
Host mqtt://clubelek.fr wss://mqtt.clubelek.fr
Port 1883 443
Path /mqtt
Username A demander aux sysadmin/bureau A demander aux sysadmin/bureau
Password A demander aux sysadmin/bureau A demander aux sysadmin/bureau

Générer un identifiant et un mot de passe (pour les Sysadmin)

Connectez vous en SSH sur le serveur du club puis allez dans le dossier du service mqtt. Editez le fichier mosquitto/passwd et ajoutez l'identifiant et le mot de passe (en clair) du nouvel utilisateur que vous voulez créer sur une nouvelle ligne. Utilisez ensuite la commande suivante :

docker exec mqtt-mqtt-server-1 mosquitto_passwd -U /etc/mosquitto/passwd

Le mot de passe devrait alors être hashé dans le fichier passwd et l'utilisateur enregistré.

Pensez à mettre à jour la fiche BitWarden correspondante !