You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
---
|
|
layout: post
|
|
title: "Choosing a self-hosted MQTT broker"
|
|
date: 2025-01-03 18:40:00 +0200
|
|
comments: true
|
|
categories:
|
|
---
|
|
|
|
# [HiveMQ](https://hivemq.com)
|
|
|
|
:thumbsup: readily available official Docker images
|
|
|
|
:thumbsdown:
|
|
* community license is limited to 25 connected clients
|
|
* requires an extension for authentication and authorization
|
|
* community edition only has static, file-based authentication and authorization
|
|
|
|
# [Mosquitto](https://mosquitto.org/)
|
|
|
|
|
|
:thumbsup:
|
|
* no limitations on community edition
|
|
* offers dynamic authentication and authorization
|
|
|
|
:thumbsdown:
|
|
* authentication and authorization
|
|
* no built-in web dashboard (it's a separate package, [Cedalo Management Center](https://cedalo.com/mqtt-gui-mosquitto/))
|
|
* Cedalo MC official images no longer updated on Docker Hub
|
|
|
|
# [EMQX](https://emqx.com)
|
|
|
|
:thumbsup:
|
|
* Just Works :tm:
|
|
* official Docker images readily available
|
|
* built-in (Mnesia) database
|
|
* built-in web dashboard, including websocket client
|
|
* built-in dynamic authentication with multiple backends
|
|
|
|
Supports authenticating clients either by user or by client id. This setting can be changed on the fly without changing the database (as long as the identifiers are consistent).
|
|
:bulb: Authenticating by user allows the same user account to be used for multiple client ids, e.g. with a user account corresponding to a person who can use different clients at different times to connect. Clients are expected to generate a unique client id on the fly.
|
|
|
|
Authenticating based on client id forces you to provision new credentials for each individual client.
|