Featured image of post Installer Mosquitto

Installer Mosquitto

Mosquitto un broker MQTT

Introduction

MQTT (Message Queuing Telemetry Transport) est un protocole de messagerie pour la communication entre les périphériques IoT.

Il est utilisé fréquemment en domotique pour centraliser et automatiser des périphériques hétérogènes.

Il nous servira de base de communication pour des prochaines articles sur la Domotique et Docker.

Pour cette installation j’utilise l’image qui est présente ici : Mosquitto

Le fichier compose.yaml

Voici le fichier compose.yaml à deposer dans le répertoire contenant vos piles (par exemple /opt/docker/projects/) ou à coller dans votre interface de gestion (autre que Arcane).


services:
  mosquitto:
    image: eclipse-mosquitto
    container_name: mosquitto
    restart: always
    volumes:
      - /opt/docker/data/mosquitto/config:/mosquitto/config:rw
      - /opt/docker/data/mosquitto/data:/mosquitto/data:rw
      - /opt/docker/data/mosquitto/log:/mosquitto/log:rw
    ports:
      - 8102:1883 #default mqtt port
      - 8103:9001 #default mqtt port for websockets
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    networks:
      - mqtt_network
networks:
  mqtt_network:
    external: true
    name: mqtt_network

Vous devrez adapter ce fichier en personnalisant les parametres suivants :

  • ports : J’utilise des ports alternatif en entrée : 1802 et 1803.
  • networks : Je choisis le nom du réseau qui servira de lien à tous les autres images Docker relié au broker MQTT
  • PUID/GUID : A adapter à l’utilisateur de lancement de l’image Docker
  • volumes : la configuration doit être accessible depuis l’exterieur

Je sauvegarde le fichier compose.yaml sans créer pour le moment le container.

Creation de la configuration

Il faut créer le fichier de configuration mosquitto.conf dans votre répertoire de configuration.

Si on se refaire au ficher compose, il se trouve dans mon exemple dans “/opt/docker/data/mosquitto/config

Si le répertoire n’existe pas ; créer le et copier le contenu suivant dans le fichier mosquitto.conf.


allow_anonymous false
listener 8102
listener 8103
protocol websockets
persistence true
password_file /mosquitto/config/pwfile
persistence_file mosquitto.db
persistence_location /mosquitto/data

J’ai repris les même ports que ceux du fichier compose. Je choisis un accés sécuriser au broker via un nom d’utilisateur et un mot de passe.

Remarque : Si vous ne souhaitez pas sécuriser les accès au broker, changer la variable “allow_anonymous” à “true”. Dans ce cas vous pourrez sauter tous ce qui suit et lancer simplement le container.

Il reste maintenant à créer un fichier pwfile vide via la commande touch opt/docker/data/mosquitto/config/pwfile (à adapter suivant votre fichier compose).

Lancement container et création utilisateur

On déploi l’image soit en ligne de commande : sudo docker compose up -d ; soit via votre interface de gestion.

Il faut maintenant créer un utilisateur, pour cela on lance un shell dans le container : docker exec -it <nom_image> /bin/sh

On tape ensuite la commande suivante : mosquitto_passwd -c /mosquitto/config/pwfile votre_utilisateur en remplacant “votre_utilisateur” pour le nom d’utilisateur que vous souhaitez créer.

Aprés avoir valider la commande ; il vous est demandé de rentrer un mot de passe pour cet utilisateur.

C’est cet utilisateur et ce mot de passe qui vous sera nécessaire pour communiquer avec le broker MQTT.

Généré avec Hugo
Thème Stack conçu par Jimmy