feat: production deploy (Fly + R2) + frame controls and picker glow
Deploy: - Multi-stage Dockerfile (shadow-cljs release → Python+ffmpeg runtime), fly.toml (one machine, scale-to-zero, SQLite on a volume), .dockerignore, DEPLOY.md - Same-origin release build: api-port defaults "9001" for dev, "" in release (no CORS in prod) - env-driven settings (SECRET_KEY/DEBUG/ALLOWED_HOSTS/DB_PATH/CSRF), WhiteNoise serving static + the SPA, R2 (S3-compatible) media storage when R2_* is set - thumbnails reworked storage-agnostic: download clip, ffmpeg select-pass, upload tiles via default_storage (R2 in prod, disk in dev) - pin channels/daphne; add whitenoise/django-storages/boto3 UI: - frame step buttons flanking play (disabled at timeline bounds) - Add-annotation button moved into the toolbar, made prominent - picker mode pulses a 1-bit glow on clips / frame readout / (while linking) annotation bars; linking an annotation bar inserts a timeline link Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
e00a056209
commit
e6d150c375
12 changed files with 322 additions and 87 deletions
|
|
@ -2,3 +2,12 @@ asgiref==3.11.1
|
|||
Django==6.0.6
|
||||
django-cors-headers==4.9.0
|
||||
sqlparse==0.5.5
|
||||
|
||||
# ASGI + realtime (already used in dev, were just unpinned here)
|
||||
channels==4.3.2
|
||||
daphne==4.2.2
|
||||
|
||||
# production: static serving + R2 (S3-compatible) media storage
|
||||
whitenoise==6.8.2
|
||||
django-storages==1.14.4
|
||||
boto3==1.35.99
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue