Complete MQTT 5.0
Every packet property, topic aliases, shared subscriptions via $share, subscription identifiers, No Local, Retain Handling, Will Delay, Message Expiry, reason codes, the AUTH packet.
ELX-MQTT Broker is a Go broker with a full web dashboard. MQTT 3.1.1 and 5.0 are implemented from scratch, completely, with no third-party libraries. One binary, no dependencies: install it and it runs.
Debian · Ubuntu · Windows x64 · Linux arm64 and armhf
$ sudo apt-get install elxmqttbroker Setting up elxmqttbroker (1.0.30) ... Created symlink /etc/systemd/system/multi-user.target.wants/elxmqttbroker.service ELX MQTT Broker 1.0.30 — listening on :1883, :8883, dashboard on :8080 state restored retained=128 sessions=7 subscriptions=34 delayed=2
The broker does not just deliver messages, it shows exactly what is happening: who is connected, which topics are alive, what the limiters drop.
Every packet property, topic aliases, shared subscriptions via $share, subscription identifiers, No Local, Retain Handling, Will Delay, Message Expiry, reason codes, the AUTH packet.
Message-rate and traffic charts, machine health, active topics and an event feed — streamed over WebSocket, with no page reloads.
ACL rules of filter + access + allow or deny, deny-by-default, and a $u placeholder that confines a client to its own branch in a single line.
Server-level two-way topic forwarding: out/in/both directions, prefixes, TLS, loop protection and automatic reconnect.
Publishing to $delayed/60/topic reaches subscribers a minute later. EMQX-compatible, survives a restart, and the queue is visible and cancellable in the dashboard.
A per-connection token bucket plus per-topic-pattern rules: thin a stream down to a rate (keeping the latest value) or drop it entirely.
The built-in list, MariaDB/MySQL, SQLite, CSV, JWT and an external HTTP service. Switching happens live, without restarting the broker.
Everything the dashboard does is available with a bearer token: provision devices and grant permissions from your own system. Read-only tokens are supported.
Retained messages, persistent sessions, offline queues and delayed messages live in pure-Go SQLite — no CGO and no external database.
An APT repository package for Debian and Ubuntu, a ready binary for Windows. No Docker, no runtime, no libraries to install.
Add the key and the repository
sudo wget -qO /usr/share/keyrings/elx-repo.gpg https://repo.um-d.ru/elx-repo.gpg
echo "deb [signed-by=/usr/share/keyrings/elx-repo.gpg] https://repo.um-d.ru stable main" | sudo tee /etc/apt/sources.list.d/elx-repo.list
Refresh the package list
sudo apt-get update
Install the broker
sudo apt-get install elxmqttbroker
Download the installer from the download page
Run it and pick “Install as a Windows service”
Open the dashboard and sign in as admin / admin
http://localhost:8080
Once installed, the dashboard waits on :8080, MQTT on :1883 and MQTT over TLS on :8883. The default login is admin / admin — change it on first sign-in.
Dark and light themes, seven interface languages, live charts. The dashboard is part of the broker — there is nothing separate to install.
The codec encodes and decodes all 15 packet types, and topics are matched against the table from the specification.
The broker is free, the number of devices and messages is unlimited, and no sign-up is required.