41 lines
1.5 KiB
YAML
41 lines
1.5 KiB
YAML
services:
|
|
app:
|
|
build: .
|
|
environment:
|
|
NODE_ENV: production
|
|
DATABASE_URL: postgresql://roast:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@db:5432/roast
|
|
APP_ORIGIN: https://roast.srmr.xyz
|
|
COOKIE_SECURE: "true"
|
|
# Optional after the one-time administrator bootstrap has completed.
|
|
BOOTSTRAP_SETUP_TOKEN: ${BOOTSTRAP_SETUP_TOKEN:-}
|
|
# Leave unset unless a known reverse-proxy address/CIDR is configured.
|
|
TRUST_PROXY: ${TRUST_PROXY:-}
|
|
# Browser-rendered fallback for storefronts that rate-limit server fetches.
|
|
BROWSERLESS_URL: ${BROWSERLESS_URL:-http://host.docker.internal:9085}
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
volumes:
|
|
# Seed Pi's writable runtime config from this read-only credential mount.
|
|
- ${PI_AGENT_CONFIG_DIR:-./appdata/pi-agent}:/run/pi-agent-config:ro
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
# Nginx Proxy Manager routes https://roast.srmr.xyz to this host port.
|
|
ports: ["${APP_PORT:-8090}:8090"]
|
|
restart: unless-stopped
|
|
db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_DB: roast
|
|
POSTGRES_USER: roast
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}
|
|
volumes: [postgres-data:/var/lib/postgresql/data]
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U roast -d roast"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 12
|
|
restart: unless-stopped
|
|
volumes:
|
|
postgres-data:
|