Commit graph

14 commits

Author SHA1 Message Date
00f3f2905f feat(cluster): expose db/redis ports for worker-node connectivity 2026-05-21 21:23:23 -04:00
a8656fc1a8 capture: custom FFmpeg 7.1 build with DeckLink + D-Bus mounts + SDI deinterlace
Dockerfile is now a two-stage build that compiles FFmpeg from source with --enable-decklink against the Blackmagic SDK 16.x headers in services/capture/sdk/ (operator-supplied, gitignored). build-with-decklink.sh + patch_decklink.py drive the build.

docker-compose.yml mounts /dev/shm, /run/dbus, /run/systemd into mam-api, capture, web-ui so the BMD runtime can talk to the host.

capture-manager.js wraps SDI sources with -vf yadif=mode=1 (deinterlace).

recorders.html defaults to SDI source type now that we have a working DeckLink path.
2026-05-22 00:01:43 +00:00
4a3a672cbe cluster: stable hostname for mam-api, jq-based smoke test
mam-api self-heartbeat now reads NODE_HOSTNAME so primary rows survive container restarts instead of resurrecting with the random container ID. test-cluster.sh rewritten to use jq (the python f-strings had a parse bug that silently passed the IP check) and limited the docker-bridge alarm to 172.17.x since the user LAN occupies 172.18.0.0/16.
2026-05-21 11:50:52 +00:00
4d101bc812 mam-api: mount host nvidia-smi into container for GPU detection 2026-05-20 19:18:03 -04:00
1e4e2e436f mam-api: add NODE_IP env passthrough and NVIDIA GPU device reservation 2026-05-20 18:59:55 -04:00
90bb0769e5 fix: correct editor service port typo (47435 → 7435) 2026-05-19 23:06:35 -04:00
7d76f9c549 feat(growing-files): Phase 1 - live HLS preview during recording
While a recorder is running, the capture container tees an HLS
stream into /live/<assetId>/ alongside the ProRes master upload.
The asset row is pre-created at recorder start with status='live'
so the clip appears in the library immediately. /api/v1/assets/:id/stream
returns the HLS playlist URL until recording stops, then proxy.

* docker-compose: shared wild-dragon-live mount on api/capture/web-ui
* migration 001-add-live-status: idempotent ALTER TYPE for asset_status
* mam-api: runMigrations() on boot; recorders.js pre-creates live asset
  + passes ASSET_ID; assets.js POST upserts on existing live row instead
  of inserting a duplicate, and stream route returns HLS for live assets
* capture: parallel HLS ffmpeg into /live/<assetId>/; ASSET_ID env
* web-ui: nginx serves /live/, preview.js loads hls.js, LIVE badge added
2026-05-18 07:29:50 -04:00
Zac
b68f0c6aba feat(editor): integrate openreel-video as services/editor with MAM hooks
Vendored Augani/openreel-video (MIT) into services/editor and wired it to the MAM. Editor runs as its own container on port 47435. Library assets pull in via ?asset=<uuid>; render exports route back via POST /api/v1/upload/simple. Sidebar Editor link on every page; Edit button on every preview modal. See services/editor/INTEGRATION.md for the patch map.
2026-05-17 21:44:37 -04:00
3c97999ea3 chore: use env-var port bindings — no hardcoded host ports
All host ports are now configurable via .env variables with sensible
defaults. This prevents collisions when deploying alongside existing
services on TrueNAS or any other host.
2026-05-16 08:27:25 -04:00
7aa07c6708 feat(docker): expose SRT (9000/udp) and RTMP (1935/tcp) ports on capture service 2026-05-16 08:21:21 -04:00
6f7a446aa5 Fix docker-compose.yml: add default for MAM_API_URL in capture service 2026-05-16 00:47:01 -04:00
dfb6ca6d50 fix(infra+workers): S3 creds, ffprobe, BullMQ awaits, thumbnail seek, bin optional, docker-compose vars, jobs Redis, recorders stop codes: docker-compose.yml 2026-05-16 00:29:46 -04:00
ce4ad2b558 Phase 2: docker-compose.yml 2026-04-07 22:05:38 -04:00
a14920cda8 add docker-compose.yml 2026-04-07 21:58:17 -04:00