- 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>
10 lines
484 B
Bash
Executable File
10 lines
484 B
Bash
Executable File
#!/bin/bash
|
|
# rsync-deploy scenegod to the dealgod VPS (NOT a git checkout there — meshgod model).
|
|
set -e
|
|
VPS=root@100.94.195.115
|
|
rsync -az --delete \
|
|
--exclude .git --exclude .venv --exclude assets --exclude scenes \
|
|
--exclude renders --exclude '*.pyc' --exclude __pycache__ --exclude .env \
|
|
"$(cd "$(dirname "$0")/.." && pwd)/" "$VPS":/opt/scenegod/
|
|
ssh "$VPS" 'mkdir -p /opt/scenegod-data/{assets,scenes,renders} && cd /opt/scenegod/deploy && docker compose up -d --build'
|