SkillAgentSearch skills...

BunkerM

🚀 BunkerM: All-in-one Mosquitto MQTT management platform, featuring dynamic security, MQTT ACL management, monitoring,and AI integrations

Install / Use

/learn @bunkeriot/BunkerM

README

<p align="center"> <img src="frontend/public/BunkerM_Logo.png" alt="BunkerM Logo" width="220" /> </p> <h1 align="center">BunkerM - AI Powered MQTT Management Platform</h1> <p align="center"> The world's first self-hosted Mosquitto MQTT management platform with AI capabilities out of the box. </p> <p align="center"> <a href="https://bunkerai.dev/docs"> <img src="https://img.shields.io/badge/Documentation-Available-green?style=for-the-badge&logo=read-the-docs" alt="Documentation" /> </a> </p> <p align="center"> <a href="https://hub.docker.com/r/bunkeriot/bunkerm"> <img src="https://img.shields.io/docker/pulls/bunkeriot/bunkerm?logo=docker&logoColor=white&label=Docker%20Pulls&color=2496ED" alt="Docker Pulls" /> </a> <a href="https://github.com/bunkeriot/BunkerM/stargazers"> <img src="https://img.shields.io/github/stars/bunkeriot/BunkerM?style=flat&logo=github&label=Stars&color=yellow" alt="GitHub Stars" /> </a> <a href="https://github.com/bunkeriot/BunkerM/blob/main/LICENSE"> <img src="https://img.shields.io/badge/License-Apache%202.0-blue?logo=apache&logoColor=white" alt="License" /> </a> <a href="https://github.com/bunkeriot/BunkerM/releases"> <img src="https://img.shields.io/github/v/release/bunkeriot/BunkerM?logo=github&label=Release&color=green" alt="Latest Release" /> </a> </p> <p align="center"> <a href="https://www.reddit.com/r/BunkerM/"> <img src="https://img.shields.io/badge/Join%20our-Community-orange?logo=reddit&logoColor=white" alt="Reddit Community" /> </a> <a href="https://www.linkedin.com/in/mehdi-idrissi/"> <img src="https://img.shields.io/badge/Follow%20me-LinkedIn-blue?logo=linkedin&logoColor=white" alt="LinkedIn" /> </a> <a href="https://x.com/BunkerIoT"> <img src="https://img.shields.io/badge/Follow%20me-X%20(Twitter)-black?logo=x&logoColor=white" alt="X (Twitter)" /> </a> </p> <p align="center"> <a href="https://www.paypal.com/donate/?hosted_button_id=ZFEJHMWKU2Q4Q"> <img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" alt="Donate via PayPal" /> </a> </p>

📋 Table of Contents


🔍 What is BunkerM?

BunkerM is a free, open-source, containerized MQTT management platform. It bundles Eclipse Mosquitto with a full-featured web dashboard, packaging everything into a single Docker container — one command to get a production-ready MQTT broker with a management UI.

BunkerM Dashboard (Light)

Connected Clients

On top of the core broker management, BunkerM includes a local statistical engine (smart anomaly detection) and a local automation engine (schedulers and watchers) that run entirely inside your container. BunkerAI is the AI intelligence layer — an optional cloud service that adds a natural-language assistant to your BunkerM instance, reachable via Telegram, Slack, or a built-in web chat.

What you get out of the box:

  • Pre-configured Eclipse Mosquitto broker (MQTT 3.1.1 + 5)
  • Web-based ACL management — clients, roles, groups, topic permissions
  • Real-time monitoring dashboard, connected clients, and event logs
  • MQTT Explorer — live topic tree with publish-from-browser
  • Statistical anomaly detection (Z-score, EWMA, spike, silence detectors)
  • Local automation agents — cron schedulers and condition-based watchers
  • AWS IoT Core and Azure IoT Hub bridge configuration
  • Optional BunkerAI subscription — natural-language assistant powered by Claude

🚀 Quick Start

Prerequisites

Minimal — one command

docker run -d -p 1900:1900 -p 2000:2000 bunkeriot/bunkerm:latest

Open http://localhost:2000 and set up your first Admin account.

| Port | Service | |------|---------| | 1900 | MQTT broker | | 2000 | Web UI |

Default MQTT credentials: username bunker / password bunker


Persistent deployment (recommended)

docker run -d \
  -p 1900:1900 \
  -p 2000:2000 \
  -v mosquitto_data:/var/lib/mosquitto \
  -v mosquitto_conf:/etc/mosquitto \
  -v auth_data:/data \
  bunkeriot/bunkerm:latest

Remote access

