From eb103489888d020b59b2cf69e5004cae5e5f1883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Mon, 17 Nov 2025 13:40:33 +0100 Subject: [PATCH] fix: merge terminal into single coolify_soketi container with dual ports --- dev/compose.yaml | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/dev/compose.yaml b/dev/compose.yaml index cdc6338..72ebeb3 100644 --- a/dev/compose.yaml +++ b/dev/compose.yaml @@ -97,8 +97,6 @@ services: depends_on: coolify_soketi: condition: service_started - coolify_terminal: - condition: service_started volumes: - coolify_data:/data/coolify - /var/run/docker.sock:/var/run/docker.sock @@ -128,8 +126,6 @@ services: - PUSHER_APP_SECRET=${DEV_COOLIFY_PUSHER_APP_SECRET} - PUSHER_SCHEME=https - SSL_MODE=off - - TERMINAL_HOST=${DEV_COMPOSE_PROJECT_NAME}_coolify_terminal - - TERMINAL_PORT=6002 networks: - compose_network labels: @@ -153,9 +149,9 @@ services: # Watchtower - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}" - # Coolify Soketi (WebSocket server for realtime) + # Coolify Soketi (WebSocket server for realtime + terminal) coolify_soketi: - image: quay.io/soketi/soketi:1.0-16-alpine + image: ${DEV_COOLIFY_REALTIME_IMAGE:-ghcr.io/coollabsio/coolify-realtime:1.0.10} container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify_soketi restart: unless-stopped environment: @@ -163,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", "wget", "-qO-", "http://127.0.0.1:6001/ready"] + test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:6001/ready && wget -qO- http://127.0.0.1:6002/ready || exit 1"] interval: 5s - timeout: 5s + timeout: 2s retries: 10 networks: - compose_network @@ -180,27 +176,17 @@ 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 (port 6002) on main Coolify domain + - "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" + # Service for terminal + - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-soketi-terminal.loadbalancer.server.port=6002" - "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 - # n8n - Workflow automation platform n8n: image: ${DEV_N8N_IMAGE:-docker.n8n.io/n8nio/n8n}