diff --git a/dev/compose.yaml b/dev/compose.yaml index 2aaeba4..061a265 100644 --- a/dev/compose.yaml +++ b/dev/compose.yaml @@ -95,9 +95,7 @@ services: container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify restart: unless-stopped depends_on: - coolify_soketi: - condition: service_started - coolify_terminal: + coolify_realtime: condition: service_healthy volumes: - coolify_data:/data/coolify @@ -127,8 +125,6 @@ services: - PUSHER_APP_KEY=${DEV_COOLIFY_PUSHER_APP_KEY} - PUSHER_APP_SECRET=${DEV_COOLIFY_PUSHER_APP_SECRET} - PUSHER_SCHEME=https - - TERMINAL_HOST=terminal.${DEV_COOLIFY_TRAEFIK_HOST} - - TERMINAL_PORT=443 - SSL_MODE=off networks: - compose_network @@ -153,64 +149,51 @@ services: # Watchtower - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}" - # Coolify Soketi (WebSocket server for realtime) - coolify_soketi: - image: quay.io/soketi/soketi:1.0-16-alpine - container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify_soketi - 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:6001/ready"] - interval: 5s - timeout: 5s - retries: 10 - networks: - - compose_network - labels: - - "traefik.enable=${DEV_TRAEFIK_ENABLED}" - # HTTP router - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-web.rule=Host(`realtime.${DEV_COOLIFY_TRAEFIK_HOST}`)" - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-web.entrypoints=web" - # HTTPS router - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-web-secure.rule=Host(`realtime.${DEV_COOLIFY_TRAEFIK_HOST}`)" - - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-soketi-web-secure.tls.certresolver=resolver" - - "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" - - "traefik.docker.network=${NETWORK_NAME}" - # Watchtower - - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}" - - # Coolify Terminal (WebSocket server on port 6002) - coolify_terminal: + # Coolify Realtime (WebSocket server for realtime AND terminal) + coolify_realtime: image: ${DEV_COOLIFY_REALTIME_IMAGE:-ghcr.io/coollabsio/coolify-realtime:1.0.10} - container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify_terminal + container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify_realtime restart: unless-stopped + volumes: + - /data/coolify/ssh:/var/www/html/storage/app/ssh environment: + - APP_NAME=Coolify + - SOKETI_DEBUG=${SOKETI_DEBUG:-false} - 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"] + test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:6001/ready && wget -qO- http://127.0.0.1:6002/ready"] interval: 5s - timeout: 5s + timeout: 2s retries: 10 networks: - compose_network labels: - "traefik.enable=${DEV_TRAEFIK_ENABLED}" - # HTTP router + # Realtime (port 6001) - HTTP router + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-realtime-web.rule=Host(`realtime.${DEV_COOLIFY_TRAEFIK_HOST}`)" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-realtime-web.entrypoints=web" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-realtime-web.service=${DEV_COMPOSE_PROJECT_NAME}-realtime" + # Realtime (port 6001) - HTTPS router + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-realtime-web-secure.rule=Host(`realtime.${DEV_COOLIFY_TRAEFIK_HOST}`)" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-realtime-web-secure.tls.certresolver=resolver" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-realtime-web-secure.entrypoints=web-secure" + - "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 - "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" - # HTTPS router + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web.service=${DEV_COMPOSE_PROJECT_NAME}-terminal" + # Terminal (port 6002) - HTTPS router - "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" - # Service - - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-terminal-web-secure.loadbalancer.server.port=6002" + - "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal-web-secure.service=${DEV_COMPOSE_PROJECT_NAME}-terminal" + # Terminal service + - "traefik.http.services.${DEV_COMPOSE_PROJECT_NAME}-terminal.loadbalancer.server.port=6002" + # Network - "traefik.docker.network=${NETWORK_NAME}" # Watchtower - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}"