From 074c7ae5d4697e3fabd6f61762f9bd7272588b43 Mon Sep 17 00:00:00 2001 From: Brian Vargyas Date: Thu, 3 Sep 2026 16:43:46 -0400 Subject: [PATCH] Add Komodo deploy compose (shared tunnel, no cloudflared sidecar) The stack is deployed by Komodo onto an existing Docker host that already sits behind a shared Cloudflare Tunnel, so the app publishes a host port and the tunnel routes the public hostname to it. Secrets come from the stack env. --- docker-compose.komodo.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 docker-compose.komodo.yml diff --git a/docker-compose.komodo.yml b/docker-compose.komodo.yml new file mode 100644 index 0000000..d5693ce --- /dev/null +++ b/docker-compose.komodo.yml @@ -0,0 +1,33 @@ +# Courtside as managed by Komodo. +# +# Difference from docker-compose.yml: no bundled cloudflared. This deployment +# sits behind an existing shared Cloudflare Tunnel that routes the public +# hostname straight to the published host port below, so there is no second +# tunnel or tunnel token to manage here. +# +# ADMIN_PASSWORD and SESSION_SECRET come from the Komodo stack's environment, +# never from a file in this repo. +services: + app: + build: . + image: courtside:latest + restart: unless-stopped + ports: + - "${HOST_PORT:-8090}:3000" + environment: + PORT: "3000" + DB_PATH: /data/courtside.sqlite + ADMIN_PASSWORD: ${ADMIN_PASSWORD} + SESSION_SECRET: ${SESSION_SECRET} + TRUST_CF_ACCESS: "${TRUST_CF_ACCESS:-false}" + volumes: + - courtside-data:/data + mem_limit: 512m + healthcheck: + test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/healthz"] + interval: 30s + timeout: 5s + retries: 3 + +volumes: + courtside-data: