Skip to content

IndraMQTT

IndraMQTT

IndraMQTT is the complete MQTT platform in one small binary: broker, SQL rules, data connectors and multi-tenancy in a single process.

It serves IoT fleets, industrial edge systems and cloud deployments. One process holds the client sockets and does the broker work. There is no second process to install or monitor.

Start with Getting started. It installs the broker, starts it, sends the first message, creates the first user and opens the console. Each step runs as a test.

flowchart LR
Client -- "CONNECT :1883" --> TCP["listeners.tcp"]
Client -- "API call :18083" --> API["management API listeners.api"]
TCP -- "route" --> Router["router"]
Router -- "store" --> Session["sessions"]
Session -- "match" --> Engine["rule engine"]
Engine -- "send" --> Conn["connectors"]
API -- "read" --> Session
Engine -. "plan" .-> MCP["MCP bridge roadmap"]

The MCP bridge is deferred. This release exposes no MCP endpoint. Details live in ROADMAP.md.

Protocol gateways, message schema validations, OpenTelemetry export and cluster links are deferred. Each list or config read answers an empty or disabled state. Each write refuses with 400. Nothing is stored.

Before you start

  • Install the broker from Install.
  • Keep ports 1883 and 18083 free.
  • Read Concepts for topics, sessions and delivery.

Check that it works

Start the broker with this file. The health endpoint returns OK.

[node]
id = "docs-index"
[listeners.tcp]
bind = "0.0.0.0:1883"
[listeners.api]
bind = "0.0.0.0:18083"
[logging]
level = "warn"
Terminal window
python3 - <<'PY'
import os, socket
port = int(os.environ.get("API_PORT", "18083"))
sock = socket.create_connection(("127.0.0.1", port), timeout=5)
sock.sendall(b"GET /healthz HTTP/1.0\r\nHost: docs\r\n\r\n")
print(sock.makefile().read().strip().splitlines()[-1])
PY
OK

Next steps