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>
32 lines
1.4 KiB
YAML
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
|