Files
kooltab-backoffice/docker-compose.coolify.yml
T
brammie15 314717ba3a
CI / build-and-test (push) Canceled after 0s
feat: move to V2
2026-10-29 11:21:52 +01:00

57 lines
1.9 KiB
YAML

# Coolify deployment (Docker Compose build pack): the one way KoolTap is deployed. See docs/production.md.
# Postgres runs as a separate Coolify database resource so it gets scheduled backups; set DATABASE_URL to its
# internal connection URL. Domains are assigned in the Coolify UI, on one site so the session cookie reaches the API:
# api -> https://api.example.com:3001
# dashboard -> https://example.com:3000
services:
api:
build:
context: .
dockerfile: Dockerfile
target: api
environment:
DATABASE_URL: ${DATABASE_URL}
JWT_SECRET: ${SERVICE_BASE64_64_JWT}
PORT: 3001
# The dashboard's address; several are comma separated
CORS_ORIGIN: ${DASHBOARD_URL}
RESEND_API_KEY: ${RESEND_API_KEY:-}
RESEND_FROM_EMAIL: ${RESEND_FROM_EMAIL:-KoolTap <onboarding@resend.dev>}
# Coolify's proxy is one hop; use 2 if Cloudflare proxying is also enabled
TRUST_PROXY: ${TRUST_PROXY:-1}
# Raise to make older terminal apps update; the default is in apps/api/src/terminal/app-version.ts
MIN_APP_VERSION: ${MIN_APP_VERSION:-}
volumes:
# Product pictures: back this up with the database
- images:/data/images
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3001/api/v1/health"]
interval: 15s
timeout: 5s
retries: 5
# Migrations run before the server starts
start_period: 60s
restart: unless-stopped
dashboard:
build:
context: .
dockerfile: Dockerfile
target: dashboard
args:
NEXT_PUBLIC_API_URL: ${API_URL}/api/v1
NEXT_PUBLIC_SITE_URL: ${DASHBOARD_URL}
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/"]
interval: 15s
timeout: 5s
retries: 5
start_period: 30s
depends_on:
api:
condition: service_healthy
restart: unless-stopped
volumes:
images: