MQTT web client in Docker and Home Assistant

The Docker image serves the whole app to a browser, except the broker status page. A Home Assistant add-on packages the same image.

MQTT Viewer served over HTTP and open in a browser, showing the topic tree and a selected topic's payload
The same app in a browser tab.

Docker

The image is multi-arch, runs as a non-root user and keeps everything under a /data volume. Start it and open port 8080:

docker run -d --name mqtt-viewer \
  -p 127.0.0.1:8080:8080 \
  -v mqtt-viewer-data:/data \
  ghcr.io/mqtt-viewer/mqtt-viewer:latest

Docker Compose

Tags follow the app version, so 1.1 tracks the latest 1.1.x release.

services:
  mqtt-viewer:
    image: ghcr.io/mqtt-viewer/mqtt-viewer:latest
    container_name: mqtt-viewer
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - mqtt-viewer-data:/data
    restart: unless-stopped
volumes:
  mqtt-viewer-data:

What changes in a browser

  • Exports download through the browser.
  • Chart pop-outs open as tabs. Reopening a chart focuses its tab.
  • Certificates for mutual TLS are mounted into the container and given as paths.
  • The app can be served under a path prefix behind a reverse proxy.
  • New versions show the docker pull command instead of updating in place.

Home Assistant add-on

  • Add https://github.com/mqtt-viewer/home-assistant-addon as an add-on repository.
  • Install MQTT Viewer from the add-on store and open the web UI.
  • Connect to the Mosquitto add-on at host core-mosquitto, port 1883.
  • Data survives updates, which arrive through the add-on store.

There is no login screen

The web UI has no authentication. Anyone who can reach the port can use the saved connections and read saved broker passwords. The command above binds to localhost only. For access from other devices, use a trusted network or an authenticating reverse proxy. The Docker documentation has a Caddy example.

Frequently asked questions

Does MQTT Viewer have a web version?

The same app ships as the Docker image ghcr.io/mqtt-viewer/mqtt-viewer, serving everything except the broker status page to a browser. A Home Assistant add-on packages it for Home Assistant OS and Supervised installs.

Is the MQTT Viewer web UI password protected?

There is no built-in login. Keep it on localhost or a trusted network, or put an authenticating reverse proxy in front.

How do you run an MQTT client inside Home Assistant?

Add https://github.com/mqtt-viewer/home-assistant-addon as an add-on repository, install MQTT Viewer from the store and open its web UI. It connects to the Mosquitto add-on at core-mosquitto.

Related features

MQTT Viewer is free and open source, and runs on macOS, Windows and Linux.

Download MQTT Viewer