From 69160a6dbdf90c2ba0986205c28ecf2114b718d5 Mon Sep 17 00:00:00 2001 From: Matheus Fillipe Date: Mon, 18 May 2026 17:22:18 +0200 Subject: [PATCH 1/2] compose: drop hardcoded container_name to allow parallel deploys --- compose.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/compose.yaml b/compose.yaml index 2cb65be..eb9fc63 100644 --- a/compose.yaml +++ b/compose.yaml @@ -9,7 +9,6 @@ services: obbyircd: image: ${OBBYIRCD_IMAGE:-mattfly/obbyircd:latest} - container_name: obbyircd restart: unless-stopped expose: - "8080" @@ -43,7 +42,6 @@ services: obby-api: image: ${OBBY_API_IMAGE:-mattfly/obby-api:latest} - container_name: obby-api restart: unless-stopped depends_on: obbyircd: @@ -81,7 +79,6 @@ services: obby: image: ${OBBY_WEB_IMAGE:-mattfly/obby:latest} - container_name: obby-web restart: unless-stopped profiles: ["frontend"] expose: From a3fce52ba43e9205eb61da2e5899e5c9f1242e63 Mon Sep 17 00:00:00 2001 From: Matheus Fillipe Date: Mon, 18 May 2026 19:15:46 +0200 Subject: [PATCH 2/2] compose: WSS on API host via Traefik header routing Route WSS upgrades on the API hostname to obbyircd:8080 with priority 100; everything else on the same host falls through to obby-api. Lets a web client point at wss:// instead of needing a separate ws subdomain. Uses SERVICE_FQDN_OBBY_API on Coolify (substituted before label escaping); falls back to API_FQDN for raw docker-compose users. --- compose.yaml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/compose.yaml b/compose.yaml index eb9fc63..e612828 100644 --- a/compose.yaml +++ b/compose.yaml @@ -36,9 +36,19 @@ services: start_period: 30s labels: - traefik.enable=true - - traefik.http.routers.obbyircd.rule=Host(`${IRC_FQDN}`) - - traefik.http.routers.obbyircd.tls=true - - traefik.http.services.obbyircd.loadbalancer.server.port=8080 + # WSS rides the same host as the API. Traefik sees the + # Upgrade: websocket header and routes those requests here; + # everything else on the same host falls through to obby-api + # via its own router (longer rule + explicit priority wins). + # On Coolify, SERVICE_FQDN_OBBY_API expands to the obby-api + # FQDN before label escaping; raw docker-compose users can + # set API_FQDN in .env and it works the same way. + - 'traefik.http.routers.obbyircd-ws.rule=Host(`${SERVICE_FQDN_OBBY_API:-${API_FQDN}}`) && HeaderRegexp(`Upgrade`, `websocket`)' + - traefik.http.routers.obbyircd-ws.entryPoints=https + - traefik.http.routers.obbyircd-ws.tls=true + - traefik.http.routers.obbyircd-ws.tls.certresolver=letsencrypt + - traefik.http.routers.obbyircd-ws.priority=100 + - traefik.http.services.obbyircd-ws.loadbalancer.server.port=8080 obby-api: image: ${OBBY_API_IMAGE:-mattfly/obby-api:latest}