Emqx - Scalable MQTT broker
docker-compose.yml | cluster
services:
emqx1:
image: emqx:5.8.2
container_name: emqx1
environment:
- "[email protected]"
- "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
- "EMQX_CLUSTER__STATIC__SEEDS=[[email protected],[email protected]]"
healthcheck:
test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
interval: 5s
timeout: 25s
retries: 5
networks:
emqx-bridge:
aliases:
- node1.example.dev
ports:
- 1883:1883
- 8083:8083
- 8084:8084
- 8883:8883
- 18083:18083
volumes:
- ./emqx1_data:/opt/emqx/data
emqx2:
image: emqx:5.8.2
container_name: emqx2
environment:
- "[email protected]"
- "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
- "EMQX_CLUSTER__STATIC__SEEDS=[[email protected],[email protected]]"
healthcheck:
test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
interval: 5s
timeout: 25s
retries: 5
networks:
emqx-bridge:
aliases:
- node2.example.dev
volumes:
- ./emqx2_data:/opt/emqx/data
networks:
emqx-bridge:
driver: bridge
Initial creds
- username: admin
- password: public
Env Vars
EMQX_LISTENER__SSL__EXTERNAL__ACCEPTORS <--> listener.ssl.external.acceptors
EMQX_MQTT__MAX_PACKET_SIZE <--> mqtt.max_packet_size
EMQX_NAME container name none emqx node short name EMQX_HOST container IP none emqx node host, IP or FQDN EMQX_WAIT_TIME 5 none wait time in sec before timeout EMQX_NODE__NAME EMQX_NAME@EMQX_HOST node.name Erlang node name, name@ipaddress/host EMQX_NODE__COOKIE emqx_dist_cookie node.cookie cookie for cluster EMQX_LOG__CONSOLE console log.console log console output method EMQX_ALLOW_ANONYMOUS true allow_anonymous allow mqtt anonymous login EMQX_LISTENER__TCP__EXTERNAL 1883 listener.tcp.external MQTT TCP port EMQX_LISTENER__SSL__EXTERNAL 8883 listener.ssl.external MQTT TCP TLS/SSL port EMQX_LISTENER__WS__EXTERNAL 8083 listener.ws.external HTTP and WebSocket port EMQX_LISTENER__WSS__EXTERNAL 8084 listener.wss.external HTTPS and WSS port EMQX_LISTENER__API__MGMT 8080 listener.api.mgmt MGMT API port EMQX_MQTT__MAX_PACKET_SIZE 64KB mqtt.max_packet_size Max Packet Size Allowed