- nginx basic auth on /drops/ (page and clips); login file and clips live
on the server only (docker/auth, docker/drops), never in git or the image
- Fails closed: missing login file returns 500; no-store, noindex
- Page reads manifest.json from the server, shows "taken down" when empty
- Player hides download/cast/PiP, blocks right-click, confidential overlay
- DEPLOY.md step 8: how to share a drop and take it down
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- nginx basic auth on /previz/ (login file lives on the server, mounted
from docker/auth/, see DEPLOY.md step 8); private, no-store so
Cloudflare never caches it
- Print styles for previz pages: dark, A4 landscape, one section a page;
videos print as poster frames with a link
- scripts/previz-pdf.mjs (npm run previz:pdf) prints the page to
public/previz/crowd/crowd-previz.pdf via Edge/Chrome DevTools
- "PDF" download link on the page
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Matches the vfxreview/xbid setup: runner pulls and runs docker compose;
nginx:alpine serves the static export on the npm_default network behind
Nginx Proxy Manager. DEPLOY.md has the one-time SSH setup steps.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Site URL (sitemap, robots, Open Graph), footer and deploy guide now target
twotalesvfx.com behind Cloudflare.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>