diff --git a/traefik/config/acme.json b/traefik/config/acme.json new file mode 100644 index 0000000..e69de29 diff --git a/traefik/config/acme.json.misplaced b/traefik/config/acme.json.misplaced new file mode 100644 index 0000000..e69de29 diff --git a/traefik/config/mqtt-websocket-enhanced.yml.old b/traefik/config/mqtt-websocket-enhanced.yml.old new file mode 100644 index 0000000..f24d1b3 --- /dev/null +++ b/traefik/config/mqtt-websocket-enhanced.yml.old @@ -0,0 +1,45 @@ +http: + middlewares: + mqtt-websocket-headers: + headers: + customResponseHeaders: + Access-Control-Allow-Origin: "*" + accessControlAllowMethods: + - "GET" + - "POST" + - "PUT" + - "DELETE" + - "OPTIONS" + accessControlAllowHeaders: + - "Origin" + - "Accept" + - "Content-Type" + - "X-Requested-With" + - "Authorization" + accessControlMaxAge: 600 + + routers: + mqtt-ws: + rule: "Host(`mqtt.eluxnetworks.net`) && PathPrefix(`/ws`)" + service: "mqtt-ws-service" + entrypoints: ["websecure"] + tls: + certresolver: "letsencrypt" + middlewares: + - mqtt-websocket-headers + + services: + mqtt-ws-service: + loadBalancer: + passHostHeader: true + serversTransport: "websocket-transport" + servers: + - url: "ws://192.168.68.70:9003" + +# Create a specific transport for WebSockets to ensure proper handling of connections + serversTransports: + websocket-transport: + forwardingTimeouts: + dialTimeout: 30s + responseHeaderTimeout: 30s + idleConnTimeout: 120s diff --git a/traefik/config/mqtt-websocket-final.yml b/traefik/config/mqtt-websocket-final.yml new file mode 100644 index 0000000..ea78a05 --- /dev/null +++ b/traefik/config/mqtt-websocket-final.yml @@ -0,0 +1,49 @@ +http: + middlewares: + mqtt-websocket-headers: + headers: + customResponseHeaders: + Access-Control-Allow-Origin: "*" + + mqtt-websocket: + stripPrefix: + prefixes: ["/ws"] + forceSlash: false + + mqtt-wss: + stripPrefix: + prefixes: ["/wss"] + forceSlash: false + + routers: + mqtt-ws: + rule: "Host(`mqtt.eluxnetworks.net`) && PathPrefix(`/ws`)" + service: "mqtt-ws-service" + entrypoints: ["websecure"] + tls: + certresolver: "letsencrypt" + middlewares: + - mqtt-websocket-headers + - mqtt-websocket + + mqtt-wss: + rule: "Host(`mqtt.eluxnetworks.net`) && PathPrefix(`/wss`)" + service: "mqtt-wss-service" + entrypoints: ["websecure"] + tls: + certresolver: "letsencrypt" + middlewares: + - mqtt-websocket-headers + - mqtt-wss + + services: + mqtt-ws-service: + loadBalancer: + servers: + - url: "http://192.168.68.70:9003" + + mqtt-wss-service: + loadBalancer: + servers: + - url: "http://192.168.68.70:9003" + diff --git a/traefik/config/mqtt-websocket.yml.disabled b/traefik/config/mqtt-websocket.yml.disabled new file mode 100644 index 0000000..5fb378b --- /dev/null +++ b/traefik/config/mqtt-websocket.yml.disabled @@ -0,0 +1,33 @@ +http: + middlewares: + mqtt-ws-headers: + headers: + customRequestHeaders: + Connection: "Upgrade" + Upgrade: "websocket" + customResponseHeaders: + Access-Control-Allow-Origin: "*" + + routers: + mqtt-ws: + rule: "Host(`mqtt.eluxnetworks.net`) && PathPrefix(`/ws`)" + middlewares: + - mqtt-ws-headers + service: "mqtt-ws-service" + entrypoints: ["websecure"] + tls: {} + + services: + mqtt-ws-service: + loadBalancer: + serversTransport: websocketTransport + servers: + - url: "http://192.168.68.70:9003" + + serversTransports: + websocketTransport: + forwardingTimeouts: + dialTimeout: 60 + responseHeaderTimeout: 60 + idleConnTimeout: 60 +