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>
39 lines
759 B
Clojure
39 lines
759 B
Clojure
{:nrepl {:port 8777}
|
|
|
|
|
|
|
|
:source-paths ["src" "test"]
|
|
|
|
:dependencies
|
|
[[reagent "1.2.0"]
|
|
[re-frame "1.4.7"]
|
|
[metosin/reitit "0.9.1"]
|
|
[day8.re-frame/http-fx "0.2.4"]
|
|
[binaryage/devtools "1.0.7"]]
|
|
|
|
:dev-http
|
|
{8280 "resources/public"
|
|
8290 "target/browser-test"}
|
|
|
|
:builds
|
|
{:test
|
|
{:target :node-test
|
|
:output-to "target/node-tests.js"
|
|
:ns-regexp "-test$"}
|
|
|
|
:app
|
|
{:target :browser
|
|
:output-dir "resources/public/js/compiled"
|
|
:asset-path "/js/compiled"
|
|
:modules
|
|
{:app {:init-fn tl.core/init}}
|
|
:devtools
|
|
{:preloads []}
|
|
:dev
|
|
{:compiler-options
|
|
{:closure-defines
|
|
{ }}}
|
|
:release
|
|
{:compiler-options
|
|
{:closure-defines
|
|
{tl.api/api-port ""}}}}}} ; prod: same-origin (no :9001, no CORS)
|