57 lines
1.9 KiB
YAML
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:
|