Skip to content

πŸš€ BunkerM: All-in-one Mosquitto MQTT broker with Web UI for easy management, featuring dynamic security, MQTT ACL management, monitoring, API and cloud integrations

License

Notifications You must be signed in to change notification settings

bunkeriot/BunkerM

BunkerM - MQTT Made Easy βœ…

Reddit

Reddit Community LinkedIn Profile X (Twitter) Profile

Support BunkerM

πŸ“‹ Table of Contents

πŸ” What is BunkerM?

BunkerM is an open-source, containerized MQTT management solution that bundles together a Mosquitto broker with a comprehensive web interface. It provides a complete, ready-to-deploy MQTT environment with built-in management capabilities, eliminating the need for separate broker setup and configuration.

Dashboard Screenshot

This all-in-one solution features dynamic security controls, real-time monitoring, client activity logging, and cloud integration capabilities. The entire stack - Mosquitto broker, backend services, and frontend UI - comes pre-configured in Docker containers for easy deployment and management.

πŸ’Ό Need Custom MQTT Features? Reach Out Today!

Website: https://bunkeriot.com
Email me at: support@bunkeriot.com
Let's connect!
LinkedIn

πŸ—οΈ Solution Overview

BunkerM Features

  • Mosquitto MQTT Broker (pre-configured)
  • Backend Management Services
  • Web-based Management Interface
  • Dynamic Security Module
  • Monitoring and Logging System
  • Cloud Bridge Integration (Pro Feature)

πŸš€ Quick Start with Docker

Get up and running in seconds with BunkerM!

1. Run the Docker Container

Make sure to have Docker installed on your machine before running the command below:

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

This command:

  • Runs BunkerM in detached mode (-d)
  • Maps the MQTT broker port to 1900 (-p 1900:1900)
  • Maps the Web UI port to 2000 (-p 2000:2000)
  • Uses the official BunkerM image (bunkeriot/bunkerm)

Persistent Data Deployment

For production environments, you'll want to persist your data across container restarts:

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

This command adds:

  • A volume for Mosquitto data (-v mosquitto_data:/var/lib/mosquitto)
  • A volume for authentication data (-v auth_data:/data)

Remote Access Installation

If you need to access BunkerM from outside the host machine:

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

Replace <HOST_IP> with your host machine's IP address or domain name.

2. Access the Interface

  • Open your browser and navigate to http://localhost:2000
  • The BunkerM web interface will load directly without any security warnings

3. Connect to the MQTT Broker

  • Default port: 1900
  • Make sure to add a new MQTT client from the UI (Client Accounts menu) to connect to the broker.

Add Client Screenshot

⭐ Core Features

Broker Dashboard

Monitor and control MQTT client connections in real-time through the "Recent MQTT Events" dashboard:

  • Connected clients count
  • Message statistics
  • Byte transfer rates
  • Subscription tracking
  • Retained message counts

Dashboard Screenshot

πŸ”’ Access Control List (ACL) Management

Manage your MQTT broker's clients:

Dynamic Security Screenshot

Client Management

  • Create new MQTT clients
  • Set client credentials
  • Manage client permissions
  • Group assignments

Role Management

  • Create and configure roles
  • Set up ACL rules
  • Define topic permissions
  • Manage access patterns

Group Management

  • Create client groups
  • Assign roles to groups
  • Manage group members
  • Set priorities

☁️ Cloud Integration (Pro Feature)

Connect to major cloud providers:

AWS IoT Core Bridge

  • AWS IoT endpoint configuration
  • Certificate management
  • Topic mapping
  • Secure communication

Azure IoT Hub Bridge

  • IoT Hub connection setup
  • Device authentication
  • SAS token management
  • Topic routing

πŸ”Œ REST API (Coming soon)

πŸ‘₯ MQTT Client Management

Connected Clients Screenshot

This module provides a real-time list of currently connected clients on a node, along with the ability to connect or disconnect an MQTT client using the "Enable" and "Disable" buttons.

πŸ› οΈ Troubleshooting

  • Verify Docker is running
  • Check port availability (2000)
  • Monitor Docker logs
  • Verify network connectivity
  • Check SSL certificate configuration

✨ Features

Infrastructure & Scaling

Feature Community Pro Enterprise
Max Clients Unlimited Unlimited Unlimited
High Availability & Clustering βœ— βœ— βœ“
Clustering for High Availability βœ— βœ— βœ“
Cluster Management UI βœ— βœ— βœ“
Load Balancer βœ— βœ— βœ“
Cluster Management REST API βœ— βœ“ βœ“
Enhanced HA Monitoring βœ— βœ— βœ“

Core Management

Feature Community Pro Enterprise
Dynamic Security βœ“ βœ“ βœ“
BunkerM Cluster Cloud Management βœ— βœ— βœ“
Multiple Connected Brokers βœ“ βœ“ βœ“
Edge Management UI βœ“ βœ“ βœ“

Security

