selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
mqttui logo

Self-host mqttui

v2.0.2

MQTT web interface with automation and real-time viz

ReleaseOpen SourceMIT
Updated7 months ago
LanguagePython
Setup difficultyModerate
Stars
224
Port
5000 (HTTP web interface)
Docker
terdia07/mqttui
Install with Docker
Message flow dashboard showing real-time MQTT topic visualization

What is mqttui?

MQTTUI is a self-hosted web application for monitoring and automating MQTT infrastructure. It streams messages in real time via Socket.IO, shows an interactive topic hierarchy graph, stores messages in SQLite with advanced search, and provides a rules engine with 11 condition operators for IF/THEN automation. Alerting works with Telegram, Slack, and HTTP webhooks including retry logic and deduplication. A plugin system lets you add custom handlers that run in isolated subprocesses. The app includes a REST API with OpenAPI documentation, a Prometheus metrics endpoint, and user authentication with API tokens. You can deploy it via Docker Compose (bundled with a Mosquitto broker), Docker, or a manual Python install. It is MIT licensed and actively maintained.

Should you self-host mqttui?

mqttui scores 48/100 on selfhost.directory (how scoring works) and ranks #8 of 10 in IoT. It has 224 GitHub stars.

It shipped 2 stable releases in the past year. The latest, v2.0.2, came out on 25 March 2026. New versions land roughly every 1 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Mosquitto (76/100, 11 306 stars). It scores higher overall, so compare the two before you pick. See mqttui vs Mosquitto side by side.

Features

  • Alerting and notifications
  • Automation rules engine
  • Dry-run rule testing
  • Interactive topic hierarchy graph
  • Loop detection and circuit breaker
  • MQTT v3.1.1 and v5 support
  • Multi-broker support
  • Plugin Architecture
  • Prometheus metrics endpoint
  • Real-time MQTT message streaming
  • REST API with OpenAPI docs
  • SQLite message persistence
  • Time-based automation rules
  • TLS/SSL support for MQTT
  • User authentication with API tokens

mqttui README

How to install mqttui

Install mqttui with Docker

Docker
Environment variables
MQTTUI_ADMIN_USER, MQTTUI_ADMIN_PASSWORD, SECRET_KEY, MQTT_BROKER, MQTT_PORT, etc.

docker pull terdia07/mqttui:v2.0 docker run -p 8088:5000
-e MQTT_BROKER=your_broker
-e MQTTUI_ADMIN_USER=admin
-e MQTTUI_ADMIN_PASSWORD=changeme
-e SECRET_KEY=your-secret-key
terdia07/mqttui:v2.0

Requires external MQTT broker

How to configure mqttui

  • DB_CLEANUP_DAYS30Auto-delete messages older than X days

    Auto-delete messages older than X days

  • DB_ENABLEDTrueEnable message persistence

    Enable message persistence

    values: true, false

  • DB_MAX_MESSAGES10000Max stored messages

    Max stored messages

  • DB_PATH./data/mqtt_messages.dbSQLite database path

    SQLite database path

  • DEBUGFalseEnable development mode

    Enable development mode

    values: true, false

  • LOG_LEVELINFOLogging level (DEBUG/INFO/WARNING/ERROR)

    Logging level (DEBUG/INFO/WARNING/ERROR)

    values: DEBUG, INFO, WARNING, ERROR

  • MQTT_BROKERlocalhostBroker address (IP or hostname, no protocol prefix)

    Broker address (IP or hostname, no protocol prefix)

  • MQTT_KEEPALIVE60Keep-alive interval (seconds)

    Keep-alive interval (seconds)

  • MQTT_PASSWORDBroker password

    Broker password

  • MQTT_PORT1883Broker port

    Broker port

  • MQTT_TLSfalseEnable TLS connection

    Enable TLS connection

    values: true, false

  • MQTT_TLS_CA_CERTSPath to CA certificate file

    Path to CA certificate file

  • MQTT_TLS_CERTFILEPath to client certificate

    Path to client certificate

  • MQTT_TLS_INSECUREfalseSkip certificate verification (not recommended)

    Skip certificate verification (not recommended)

    values: true, false

  • MQTT_TLS_KEYFILEPath to client private key

    Path to client private key

  • MQTT_TOPICS#Topics to subscribe (comma-separated)

    Topics to subscribe (comma-separated)

  • MQTTUI_ADMIN_PASSWORDAdmin password

    Admin password

  • MQTTUI_ADMIN_USERadminAdmin username

    Admin username

  • MQTTUI_RATE_LIMIT30/minutePublish endpoint rate limit

    Publish endpoint rate limit

  • MQTT_USERNAMEBroker username

    Broker username

  • MQTT_VERSION3.1.1Protocol version (3.1.1 or 5)

    Protocol version (3.1.1 or 5)

    values: 3.1.1, 5

  • PORT5000Application port

    Application port

  • SECRET_KEYFlask secret key (must not be "dev" in production)

    Flask secret key (must not be "dev" in production)

mqttui releases & version history

More in IoT

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…