mqttprobe
The MQTT diagnostic tool built for IIoT. With built-in Sparkplug B support!
7.2K
The MQTT diagnostic tool built for IIoT — native Sparkplug B decode, live charts, and a built-in edge node emulator.
Website · Documentation · Source on GitHub · Report an issue

MQTTProbe decodes Sparkplug B messages natively — NBIRTH, DBIRTH, NDATA, DDATA, and DCMD show up as metric names, types, values, and aliases instead of protobuf hex dumps. It resolves aliases back to metric names, requests rebirths automatically, and gives you a live Nodes view of every EoN node on the broker.
docker run -d \
--name mqttprobe \
-p 8080:8080 \
-v mqttprobe-config:/app/config \
bluegrassiot/mqttprobe:latest
Open http://localhost:8080 and complete the first-run setup (create your admin password), then add a connection to your broker.
services:
mqttprobe:
image: bluegrassiot/mqttprobe:latest
ports:
- "8080:8080"
volumes:
- mqttprobe-config:/app/config
restart: unless-stopped
volumes:
mqttprobe-config:
The repository ships two ready-made Compose files:
docker-compose.yml — MQTTProbe plus an optional local Mosquitto broker for evaluationdocker-compose.prod.yml — adds a Caddy reverse proxy with automatic TLS for LAN/team accessNote: the authentication cookie is
Secureby default, so browsers only send it over HTTPS (orlocalhost). To access MQTTProbe from other machines, put it behind a TLS-terminating reverse proxy — see Docker Deployment.
Set Host to the broker's service name (e.g. mosquitto) and use its internal port (typically 1883). Broker ports only need publishing to the host when clients outside Docker connect to them.
All configuration lives in a single volume mounted at /app/config:
| Path | Contents |
|---|---|
/app/config/appsettings.json | Connections, auth, preferences, charts, emulators |
/app/config/secrets.dat | Encrypted MQTT broker passwords |
/app/config/dp-keys/ | ASP.NET Data Protection keys |
Back it up with:
docker compose cp mqttprobe:/app/config ./backup
| Value | Description | |
|---|---|---|
| Port | 8080 | HTTP UI (set via ASPNETCORE_HTTP_PORTS) |
| Volume | /app/config | Persistent configuration |
| Health check | GET /health | Built in — every 30 s, 5 s timeout |
mcr.microsoft.com/dotnet/aspnet:10.0-alpineappuser (uid 1000)MQTTProbe is open source under the Apache 2.0 license.
Content type
Image
Digest
sha256:a749df9dc…
Size
64.6 MB
Last updated
1 day ago
docker pull bluegrassiot/mqttprobe