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.
labnotes/_source/_posts/2025-01-03-mqtt-broker.mark...

1.5 KiB

layout title date comments categories
post Choosing a self-hosted MQTT broker 2025-01-03 18:40:00 +0200 true

HiveMQ

👍 readily available official Docker images

👎

  • 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

👍

  • no limitations on community edition
  • offers dynamic authentication and authorization

👎

  • authentication and authorization
  • no built-in web dashboard (it's a separate package, Cedalo Management Center)
  • Cedalo MC official images no longer updated on Docker Hub

EMQX

👍

  • Just Works ™️
  • 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). 💡 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.