From c561914f495e0ad4580d38b7cd3c131d8085a40f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Mon, 17 Nov 2025 14:43:22 +0100 Subject: [PATCH] fix: route /terminal/ws path on main domain to realtime:6002 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The browser connects to wss://coolify.dev.pivoine.art/terminal/ws, not the terminal subdomain. Add path-based router with priority 100 to intercept /terminal/ws and route to coolify_realtime port 6002. Routes configured: - realtime.coolify.dev.pivoine.art → port 6001 (soketi) - terminal.coolify.dev.pivoine.art → port 6002 (terminal) - coolify.dev.pivoine.art/terminal/ws → port 6002 (terminal path) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- dev/compose.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dev/compose.yaml b/dev/compose.yaml index 061a265..1746ad1 100644 --- a/dev/compose.yaml +++ b/dev/compose.yaml @@ -143,6 +143,7 @@ services: - "traefik.http.middlewares.${DEV_COMPOSE_PROJECT_NAME}-coolify-web-secure-compress.compress=true" - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-coolify-web-secure.middlewares=${DEV_COMPOSE_PROJECT_NAME}-coolify-web-secure-compress,security-headers@file" - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-coolify-web-secure.service=${DEV_COMPOSE_PROJECT_NAME}-coolify" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-coolify-web-secure.priority=1" - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-coolify.loadbalancer.server.port=8080" # Network - "traefik.docker.network=${NETWORK_NAME}" @@ -182,15 +183,21 @@ services: - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-realtime-web-secure.service=${DEV_COMPOSE_PROJECT_NAME}-realtime" # Realtime service - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-realtime.loadbalancer.server.port=6001" - # Terminal (port 6002) - HTTP router + # Terminal (port 6002) - HTTP router for terminal subdomain - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web.rule=Host(`terminal.${DEV_COOLIFY_TRAEFIK_HOST}`)" - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web.entrypoints=web" - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web.service=${DEV_COMPOSE_PROJECT_NAME}-terminal" - # Terminal (port 6002) - HTTPS router + # Terminal (port 6002) - HTTPS router for terminal subdomain - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web-secure.rule=Host(`terminal.${DEV_COOLIFY_TRAEFIK_HOST}`)" - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web-secure.tls.certresolver=resolver" - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web-secure.entrypoints=web-secure" - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web-secure.service=${DEV_COMPOSE_PROJECT_NAME}-terminal" + # Terminal (port 6002) - HTTPS router for /terminal/ws path on main domain (PRIORITY 100) + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-ws.rule=Host(`${DEV_COOLIFY_TRAEFIK_HOST}`) && PathPrefix(`/terminal/ws`)" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-ws.tls.certresolver=resolver" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-ws.entrypoints=web-secure" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-ws.service=${DEV_COMPOSE_PROJECT_NAME}-terminal" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-ws.priority=100" # Terminal service - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-terminal.loadbalancer.server.port=6002" # Network