Initial vault setup
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
---
|
||||
title: Eclipse Mosquitto
|
||||
created: 2026-06-08
|
||||
updated: 2026-06-08
|
||||
type: app
|
||||
tags: [catalogue, internet-of-things, mqtt, broker, app-marathon3-rattrapage-a]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=IoT, https://mosquitto.org/]
|
||||
---
|
||||
|
||||
# 🦟 Eclipse Mosquitto
|
||||
|
||||
> **Broker MQTT léger et conforme OASIS** : le standard de la messagerie IoT, utilisé dans 90% des projets domotique, capteurs et edge computing.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [mosquitto.org](https://mosquitto.org) |
|
||||
| **GitHub** | [eclipse/mosquitto](https://github.com/eclipse/mosquitto) |
|
||||
| **License** | EPL-2.0 |
|
||||
| **Langage** | C |
|
||||
| **Étoiles GitHub** | 9.8k ⭐ |
|
||||
| **Catégorie** | [[cat-internet-of-things|Internet of Things]] |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Eclipse Mosquitto** est un **broker MQTT open source** extrêmement léger, écrit en C par Roger Light et maintenant maintenu sous l'**Eclipse Foundation** (projet Eclipse IoT).
|
||||
|
||||
Pourquoi c'est le standard :
|
||||
- ✅ **Conforme MQTT 3.1.1 et 5.0** (OASIS standard)
|
||||
- ✅ **Poids plume** : binaire ~300 KB, RAM idle < 1 MB
|
||||
- ✅ **Support QoS 0/1/2** et **messages retenus (retained)**
|
||||
- ✅ **Last Will & Testament** : notification de déconnexion d'un client
|
||||
- ✅ **Authentification multi-sources** : fichier, base, plugin externe
|
||||
- ✅ **TLS/SSL** natif (chiffrement + auth client par certificat)
|
||||
- ✅ **Bridge** : interconnecter plusieurs brokers
|
||||
- ✅ **Auth plugins** : MySQL, PostgreSQL, Redis, JWT
|
||||
- ✅ **WebSockets** : support pour clients web (port 8083/8084)
|
||||
|
||||
**Différence vs RabbitMQ/HiveMQ** : Mosquitto = ultra-léger, optimisé pour IoT (milliers de clients avec peu de CPU), gratuit. HiveMQ = plus riche, Java, license commerciale.
|
||||
|
||||
**Pour qui** : projets domotique (Home Assistant, Zigbee2MQTT), capteurs industriels, télémétrie de véhicules, fleet management, edge AI.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
services:
|
||||
mosquitto:
|
||||
image: eclipse-mosquitto:2.0
|
||||
container_name: mosquitto
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "1883:1883" # MQTT
|
||||
- "9001:9001" # WebSockets (optionnel)
|
||||
volumes:
|
||||
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
|
||||
- ./passwd:/mosquitto/config/passwd
|
||||
- mosquitto_data:/mosquitto/data
|
||||
- mosquitto_log:/mosquitto/log
|
||||
|
||||
volumes:
|
||||
mosquitto_data:
|
||||
mosquitto_log:
|
||||
```
|
||||
|
||||
### Configuration minimale
|
||||
|
||||
```conf
|
||||
# mosquitto.conf
|
||||
listener 1883
|
||||
allow_anonymous false
|
||||
password_file /mosquitto/config/passwd
|
||||
persistence true
|
||||
persistence_location /mosquitto/data/
|
||||
log_dest file /mosquitto/log/mosquitto.log
|
||||
```
|
||||
|
||||
### Générer le fichier d'utilisateurs
|
||||
|
||||
```bash
|
||||
docker run --rm -it eclipse-mosquitto:2.0 \
|
||||
mosquitto_passwd -c /mosquitto/config/passwd mqtt_user
|
||||
```
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
- [[app-mqtt-web-interface]] — interface web pour Mosquitto
|
||||
- [[app-zigbee2mqtt]] — pont MQTT pour Zigbee
|
||||
- **EMQX** — broker MQTT distribué Erlang
|
||||
- **VerneMQ** — broker MQTT en cluster
|
||||
- **RabbitMQ** — broker AMQP généraliste (plugin MQTT)
|
||||
- **HiveMQ Community** — broker Java
|
||||
|
||||
### Propriétaires
|
||||
- **AWS IoT Core** — MQTT managé dans le cloud AWS
|
||||
- **Azure IoT Hub** — solution Microsoft managée
|
||||
- **HiveMQ Cloud** — broker managé commercial
|
||||
|
||||
## 🔐 Sécurité
|
||||
- **TLS/SSL** : chiffrement de bout en bout (port 8883)
|
||||
- **Authentification par certificat client** : X.509
|
||||
- **ACL (Access Control Lists)** : limiter les topics par utilisateur
|
||||
- **Auth dynamique** : plugins MySQL/Postgres pour utilisateurs en base
|
||||
- **Rate limiting** : limiter les connexions par IP
|
||||
- **Mises à jour Eclipse** : suivre les CVE régulièrement
|
||||
|
||||
## 📚 Ressources
|
||||
- [Documentation officielle](https://mosquitto.org/documentation/)
|
||||
- [GitHub](https://github.com/eclipse/mosquitto)
|
||||
- [Test public](https://test.mosquitto.org/)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-internet-of-things]] — Catégorie IoT
|
||||
- [[app-zigbee2mqtt]] — Pont Zigbee MQTT
|
||||
- [[recettes-docker-compose]] — Templates Docker
|
||||
Reference in New Issue
Block a user