SCENEGOD/deploy/docker-compose.yml
type-two b773d29776 [m8-C] multi-shot sequencing — a film is now a first-class object
Sequences (ordered shots = scene + in/out + transition) with full validation,
CRUD, and a client-driven film render the server orchestrates: browser renders
each shot through the existing /render/* endpoints, server ffmpeg-concatenates
in order with cuts or xfade dissolves, muxes a film-level audio bed, reaps
after 48h. render.js refactored so there is one frame-post path in the repo
(captureFrames/withRenderSize/begin/end/poll); new web/film.js drives the loop.
Also fixes a pre-existing mux bug: no apad meant short audio truncated PICTURE.

Orchestrator: deploy compose/script now carry SCENEGOD_SEQUENCES + SCENEGOD_FILMS
volumes so shot lists survive a rebuild.

Verified live: demo-two-shot renders one 11.500s mp4 with a genuinely
compositing dissolve; a film built from the M7 templates (street wide ->
dissolve -> closer -> cut -> record store) renders 11.800s at 960x540.
15 test groups green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 23:21:45 +10:00

32 lines
1.4 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
- SCENEGOD_SEQUENCES=/app/sequences # M8 films: shot lists survive a rebuild
- SCENEGOD_FILMS=/app/films
# 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
- /opt/scenegod-data/sequences:/app/sequences
- /opt/scenegod-data/films:/app/films
networks: [dealgod_default]
networks:
dealgod_default:
external: true