SCENEGOD/deploy/deploy.sh
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

14 lines
771 B
Bash
Executable File

#!/bin/bash
# rsync-deploy scenegod to the dealgod VPS (NOT a git checkout there — meshgod model).
# NOTE: assets/ is EXCLUDED on purpose (it lives in the VPS volume). Templates and
# sequences ship with the code, so after adding an asset one of them references:
# rsync -az assets/ root@100.94.195.115:/opt/scenegod-data/assets/
set -e
VPS=root@100.94.195.115
rsync -az --delete \
--exclude .git --exclude .venv --exclude assets --exclude scenes \
--exclude renders --exclude films --exclude '*.pyc' --exclude __pycache__ \
--exclude .env --exclude '*.log' \
"$(cd "$(dirname "$0")/.." && pwd)/" "$VPS":/opt/scenegod/
ssh "$VPS" 'mkdir -p /opt/scenegod-data/{assets,scenes,renders,sequences,films} && cd /opt/scenegod/deploy && docker compose up -d --build'