Feature Community Pro Enterprise
Client Authentication (ID+Password) βœ“ βœ“ βœ“
Offline Authentication βœ— βœ“ βœ“
Client Certificate Authentication βœ— βœ— βœ“
Self-Signed SSL βœ“ βœ“ βœ“
PSK Authentication βœ— βœ— On-demand
Dynamic Security Plugin βœ“ βœ“ βœ“
ACLs (Client, Role, Group Levels) βœ“ βœ“ βœ“
Anonymous Client Access βœ— βœ“ βœ“
Custom CAs βœ— βœ— On-demand
HTTPS/TLS Termination βœ— βœ— βœ“
Audit Trail βœ— βœ— On-demand
OAuth 2.0 / JWT Authentication βœ“ βœ“ βœ“
LDAP Authentication βœ— βœ— βœ“

Cloud & Database Integrations

Feature Community Pro Enterprise
Azure IoT Hub βœ— βœ“ βœ“
AWS IoT Core βœ— βœ“ βœ“
Kafka Bridge βœ— βœ— On-demand
MongoDB/Atlas Bridge βœ— βœ— On-demand
MySQL Bridge βœ— βœ— On-demand
PostgreSQL Bridge βœ— βœ— On-demand
MariaDB Bridge βœ— βœ— On-demand
TimescaleDB Bridge βœ— βœ— On-demand
Amazon Redshift Bridge βœ— βœ— On-demand
CockroachDB Bridge βœ— βœ— On-demand
MS SQL Server Bridge βœ— βœ— On-demand
Oracle DB Bridge βœ— βœ— On-demand
Snowflake Bridge βœ— βœ— On-demand
InfluxDB Metrics Exporter βœ— βœ— On-demand
Prometheus Metrics Exporter βœ— βœ— On-demand

Monitoring & User Management

Feature Community Pro Enterprise
Broker Insights βœ“ βœ“ βœ“
Connected Clients Listing βœ“ βœ“ βœ“
Broker Status βœ— βœ“ βœ“
User Authentication βœ“ βœ“ βœ“
Unlimited Users βœ— βœ— βœ“
User Roles & RBAC βœ— βœ— βœ“
Single Sign-On (SSO) βœ— βœ— βœ“
REST APIs βœ— βœ— βœ“
Application Tokens βœ“ βœ“ βœ“
Client Control βœ“ βœ“ βœ“

Protocol Support

Feature Community Pro Enterprise
MQTT V3.1.1 βœ“ βœ“ βœ“
MQTT V5 βœ“ βœ“ βœ“
MQTT over TLS (MQTTS) βœ“ βœ“ βœ“
WebSockets (WS) βœ“ βœ“ βœ“
WebSockets over TLS (WSS) βœ“ βœ“ βœ“
Sparkplug βœ— βœ— βœ“
Sparkplug Decoding βœ“ βœ“ βœ“

MQTT Features

Feature Community Pro Enterprise
Quality of Service (QoS) Levels βœ“ βœ“ βœ“
Last Will Messages βœ“ βœ“ βœ“
Retained Messages βœ“ βœ“ βœ“
Persistent Connections βœ“ βœ“ βœ“
Mount Points βœ“ βœ“ βœ“

Platform Support

Feature Community Pro Enterprise
Docker (Linux, Windows, macOS, RPi) βœ“ βœ“ βœ“
RPM (RedHat, CentOS, Rocky Linux) βœ“ βœ“ βœ“
Kubernetes βœ“ βœ“ βœ“
OpenShift βœ“ βœ“ βœ“
Windows βœ“ βœ“ βœ“
White Labeling βœ— βœ— βœ“

πŸ’° Community vs Paid versions

My mission with BunkerM is to democratize IoT by making MQTT management accessible to everyone. The Community Version is designed to be lightweight, easy to use, and completely free, offering essential features for individuals and small projects.

However, to sustain the development of the Community Version and continue delivering value, I'm introducing Pro and Enterprise Versions. These versions are tailored for businesses and advanced users, offering additional features like:

  • Local authentication (no internet required)
  • Fine-grained RBAC (Role-Based Access Control)
  • LDAP and SSO integrations
  • Advanced monitoring and analytics
  • Enterprise-grade support

The revenue from the Pro and Enterprise versions will directly support the development and maintenance of the free Community Version. This way, I can keep BunkerM accessible to everyone while also meeting the needs of larger organizations.

If the open-source community shows enough support, I may consider making the Pro version free as well. Your feedback and contributions are invaluable in shaping the future of BunkerM!

❀️ Support BunkerM Project

BunkerM is an open-source project dedicated to making MQTT broker management accessible and secure for everyone. As a solo developer, I've poured countless hours into creating a comprehensive solution that combines the power of Mosquitto with an intuitive management interface, all while keeping it free for non-commercial use.

Your donation helps support:

  • Continuous development of new features
  • Maintenance and bug fixes
  • Documentation improvements
  • Community support

Every contribution, no matter the size, helps keep this project active and growing. If you find BunkerM useful in your projects or learning journey, consider supporting its development. Together, we can make IoT and MQTT technology more accessible to developers worldwide.

PayPal

Thank you for supporting open source! πŸ™

πŸ“œ License

This project is licensed under the Apache License 2.0. You are free to use, modify, and distribute this software, even for commercial purposes, under the terms of the license.

πŸ“œ Full license details: LICENSE
πŸ’Ό For any inquiries, feel free to reach out: support@bunkeriot.com