SCENEGOD/deploy/docker-compose.yml
type-two 128e24a7cb [deploy] digalot.fyi hosting: prefix-agnostic frontend, ship-check hardening, docker+nginx kit
- web: all URLs relative (imports ./web/..., fetches assets/...) so the app
  serves at / locally and under /scenegod/ behind nginx; esc() on dock
  innerHTML interpolations (ship-check XSS class)
- server: capped_body on every POST (scenes 5MB, frames 25MB, meta/director
  256KB-1MB), render begin sanity (fps<=60, dims<=4096, frame idx<=20000)
- deploy/: Dockerfile (slim+ffmpeg), compose (project 'scenegod' — avoids
  the shared-'deploy'-project orphan trap with meshgod), nginx location
  (suite basic-auth), deploy.sh (rsync model, meshgod-style)
- live: digalot.fyi/scenegod/ -> 401 unauthed, app healthy on dealgod_default

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 02:43:26 +10:00

28 lines
1.2 KiB
YAML

# Add scenegod to the dealgod stack (same pattern as meshgod). Deploy from a dev Mac:
# ./deploy/deploy.sh (rsync → VPS /opt/scenegod, compose build on the box)
# nginx proxies digalot.fyi/scenegod/ → scenegod:8020 behind the suite basic-auth.
name: scenegod # explicit — both meshgod+scenegod compose from dirs named "deploy";
# without this they share one project and see each other as orphans
services:
scenegod:
build:
context: ..
dockerfile: deploy/Dockerfile
container_name: scenegod
restart: unless-stopped
environment:
- SCENEGOD_ASSETS=/app/assets # mounted volume — synced from the Macs
- SCENEGOD_SCENES=/app/scenes
- SCENEGOD_RENDERS=/app/renders
# deliberately UNSET on the VPS (each 503s cleanly / hides its UI):
# SCENEGOD_LLM_URL / SCENEGOD_LLM_MODEL (tailnet Ollama — ultra-side feature)
# SCENEGOD_MB (MODELBEAST proxy — NEVER on the VPS)
volumes:
- /opt/scenegod-data/assets:/app/assets
- /opt/scenegod-data/scenes:/app/scenes
- /opt/scenegod-data/renders:/app/renders
networks: [dealgod_default]
networks:
dealgod_default:
external: true