---
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
