Files
2026-06-09 18:40:21 +02:00

3.8 KiB


title: VerneMQ created: 2026-06-08 updated: 2026-06-08 type: app tags: [catalogue, home-automation, app-marathon-batch-c] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Home+Automation&app=vernemq, https://vernemq.com/]

🏠 VerneMQ

Broker MQTT haute performance : la colonne vertébrale messaging de votre domotique, écrit en Erlang pour la fiabilité télécom.

📋 Informations Générales

Champ Valeur
Site web vernemq.com
GitHub vernemq/vernemq
License Apache-2.0
Langage Erlang
Étoiles GitHub 3.3k
Catégorie cat-home-automation

📝 Description

VerneMQ est un broker MQTT robuste conçu pour l'IoT et la domotique.

  • MQTT 3.1.1, 5.0 : protocole standard
  • Clustering natif : scaling horizontal Erlang/BEAM
  • Auth plugins : fichiers, HTTP, MySQL, PostgreSQL, MongoDB
  • WebSockets : pour dashboards web
  • TLS/SSL : chiffrement natif
  • Bridge : pont entre brokers
  • Retained messages, QoS 0/1/2 : full MQTT spec
  • Pub/Sub, Shared Subscriptions : pour charges IoT
  • Plugin Lua : logique custom embarquée
  • Métriques Prometheus

Différence vs Mosquitto : Mosquitto = léger, single-node, parfait pour maison. VerneMQ = clustering, performance, production-grade. Pour qui: installations avec beaucoup de devices (>100), ou qui veulent scaler.

🚀 Installation

Docker Compose (recommandé)

version: '3.8'
services:
  vernemq:
    image: vernemq/vernemq:latest
    container_name: vernemq
    restart: unless-stopped
    environment:
      - DOCKER_VERNEMQ_ALLOW_ANONYMOUS=on
      - DOCKER_VERNEMQ_USER_vernemq=changeme
      - DOCKER_VERNEMQ_LISTENER__TCP__DEFAULT=0.0.0.0:1883
      - DOCKER_VERNEMQ_LISTENER__WS__DEFAULT=0.0.0.0:9001
    volumes:
      - vernemq_data:/vernemq/data
      - vernemq_log:/vernemq/log
    ports:
      - 1883:1883  # MQTT
      - 9001:9001  # WebSockets
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.vernemq.rule=Host(`mqtt.example.com`)"
      - "traefik.http.routers.vernemq.entrypoints=websecure"
      - "traefik.http.routers.vernemq.tls.certresolver=letsencrypt"

volumes:
  vernemq_data:
  vernemq_log:

Premier test (CLI)

# Subscribe
mosquitto_sub -h localhost -p 1883 -t "test/topic" -u vernemq -P changeme -v

# Publish
mosquitto_pub -h localhost -p 1883 -t "test/topic" -u vernemq -P changeme -m "Hello MQTT"

🔄 Alternatives

Open Source

  • Mosquitto (Eclipse) — Référence, plus léger
  • EMQX — Concurrent direct, plus d'intégrations
  • HiveMQ CE — Broker Java entreprise
  • RabbitMQ (plugin MQTT) — Polyvalent mais pas MQTT natif

Propriétaires

  • AWS IoT Core — Managed cloud MQTT
  • Azure IoT Hub — Managed, intégration Azure
  • Google Cloud IoT — Managed, en sunset
  • HiveMQ Cloud — SaaS HiveMQ

🔐 Sécurité

  • Auth plugins : ne JAMAIS laisser anonyme en production
  • TLS : obligatoire si exposé sur Internet
  • ACL : limiter topics par utilisateur (vernemq.conf)
  • WebSockets : attention exposition Internet, préférer TCP MQTT local
  • Métriques Prometheus : surveiller charge

📚 Ressources

Pages Liées