fix: route /terminal/ws path on main domain to realtime:6002

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 <noreply@anthropic.com>
This commit is contained in:
2025-11-17 14:43:22 +01:00
parent 96407fb57a
commit c561914f49

View File

@@ -143,6 +143,7 @@ services:
- "traefik.http.middlewares.${DEV_COMPOSE_PROJECT_NAME}-coolify-web-secure-compress.compress=true" - "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.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.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" - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-coolify.loadbalancer.server.port=8080"
# Network # Network
- "traefik.docker.network=${NETWORK_NAME}" - "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" - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-realtime-web-secure.service=${DEV_COMPOSE_PROJECT_NAME}-realtime"
# Realtime service # Realtime service
- "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-realtime.loadbalancer.server.port=6001" - "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.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.entrypoints=web"
- "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web.service=${DEV_COMPOSE_PROJECT_NAME}-terminal" - "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.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.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.entrypoints=web-secure"
- "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web-secure.service=${DEV_COMPOSE_PROJECT_NAME}-terminal" - "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 # Terminal service
- "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-terminal.loadbalancer.server.port=6002" - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-terminal.loadbalancer.server.port=6002"
# Network # Network