From d82705d8ab15df5751b1d0f7b17aeff441db9eaa Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 28 Aug 2026 19:06:15 +0000 Subject: [PATCH] =?UTF-8?q?feat(deploy):=20coolify=20docker-compose=20?= =?UTF-8?q?=E2=80=94=20expose:8080,=20/data=20volume,=20SERVICE=5FFQDN=5FA?= =?UTF-8?q?PP=5F8080?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..968929a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,35 @@ +services: + app: + build: + context: . + dockerfile: Dockerfile + # Coolify's Traefik connects on the container network — never publish host + # ports. Domain + TLS come from SERVICE_FQDN_APP_8080 substitution below. + expose: + - "8080" + environment: + # Coolify substitutes SERVICE_FQDN__ with the domain from + # docker_compose_domains and injects the Traefik router labels. + SERVICE_FQDN_APP_8080: / + ASPNETCORE_ENVIRONMENT: Production + ASPNETCORE_URLS: "http://+:8080" + DATA_DIRECTORY: /data + # Secrets — set values in Coolify's Environment Variables UI. + ADMIN_PASSWORD: ${ADMIN_PASSWORD} + ENCRYPTION_KEY: ${ENCRYPTION_KEY} + # Optional tuning; Coolify falls back to Dockerfile defaults if unset. + EXECUTION_RETENTION_DAYS: ${EXECUTION_RETENTION_DAYS:-7} + EXECUTION_KEEP_PER_WORKFLOW: ${EXECUTION_KEEP_PER_WORKFLOW:-500} + WEBHOOK_DEFAULT_TIMEOUT_SECONDS: ${WEBHOOK_DEFAULT_TIMEOUT_SECONDS:-30} + MAX_CONCURRENT_EXECUTIONS: ${MAX_CONCURRENT_EXECUTIONS:-32} + volumes: + - vc-data:/data + healthcheck: + test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8080/api/health"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 20s + +volumes: + vc-data: