diff --git a/compose.yml b/compose.yml index a48e9f4..6273391 100644 --- a/compose.yml +++ b/compose.yml @@ -14,5 +14,5 @@ include: - compose/base.yml - compose/services.yml - compose/apps.yml - - emqx-docker/docker-compose.yml + - compose/deploy-emqx.yml - compose/deploy-librechat.yml diff --git a/compose/deploy-emqx.yml b/compose/deploy-emqx.yml new file mode 100644 index 0000000..d3e146f --- /dev/null +++ b/compose/deploy-emqx.yml @@ -0,0 +1,83 @@ +volumes: + vol-emqx-data1: + name: foo-emqx-data1 + external: true + # vol-emqx-data2: + # name: foo-emqx-data2 + # external: true + +services: + 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: 60s + 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 + labels: + - "traefik.enable=true" + - "traefik.http.routers.emqx1.entrypoints=web-secure" + - "traefik.http.routers.emqx1.rule=Host(`mqtt.${DOMAINNAME}`)" + - "traefik.http.routers.emqx1.tls.certresolver=letsencrypt" + - "traefik.http.routers.emqx1.service=emqx-dashboard" + - "traefik.http.services.emqx-dashboard.loadbalancer.server.port=18083" + + # 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: 60s + # timeout: 25s + # retries: 5 + # networks: + # net: + # 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 + networks: + - net + labels: + - "traefik.enable=true" + - "traefik.http.routers.mqttx-web.entrypoints=web-secure" + - "traefik.http.routers.mqttx-web.rule=Host(`mqttx.${DOMAINNAME}`)" + - "traefik.http.routers.mqttx-web.tls.certresolver=letsencrypt" + - "traefik.http.routers.mqttx-web.service=mqttx-web-service" + - "traefik.http.services.mqttx-web-service.loadbalancer.server.port=80" + +networks: + # emqx-bridge: + # driver: bridge + net: + external: true + name: ${NETWORK:-web} + diff --git a/compose/traefik/traefik.yml b/compose/traefik/traefik.yml index e5da614..642e234 100644 --- a/compose/traefik/traefik.yml +++ b/compose/traefik/traefik.yml @@ -126,15 +126,15 @@ http: # certResolver: letsencrypt # service: kestra_app - plane-router: - entryPoints: - - web-secure - rule: "Host(`plan.furyhawk.lol`) || Host(`plane.furyhawk.lol`)" - middlewares: - - csrf - tls: - certResolver: letsencrypt - service: plane_app + # plane-router: + # entryPoints: + # - web-secure + # rule: "Host(`plan.furyhawk.lol`) || Host(`plane.furyhawk.lol`)" + # middlewares: + # - csrf + # tls: + # certResolver: letsencrypt + # service: plane_app # graph-router: # entryPoints: @@ -146,15 +146,15 @@ http: # certResolver: letsencrypt # service: neo4j-bolt - mqtt-http-router: - entryPoints: - - web-secure - rule: "Host(`mqtt.furyhawk.lol`)" - middlewares: - - csrf - tls: - certResolver: letsencrypt - service: emqx-dashboard + # mqtt-http-router: + # entryPoints: + # - web-secure + # rule: "Host(`mqtt.furyhawk.lol`)" + # middlewares: + # - csrf + # tls: + # certResolver: letsencrypt + # service: emqx-dashboard # mqtt-socket-router: # rule: "Host(`mqtt.furyhawk.lol`)" @@ -180,16 +180,6 @@ http: - csrf service: emqx-web-socket-secure - mqttx-router: - entryPoints: - - web-secure - rule: "Host(`mqttx.furyhawk.lol`)" - middlewares: - - csrf - tls: - certResolver: letsencrypt - service: mqttx-web - middlewares: auth: basicAuth: @@ -276,14 +266,14 @@ http: # loadBalancer: # servers: # - url: http://neo4j_server:7687 - plane_app: - loadBalancer: - servers: - - url: http://node01:80 - emqx-mqtt-socket: - loadBalancer: - servers: - - url: http://emqx1:1883 + # plane_app: + # loadBalancer: + # servers: + # - url: http://node01:80 + # emqx-mqtt-socket: + # loadBalancer: + # servers: + # - url: http://emqx1:1883 emqx-web-socket: loadBalancer: servers: @@ -294,14 +284,10 @@ http: servers: - url: http://emqx1:8084 # - url: http://emqx2:8084 - emqx-dashboard: - loadBalancer: - servers: - - url: http://emqx1:18083 - mqttx-web: - loadBalancer: - servers: - - url: http://mqttx_web:80 + # emqx-dashboard: + # loadBalancer: + # servers: + # - url: http://emqx1:18083 providers: # https://docs.traefik.io/master/providers/file/