feat: add dedicated terminal service on port 6002 with path stripping

This commit is contained in:
2025-11-17 14:10:29 +01:00
parent 48fd6f87fe
commit 710222e705

View File

@@ -149,7 +149,7 @@ services:
# Watchtower # Watchtower
- "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}" - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}"
# Coolify Soketi (WebSocket server) # Coolify Soketi (WebSocket server for realtime)
coolify_soketi: coolify_soketi:
image: quay.io/soketi/soketi:1.0-16-alpine image: quay.io/soketi/soketi:1.0-16-alpine
container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify_soketi container_name: ${DEV_COMPOSE_PROJECT_NAME}_coolify_soketi
@@ -180,6 +180,38 @@ services:
# Watchtower # Watchtower
- "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}" - "com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}"
# Coolify Terminal (WebSocket server on port 6002 for terminal)
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}"
# Strip /terminal prefix
- "traefik.http.middlewares.${DEV_COMPOSE_PROJECT_NAME}-terminal-strip.stripprefix.prefixes=/terminal"
# HTTPS 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"
- "traefik.http.routers.${DEV_COMPOSE_PROJECT_NAME}-terminal.middlewares=${DEV_COMPOSE_PROJECT_NAME}-terminal-strip"
# 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}"
# n8n - Workflow automation platform # n8n - Workflow automation platform
n8n: n8n:
image: ${DEV_N8N_IMAGE:-docker.n8n.io/n8nio/n8n} image: ${DEV_N8N_IMAGE:-docker.n8n.io/n8nio/n8n}