docker run -d \
  -p 1900:1900 \
  -p 2000:2000 \
  -e HOST_ADDRESS=<YOUR_IP_OR_DOMAIN> \
  bunkeriot/bunkerm:latest

Docker Compose

services:
  bunkerm:
    image: bunkeriot/bunkerm:latest
    ports:
      - "1900:1900"
      - "2000:2000"
    volumes:
      - mosquitto_data:/var/lib/mosquitto
      - mosquitto_conf:/etc/mosquitto
      - auth_data:/data
    environment:
      - HOST_ADDRESS=localhost          # change to your IP/domain for remote access
      # - BUNKERAI_API_KEY=bkai_...     # optional: connect to BunkerAI
    restart: unless-stopped

volumes:
  mosquitto_data:
  mosquitto_conf:
  auth_data:

First steps after launch

  1. Open http://localhost:2000 and create your Admin account (first-time setup wizard)
  2. Go to ACL → Clients and create an MQTT client with a username and password
  3. Connect your MQTT device or client to localhost:1900 using those credentials
  4. Explore the Dashboard to see live broker stats

⭐ Core Features

Broker Dashboard

Real-time overview of your broker health:

Broker Logs

Client Logs

  • Connected clients count and history
  • Message publish/receive rates
  • Byte throughput (in/out)
  • Subscription and retained message counts
  • Recent MQTT connection events (connect, disconnect, subscribe, publish)

🔒 ACL & Client Management

Full dynamic security management powered by Mosquitto's Dynamic Security plugin:

Dynamic Security

Client Management

  • Create, update, and delete MQTT clients
  • Set credentials (username + password hash)
  • Enable / disable clients individually
  • Assign clients to groups

Add Client

Connected Clients

Role Management

  • Create roles with fine-grained topic ACL rules
  • Define allow / deny permissions per topic
  • Wildcard topic support (#, +)
  • ACL types: publishClientSend, subscribeLiteral, and more

Group Management

  • Create groups and assign roles to them
  • Add / remove clients from groups
  • Set role priorities within groups

ACL Groups

ACL Import / Export

Back up and restore your complete security configuration in one click:

  • Export — downloads a JSON snapshot of all clients (including password hashes), roles, and groups
  • Import — upload a previously exported JSON to fully restore your configuration; the broker reloads automatically
  • Available in ACL → Clients next to the Create Client button

🔭 MQTT Explorer

MQTT Explorer

Inspect and interact with live broker traffic directly from the browser:

  • Live topic tree — full hierarchy of all active topics, refreshed every 3 seconds
  • Per-topic metadata — latest value, message count, QoS, retain flag, last-updated timestamp
  • Search & filter — instantly narrow the tree by typing a topic path fragment
  • Publish panel — send messages from the browser: pick a client, enter a topic, choose payload type (RAW / JSON / XML with built-in validation), set QoS and retain flag

🤖 Smart Anomaly Detection

A fully local statistical engine that continuously monitors your MQTT traffic and raises alerts when behavior deviates from the baseline. No cloud dependency — everything runs inside the container.

How it works

The engine polls the broker every 10 seconds, builds statistical baselines over 1-hour and 24-hour sliding windows, and runs four independent detectors every 60 seconds:

| Detector | What it catches | |----------|-----------------| | Z-score | Values that deviate more than 3σ from the rolling mean | | EWMA | Gradual drift via exponentially weighted moving average | | Spike | Sudden burst in message rate (>3× the 30-minute baseline) | | Silence | Topics that stop publishing for longer than 2× their normal interval |

Alerts are generated with severity levels: low / medium / high / critical.

Monitoring pages (Monitoring sidebar section)

| Page | Description | |------|-------------| | Metrics | Per-topic baselines — mean, std dev, message count for 1h and 24h windows | | Anomalies | All detected anomalies with entity, type, severity, and raw detection context | | Alerts | Actionable alert feed with severity badges and one-click Acknowledge |


⚙️ Agents — Schedulers & Watchers

A local automation engine built into every BunkerM instance. Agents run entirely on your infrastructure — no cloud connectivity required after creation.

Schedulers

Publish MQTT messages on a recurring cron schedule:

  • Full cron expression support with built-in presets (every minute, hourly, daily, weekly, etc.)
  • Live cron preview showing next 5 run times
  • Tracks last fired time and total execution count
  • Examples: "turn on pump every day at 06:
View on GitHub
GitHub Stars442
CategoryDevelopment
Updated4h ago
Forks24

Languages

TypeScript

Security Score

100/100

Audited on Apr 5, 2026

No findings