37 lines
1.2 KiB
YAML
37 lines
1.2 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:-}
|
|
volumes:
|
|
# Mount only non-secret Pi agent model/auth configuration; keep it read-only.
|
|
- ${PI_AGENT_CONFIG_DIR:-./appdata/pi-agent}:/home/node/.pi/agent:ro
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
# Nginx Proxy Manager routes https://roast.srmr.xyz to this host port.
|
|
ports: ["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:
|