rocworks/monstermq-edge

By rocworks

Updated 5 days ago

MonsterMQ Edge — embedded MQTT broker with bridging, GraphQL API, and optional persistence.

Image
Message queues
Internet of things
0

409

rocworks/monstermq-edge repository overview

MonsterMQ Edge

Lightweight MQTT 3.1.1 / 5.0 broker for edge devices and gateways. Single static
Go binary with built-in SQLite persistence, MQTT-to-MQTT bridging, and a GraphQL management API. Multi-arch images are available for linux/amd64, linux/arm64,
and linux/arm/v7 — suitable for industrial gateways such as Siemens Industrial Edge.

Quick start

Run with persistent SQLite storage on the host:

mkdir -p ./monstermq-data
                                                                                                                      
docker run --rm -d \
  --name monstermq-edge \                                                                                             
  -p 1883:1883 \                                          
  -p 1884:1884 \
  -p 4000:4000 \
  -v "$(pwd)/monstermq-data:/cfg-data" \
  rocworks/monstermq-edge:latest                                                                                      

The default config stores the database at /cfg-data/monstermq.db, so the host
directory will contain monstermq.db (plus -shm / -wal files at runtime).

Custom configuration

To override the config, drop a config.yaml into the mounted /cfg-data
directory — the entrypoint uses /cfg-data/config.yaml if present, otherwise it falls back to the bundled default at /etc/monstermq/config.yaml:

cp my-config.yaml ./monstermq-data/config.yaml            

docker run --rm -d \
  --name monstermq-edge \                                                                                             
  -p 1883:1883 \
  -p 1884:1884 \                                                                                                      
  -p 4000:4000 \                                          
  -v "$(pwd)/monstermq-data:/cfg-data" \
  rocworks/monstermq-edge:latest                                                                                      

Or mount the config from a separate location:

docker run --rm -d \
  --name monstermq-edge \                                                                                             
  -p 1883:1883 \
  -p 1884:1884 \                                                                                                      
  -p 4000:4000 \                                          
  -v "$(pwd)/monstermq-data:/cfg-data" \
  -v "$(pwd)/my-config.yaml:/cfg-data/config.yaml:ro" \                                                               
  rocworks/monstermq-edge:latest

docker compose

services:
  monstermq-edge:
    image: rocworks/monstermq-edge:latest
    container_name: monstermq-edge
    restart: unless-stopped                                                                                           
    ports:
      - "1883:1883"                                                                                                   
      - "1884:1884"                                       
      - "4000:4000"
    volumes:
      - ./monstermq-data:/cfg-data                                                                                    
      # optional: drop a config.yaml into ./monstermq-data to override defaults

Ports

PortPurpose
1883MQTT TCP
1884MQTT WebSocket
4000GraphQL management API
8883MQTT TLS (only when enabled in config)
8884MQTT WSS (only when enabled in config)

Tags

  • latest — latest stable release
  • <version> — pinned semver release (e.g. 0.1.1)
  • testing — pre-release / development builds

Supported architectures

  • linux/amd64
  • linux/arm64
  • linux/arm/v7

Source

github.com/vogler75/monster-mq-edge

Tag summary

Content type

Image

Digest

sha256:fa41a1352

Size

13.5 MB

Last updated

5 days ago

docker pull rocworks/monstermq-edge