diff --git a/blueprints/emqx/docker-compose.yml b/blueprints/emqx/docker-compose.yml new file mode 100644 index 00000000..4b11f010 --- /dev/null +++ b/blueprints/emqx/docker-compose.yml @@ -0,0 +1,58 @@ +# This templates requires additional traefik port mapping and entry point +# for port 8883 (mqtts over TCP) +# +# For the full instructions, refer to: +# - https://github.com/Dokploy/dokploy/discussions/3126 +# +# The initial login credentials are: +# - USERNAME: admin +# - PASSWORD: public + +services: + emqx: + image: emqx/emqx-enterprise:6.0.1 + hostname: node1.emqx.com + environment: + EMQX_NODE_NAME: emqx@node1.emqx.com + expose: + - 1883 # MQTT + - 8083 # WS + - 18083 # Dashboard + volumes: + - emqx_data:/opt/emqx/data + - emqx_log:/opt/emqx/log + networks: + dokploy-network: + aliases: + - emqx-service + restart: unless-stopped + healthcheck: + test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"] + interval: 30s + timeout: 5s + retries: 3 + labels: + # MQTT over TLS + - "traefik.tcp.routers.emqx-mqtts.entrypoints=mqtts" + - "traefik.tcp.routers.emqx-mqtts.rule=HostSNI(`broker.yourdomain.com`)" # Change domain + - "traefik.tcp.routers.emqx-mqtts.tls.certresolver=letsencrypt" + - "traefik.tcp.routers.emqx-mqtts.service=emqx-service" + - "traefik.tcp.services.emqx-service.loadbalancer.server.port=1883" + + # + # Optional Web UI: + # - https://github.com/emqx/MQTTX/tree/main/web + # + # mqttx-web: + # image: emqx/mqttx-web:latest + # expose: + # - 80 + # + +volumes: + emqx_data: + emqx_log: + +networks: + dokploy-network: + external: true diff --git a/blueprints/emqx/emqx.svg b/blueprints/emqx/emqx.svg new file mode 100644 index 00000000..ce0c1ec9 --- /dev/null +++ b/blueprints/emqx/emqx.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/blueprints/emqx/template.toml b/blueprints/emqx/template.toml new file mode 100644 index 00000000..5fc03e5f --- /dev/null +++ b/blueprints/emqx/template.toml @@ -0,0 +1,11 @@ +[variables] + +[[config.domains]] +serviceName = "emqx" +port = 18083 +host = "emqx.yourdomain.com" + +[[config.domains]] +serviceName = "emqx" +port = 8083 +host = "broker.yourdomain.com" diff --git a/meta.json b/meta.json index 9689043e..753d3f87 100644 --- a/meta.json +++ b/meta.json @@ -2103,6 +2103,23 @@ "media system" ] }, + { + "id": "emqx", + "name": "EMQX", + "version": "6.0.1", + "description": "A scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles", + "logo": "emqx.svg", + "links": { + "github": "https://github.com/emqx/emqx", + "website": "https://www.emqx.com", + "docs": "https://docs.emqx.com" + }, + "tags": [ + "broker", + "iot", + "mqtt" + ] + }, { "id": "enshrouded", "name": "Enshrouded",