# RecipesCam web — the whole stack. Copy this folder anywhere, then: # cp .env.example .env # docker compose up -d --build name: recipescam-web services: # Accounts + saved recipes. Never sees a photo: every pixel of the render # pipeline runs in the visitor's browser. api: build: ./backend restart: unless-stopped environment: DATA_DIR: /data # Who may moderate the contributed strip: a comma-separated email # allowlist. Empty means nobody is an admin, which is the safe default. ADMIN_EMAILS: ${ADMIN_EMAILS:-} volumes: # SQLite (WAL) lives on the host so a rebuild never loses accounts. - ./data:/data # Static SPA + /api reverse proxy. "api" is the DNS name nginx.conf proxies to, # so this service name is load-bearing. frontend: build: ./frontend restart: unless-stopped depends_on: - api ports: - "${WEB_PORT:-8090}:80"