From 84bdc7bbdbcbc6a3bd85a63ec5e397bf0e263a16 Mon Sep 17 00:00:00 2001 From: Teck Meng Date: Tue, 23 Apr 2024 20:58:53 +0800 Subject: [PATCH] Add MQTT router and EMQX dashboard service to traefik.yml --- compose/traefik/traefik.yml | 14 ++++++++ production.yml | 69 ++++++++++++++++++++++++++++++++----- 2 files changed, 74 insertions(+), 9 deletions(-) diff --git a/compose/traefik/traefik.yml b/compose/traefik/traefik.yml index b691251..248b776 100644 --- a/compose/traefik/traefik.yml +++ b/compose/traefik/traefik.yml @@ -120,6 +120,16 @@ http: tls: certResolver: letsencrypt + mqtt-router: + rule: "Host(`mqtt.furyhawk.lol`)" + entryPoints: + - web-secure + middlewares: + - csrf + service: emqx-dashboard + tls: + certResolver: letsencrypt + mqttx-router: rule: "Host(`mqttx.furyhawk.lol`)" entryPoints: @@ -267,6 +277,10 @@ http: loadBalancer: servers: - url: http://LibreChat:3080 + emqx-dashboard: + loadBalancer: + servers: + - url: http://emqx1:18083 mqttx-web: loadBalancer: servers: diff --git a/production.yml b/production.yml index d403ac4..58021c7 100644 --- a/production.yml +++ b/production.yml @@ -11,6 +11,10 @@ x-environment: &default-environment volumes: production_traefik: {} portainer_data: {} + vol-emqx-data1: + name: foo-emqx-data1 + vol-emqx-data2: + name: foo-emqx-data2 services: osrm-backend: @@ -32,16 +36,61 @@ services: networks: - net - default + emqx1: + image: emqx:latest + container_name: emqx1 + environment: + - "EMQX_NODE_NAME=emqx@node1.emqx.io" + - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" + - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io,emqx@node2.emqx.io]" + healthcheck: + test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"] + interval: 5s + timeout: 25s + retries: 5 + networks: + - net + - emqx-bridge: + aliases: + - node1.emqx.io + ports: + - 1883:1883 + - 8083:8083 + - 8084:8084 + - 8883:8883 + - 18083:18083 + volumes: + - vol-emqx-data1:/opt/emqx/data - # mqttx-web: - # image: emqx/mqttx-web:latest - # container_name: mqttx_web - # restart: unless-stopped - # expose: - # - 80 - # networks: - # - net - # - default + emqx2: + image: emqx:latest + container_name: emqx2 + environment: + - "EMQX_NODE_NAME=emqx@node2.emqx.io" + - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" + - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io,emqx@node2.emqx.io]" + healthcheck: + test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"] + interval: 5s + timeout: 25s + retries: 5 + networks: + emqx-bridge: + aliases: + - node2.emqx.io + volumes: + - vol-emqx-data2:/opt/emqx/data + + mqttx-web: + image: emqx/mqttx-web:latest + container_name: mqttx_web + restart: unless-stopped + expose: + - 80 + networks: + - emqx-bridge + - net + - default heynote-app: image: furyhawk/heynote:${HEYNOTETAG:-latest} @@ -175,6 +224,8 @@ services: - "443:443" networks: + emqx-bridge: + driver: bridge net: external: true name: ${NETWORK:-web} \ No newline at end of file