Files
SlabUploader/deploy/docker-compose.yml
T

44 lines
1.4 KiB
YAML

# Implementable compose for SlabUploader.
# Phase 0 deliverable targets: frontend/Dockerfile, backend/Dockerfile,
# and deploy/.env.example are not yet in the tree on
# docs-only main. This file pins their paths so scaffolding does not invent them.
# From repo root (after those scaffolds exist):
# cp deploy/.env.example deploy/.env && chmod 600 deploy/.env
# docker compose -f deploy/docker-compose.yml --env-file deploy/.env up -d
# Bind loopback only. Caddy is the TLS edge. Services on the compose network
# are named `frontend` and `fastapi` (must match Caddyfile.fragment).
#
# WOO_BASE_URL is deploy-time SoT, HTTPS only. FastAPI must refuse http://
# at startup. Settings UI displays the URL read-only.
services:
frontend:
build:
context: .
dockerfile: frontend/Dockerfile
ports: ["127.0.0.1:${FRONTEND_PORT:-18080}:80"]
depends_on: [fastapi]
restart: unless-stopped
fastapi:
build:
context: .
dockerfile: backend/Dockerfile
env_file:
- .env
environment:
SLAB_AES_KEY: ${SLAB_AES_KEY}
WOO_BASE_URL: ${WOO_BASE_URL}
APP_HOSTNAME: ${APP_HOSTNAME:-}
# Woo Application Password + inference keys: AES-GCM in SQLite via Settings UI
volumes:
- slab_db:/data
- slab_images:/images
ports: ["127.0.0.1:${FASTAPI_PORT:-18081}:8000"]
mem_limit: 2g
restart: unless-stopped
volumes:
slab_db:
slab_images: