Realtime web UI for MQTT brokers, with Home Assistant discovery and a Beckhoff PLC panel
9.6K
A realtime web UI for MQTT brokers. Every protocol version, every transport, proper authentication, and a plugin system that turns raw topics into something you recognise.
Source, issues and documentation on GitHub · Configuration · Home Assistant · Security
docker run -d -p 127.0.0.1:8114:8114 \
-e MQTTVIEW_BASE_URL=http://127.0.0.1:8114 \
-e MQTTVIEW_SECRET_KEY="$(openssl rand -hex 32)" \
-v mqttview-data:/data \
hausbit/mqttview
The first start prints a generated administrator password to the container
log, once. MQTTVIEW_SECRET_KEY encrypts stored broker passwords and TLS
private keys — keep it, or you will be re-entering every credential.
With compose, see compose.yaml, which ships the hardened runtime settings the image expects.
| Tag | What it is |
|---|---|
latest | The newest build of main |
main | The same thing, named after the branch |
sha-<short> | One specific commit, for pinning |
x.y.z | A release tag |
linux/amd64, linux/arm64, linux/arm/v7 and linux/arm/v6 — so a
Raspberry Pi runs it, including an old one on a 32-bit system.
A single static Go binary with the frontend embedded, on Alpine. No package
manager, no shell utilities beyond what Alpine ships, no setuid binaries. It
runs as uid 10001 on a read-only root filesystem; only /data is writable, and
that is the volume holding the database and the encryption key.
Each image carries a CycloneDX SBOM of itself at
/usr/share/mqttview/sbom.cdx.json:
docker run --rm --entrypoint cat hausbit/mqttview:latest \
/usr/share/mqttview/sbom.cdx.json | head
Images are signed with cosign, keyless, bound to the workflow that built them:
cosign verify docker.io/hausbit/mqttview:latest \
--certificate-identity-regexp '^https://github.com/dgprivate/mqttview/.github/workflows/publish-image.yml@.+' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
security/README.md documents every hardening claim with the command that proves it, rather than a badge.
There is an app (Home Assistant renamed add-ons to apps), and it needs no login: under ingress, Home Assistant has already decided who you are.
Settings → Apps → ⋮ → Repositories → https://github.com/dgprivate/mqttview
Two apps are offered there. mqttview is the one to install; mqttview (Home Assistant config access) is the same app allowed to read your configuration directory, so it can import the broker from your MQTT integration — credentials and client certificates included — instead of asking you to retype it.
Running Home Assistant Container or Core, which have no add-ons? Run this image and add the sidebar link with the HACS integration in the same repository. docs/HOME_ASSISTANT.md explains which path fits your install and what the no-login mode rests on.
Everything has an environment variable; the full list is in
docs/CONFIGURATION.md.
mqttview -check-config prints what a configuration actually resolves to,
including anything the environment overrode, without starting a thing.
MIT. Source at github.com/dgprivate/mqttview.
Content type
Image
Digest
sha256:d84849250…
Size
10.3 MB
Last updated
6 days ago
docker pull hausbit/mqttview