From 3050bbb85994bf9c2d95b1e34fa74c6d93349b21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Mon, 17 Nov 2025 13:31:00 +0100 Subject: [PATCH] feat: add dedicated coolify_terminal service for port 6002 --- dev/compose.yaml | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/dev/compose.yaml b/dev/compose.yaml index 25c96d4..17e6874 100644 --- a/dev/compose.yaml +++ b/dev/compose.yaml @@ -149,9 +149,9 @@ services: # Watchtower - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}" - # Coolify Soketi (WebSocket server) + # Coolify Soketi (WebSocket server for realtime) coolify_soketi: - image: ${DEV_COOLIFY_REALTIME_IMAGE:-ghcr.io/coollabsio/coolify-realtime:1.0.10} + image: quay.io/soketi/soketi:1.0-16-alpine container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify_soketi restart: unless-stopped environment: @@ -159,9 +159,9 @@ services: - SOKETI_DEFAULT_APP_KEY=${DEV_COOLIFY_PUSHER_APP_KEY} - SOKETI_DEFAULT_APP_SECRET=${DEV_COOLIFY_PUSHER_APP_SECRET} healthcheck: - test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:6001/ready && wget -qO- http://127.0.0.1:6002/ready || exit 1"] + test: ["CMD", "wget", "-qO-", "http://127.0.0.1:6001/ready"] interval: 5s - timeout: 2s + timeout: 5s retries: 10 networks: - compose_network @@ -176,14 +176,35 @@ 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 router (port 6002) - - "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}" + + # Coolify Terminal (WebSocket server for terminal on port 6002) + coolify_terminal: + image: ${DEV_COOLIFY_REALTIME_IMAGE:-ghcr.io/coollabsio/coolify-realtime:1.0.10} + container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify_terminal + restart: unless-stopped + environment: + - SOKETI_DEFAULT_APP_ID=${DEV_COOLIFY_PUSHER_APP_ID} + - SOKETI_DEFAULT_APP_KEY=${DEV_COOLIFY_PUSHER_APP_KEY} + - SOKETI_DEFAULT_APP_SECRET=${DEV_COOLIFY_PUSHER_APP_SECRET} + healthcheck: + test: ["CMD", "wget", "-qO-", "http://127.0.0.1:6002/ready"] + interval: 5s + timeout: 5s + retries: 10 + networks: + - compose_network + labels: + - "traefik.enable=${DEV_TRAEFIK_ENABLED}" + # Terminal WebSocket router + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal.rule=Host(`${DEV_COOLIFY_TRAEFIK_HOST}`) && PathPrefix(`/terminal/ws`)" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal.entrypoints=web-secure" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal.tls.certresolver=resolver" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal.priority=100" + # Service + - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-terminal.loadbalancer.server.port=6002" - "traefik.docker.network=${NETWORK_NAME}" # Watchtower - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}"