From d90f0179df2b2852760dcacfa595cfb4d523da2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Mon, 17 Nov 2025 13:04:08 +0100 Subject: [PATCH] feat: route Coolify terminal WebSocket to Soketi port 6002 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move /terminal/ws routing from main Coolify container to Soketi - Configure Traefik to route terminal WebSocket traffic to port 6002 - Add high priority (100) to ensure path matching - Based on official Coolify docker-compose.prod.yml configuration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- dev/compose.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/dev/compose.yaml b/dev/compose.yaml index f208988..326fe27 100644 --- a/dev/compose.yaml +++ b/dev/compose.yaml @@ -144,13 +144,6 @@ services: - "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.services.${DEV_COMPOSE_PROJECT_NAME}-coolify.loadbalancer.server.port=8080" - # Terminal WebSocket - map to port 6002 - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-coolify-terminal.rule=Host(`${DEV_COOLIFY_TRAEFIK_HOST}`) && PathPrefix(`/terminal/ws`)" - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-coolify-terminal.entrypoints=web-secure" - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-coolify-terminal.tls.certresolver=resolver" - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-coolify-terminal.priority=100" - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-coolify-terminal.service=${DEV_COMPOSE_PROJECT_NAME}-coolify-terminal" - - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-coolify-terminal.loadbalancer.server.port=6002" # Network - "traefik.docker.network=${NETWORK_NAME}" # Watchtower @@ -183,6 +176,14 @@ services: - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-web-secure.entrypoints=web-secure" # Service - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-soketi-web-secure.loadbalancer.server.port=6001" + # Terminal WebSocket - route /terminal/ws to port 6002 on Soketi + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-terminal.rule=Host(`${DEV_COOLIFY_TRAEFIK_HOST}`) && PathPrefix(`/terminal/ws`)" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-terminal.entrypoints=web-secure" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-terminal.tls.certresolver=resolver" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-terminal.priority=100" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-terminal.service=${DEV_COMPOSE_PROJECT_NAME}-soketi-terminal" + - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-soketi-terminal.loadbalancer.server.port=6002" + # Network - "traefik.docker.network=${NETWORK_NAME}" # Watchtower - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}"