119 lines
3.8 KiB
Markdown
119 lines
3.8 KiB
Markdown
---
|
|
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](https://vernemq.com/) |
|
|
| **GitHub** | [vernemq/vernemq](https://github.com/vernemq/vernemq) |
|
|
| **License** | Apache-2.0 |
|
|
| **Langage** | Erlang |
|
|
| **Étoiles GitHub** | 3.3k ⭐ |
|
|
| **Catégorie** | [[cat-home-automation\|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é)
|
|
|
|
```yaml
|
|
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)
|
|
|
|
```bash
|
|
# 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
|
|
- [Documentation officielle](https://docs.vernemq.com/)
|
|
- [Plugin docs](https://docs.vernemq.com/plugins/)
|
|
- [Docker Hub](https://hub.docker.com/r/vernemq/vernemq)
|
|
|
|
## Pages Liées
|
|
- [[cat-home-automation]] — Catégorie Home Automation
|
|
- [[app-home-assistant]] — Utilisateur principal de MQTT
|
|
- [[app-esphome]] — Device firmware qui publie sur MQTT
|
|
- [[recettes-docker-compose]] — Templates Docker
|
|
- [[mqtt-securite-best-practices]] — Hardening broker
|