SCENEGOD/deploy/nginx-scenegod.conf
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

16 lines
718 B
Plaintext

# Lives in /opt/dealgod/nginx/dealgod-servers.conf inside the digalot.fyi server
# block (dealgod-nginx container). Same suite login as meshgod.
location = /scenegod { return 301 /scenegod/; }
location /scenegod/ {
auth_basic "meshgod - mates only";
auth_basic_user_file /opt/dealgod/le/meshgod.htpasswd;
proxy_pass http://scenegod:8020/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Remote-User $remote_user;
client_max_body_size 30m; # render frames <=25MB + slack
proxy_read_timeout 300s; # encode status polling
}