f5abf359fb
fix(nginx): use Docker embedded DNS resolver to avoid startup DNS failure
...
nginx resolves upstream hostnames at config load time, which fails when
sibling containers haven't registered with the Docker DNS yet. Using
resolver 127.0.0.11 with set $upstream defers resolution to request
time, preventing the "host not found in upstream" startup crash.
2026-05-16 08:44:50 -04:00
af9c9dbae4
fix(db): parse DATABASE_URL in pool.js instead of individual DB_* vars
...
pool.js was using DB_HOST/DB_USER/etc which were never set.
The docker-compose.yml passes DATABASE_URL. Parse that if present,
fall back to individual vars for local dev.
2026-05-16 08:39:47 -04:00
0a5b4d6191
feat(ui): SRT/RTMP listener/caller mode UI in recorders
...
- SRT: mode selector (Listener / Caller)
- Listener: listen_port field + live connection info banner
- Caller: source URL field
- RTMP: mode selector (Listener / Caller)
- Listener: listen_port + stream_key fields + live connection info banner
- Caller: source URL field
- Connection info banners update live as port/key fields change
- handleCreateRecorder builds correct source_config per mode
- Card meta display handles listener config (shows port, not url)
- updateSrtModeFields / updateRtmpModeFields helpers for dynamic show/hide
2026-05-16 08:23:24 -04:00
78b1f3482f
feat(recorders): add PortBindings for SRT/RTMP listener mode containers
...
When source_config.mode === 'listener':
- SRT: bind UDP listen_port (default 9000) on container host
- RTMP: bind TCP listen_port (default 1935) on container host
Add ExposedPorts to container config alongside HostConfig.PortBindings.
Also pass LISTEN, LISTEN_PORT, STREAM_KEY env vars to container.
2026-05-16 08:21:03 -04:00
55fec605c6
feat(capture): accept SRT/RTMP source params in POST /start
...
- Accept source_type, source_url, listen, listen_port, stream_key
- Validate: SDI requires device; SRT/RTMP caller requires source_url
- Pass all params through to captureManager.start()
- On stop: if proxyKey is null (network source), include needsProxy flag
in MAM API registration so worker can generate proxy asynchronously
2026-05-16 08:20:10 -04:00
ea48e98465
feat(capture): add SRT/RTMP source type support
...
- Add _buildInputArgs() to build FFmpeg input args per source type
- SRT caller: srt://host:port?mode=caller
- SRT listener: srt://0.0.0.0:PORT?mode=listener
- RTMP caller: -i rtmp://host/app/key
- RTMP listener: -listen 1 -i rtmp://0.0.0.0:PORT/live/key
- Network sources spawn hires-only FFmpeg process (can't open stream twice)
- proxyKey is null for network sources; proxy generated by worker post-stop
- SDI keeps existing dual-process behavior unchanged
2026-05-16 08:19:41 -04:00
ed52dfcafb
Fix recorders.html: rename handlers to avoid api.js shadowing (infinite recursion), fix resolution→recording_resolution
2026-05-16 00:48:40 -04:00
cc174c4977
Fix worker/index.js: job.progress is a property not a function in BullMQ v3+
2026-05-16 00:46:53 -04:00
44759391e5
Fix jobs.js: send camelCase fields to conform worker (projectId/outputFormat)
2026-05-16 00:46:45 -04:00
79dcfaffeb
Fix capture.html: remove bin requirement, fix start/stop handler naming to avoid recursion, track sessionId
2026-05-16 00:42:36 -04:00
1862082ba7
Fix upload.html: camelCase multipart params, filename field, ETag/partNumber, s3Key/assetId tracking
2026-05-16 00:41:36 -04:00
31ca999075
fix(api.js): correct capture paths, bin routes, device normalisation, upload camelCase, session tracking
2026-05-16 00:31:58 -04:00
a9cc8caf42
fix(recorders): add S3_REGION to container env, accept 304/404 on stop/remove
2026-05-16 00:31:10 -04:00
e796a0d15f
fix(routes+ui): capture route bin optional, jobs Redis URL, recorders S3_REGION+stop codes, api.js full rewrite, upload.html multipart fix, capture.html bin guard: jobs.js
2026-05-16 00:30:26 -04:00
f9c680cc22
fix(routes+ui): capture route bin optional, jobs Redis URL, recorders S3_REGION+stop codes, api.js full rewrite, upload.html multipart fix, capture.html bin guard: capture.js
2026-05-16 00:30:25 -04:00
0bdfbaf130
fix(infra+workers): S3 creds, ffprobe, BullMQ awaits, thumbnail seek, bin optional, docker-compose vars, jobs Redis, recorders stop codes: thumbnail.js
2026-05-16 00:29:51 -04:00
647cf55389
fix(infra+workers): S3 creds, ffprobe, BullMQ awaits, thumbnail seek, bin optional, docker-compose vars, jobs Redis, recorders stop codes: proxy.js
2026-05-16 00:29:50 -04:00
8be9c20124
fix(infra+workers): S3 creds, ffprobe, BullMQ awaits, thumbnail seek, bin optional, docker-compose vars, jobs Redis, recorders stop codes: executor.js
2026-05-16 00:29:49 -04:00
b2da06b4cc
fix(infra+workers): S3 creds, ffprobe, BullMQ awaits, thumbnail seek, bin optional, docker-compose vars, jobs Redis, recorders stop codes: client.js
2026-05-16 00:29:48 -04:00
bb069760fe
fix(infra+workers): S3 creds, ffprobe, BullMQ awaits, thumbnail seek, bin optional, docker-compose vars, jobs Redis, recorders stop codes: client.js
2026-05-16 00:29:47 -04:00
be8e0bda41
fix(auth+bugs): optional auth bypass, login routes, conform column name, panel metadata fields, login page: login.html
2026-05-15 23:40:15 -04:00
72c4a7f136
fix(auth+bugs): optional auth bypass, login routes, conform column name, panel metadata fields, login page: main.js
2026-05-15 23:40:14 -04:00
47c113e6c3
fix(auth+bugs): optional auth bypass, login routes, conform column name, panel metadata fields, login page: conform.js
2026-05-15 23:40:13 -04:00
f745122ef0
fix(auth+bugs): optional auth bypass, login routes, conform column name, panel metadata fields, login page: index.js
2026-05-15 23:40:12 -04:00
ada5597f79
fix(auth+bugs): optional auth bypass, login routes, conform column name, panel metadata fields, login page: auth.js
2026-05-15 23:40:11 -04:00
069c20ad43
fix(auth+bugs): optional auth bypass, login routes, conform column name, panel metadata fields, login page: auth.js
2026-05-15 23:40:10 -04:00
583b3f0ad6
fix(auth+bugs): optional auth bypass, login routes, conform column name, panel metadata fields, login page: package.json
2026-05-15 23:40:09 -04:00
668e7c6c24
fix(premiere-plugin): CSInterface init, correct API prefix, Node.js download, lazy thumbnails, proper ExtendScript export API: premiere.jsx
2026-05-15 21:36:15 -04:00
a239e30ef2
fix(premiere-plugin): CSInterface init, correct API prefix, Node.js download, lazy thumbnails, proper ExtendScript export API: main.js
2026-05-15 21:36:13 -04:00
c162104b7c
fix(premiere-plugin): CSInterface init, correct API prefix, Node.js download, lazy thumbnails, proper ExtendScript export API: index.html
2026-05-15 21:36:12 -04:00
ea92cad310
fix(premiere-plugin): CSInterface init, correct API prefix, Node.js download, lazy thumbnails, proper ExtendScript export API: manifest.xml
2026-05-15 21:36:11 -04:00
4ba898f6a3
fix: remove premature thumbnail dispatch from upload route (proxy worker now handles it)
2026-05-15 21:26:57 -04:00
6aff3cabc0
fix: set asset status=ready after thumbnail completes
2026-05-15 21:26:22 -04:00
10949bc460
fix: dispatch thumbnail job after proxy completes instead of racing from upload route
2026-05-15 21:26:16 -04:00
b42199e597
fix: assets response shape, thumbnail lazy-load, bin sidebar wired up
2026-05-15 21:25:29 -04:00
7ef8476bd3
fix: add ampp_folder_id/ampp_synced_at to assets; fix recorders.current_session_id type to TEXT
2026-05-15 21:24:16 -04:00
db73235149
fix: add POST /assets handler for capture registration + thumbnail job dispatch
2026-05-15 21:24:02 -04:00
cd0c724bdd
feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: settings.html
2026-04-18 13:42:09 -04:00
4630a18dde
feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: index.js
2026-04-18 13:42:09 -04:00
0e36ca9972
feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: upload.js
2026-04-18 13:42:09 -04:00
e25e63b3f0
feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: ampp.js
2026-04-18 13:42:08 -04:00
56e2a97506
feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: settings.js
2026-04-18 13:42:08 -04:00
36a462dac4
feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: client.js
2026-04-18 13:42:07 -04:00
2b9499a606
feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: schema_patch_ampp.sql
2026-04-18 13:42:07 -04:00
0fa9e960d4
Phase 2: services/premiere-plugin/PLUGIN_FILES.txt
2026-04-07 22:05:49 -04:00
ea157f7835
Phase 2: services/premiere-plugin/QUICK_START.md
2026-04-07 22:05:48 -04:00
6239795300
Phase 2: services/premiere-plugin/README.md
2026-04-07 22:05:48 -04:00
227d951d6d
Phase 2: services/premiere-plugin/jsx/premiere.jsx
2026-04-07 22:05:47 -04:00
c78433aa14
Phase 2: services/premiere-plugin/js/main.js
2026-04-07 22:05:47 -04:00
f0e3e90870
Phase 2: services/premiere-plugin/js/CSInterface.js
2026-04-07 22:05:46 -04:00
bb92381a47
Phase 2: services/premiere-plugin/index.html
2026-04-07 22:05:46 -04:00
33f8b1c26a
Phase 2: services/premiere-plugin/css/styles.css
2026-04-07 22:05:45 -04:00
30a10805c3
Phase 2: services/premiere-plugin/CSXS/manifest.xml
2026-04-07 22:05:45 -04:00
ee7958cdd2
Phase 2: services/premiere-plugin/.debug
2026-04-07 22:05:44 -04:00
3f25ea1124
Phase 2: services/web-ui/public/js/api.js
2026-04-07 22:05:44 -04:00
3aee8c41f5
Phase 2: services/web-ui/public/recorders.html
2026-04-07 22:05:43 -04:00
1ed284eac3
Phase 2: services/web-ui/public/upload.html
2026-04-07 22:05:42 -04:00
0e86cbb1f3
Phase 2: services/web-ui/public/index.html
2026-04-07 22:05:42 -04:00
aa4baca091
Phase 2: services/web-ui/nginx.conf
2026-04-07 22:05:41 -04:00
8ab7ea4d8d
Phase 2: services/mam-api/src/routes/recorders.js
2026-04-07 22:05:41 -04:00
6994e2d697
Phase 2: services/mam-api/src/routes/upload.js
2026-04-07 22:05:40 -04:00
a2c233aed3
Phase 2: services/mam-api/src/s3/client.js
2026-04-07 22:05:40 -04:00
cc06166e00
Phase 2: services/mam-api/src/db/schema.sql
2026-04-07 22:05:39 -04:00
53d4124514
Phase 2: services/mam-api/src/index.js
2026-04-07 22:05:39 -04:00
7c7fcd2b0d
add services/capture/src/routes/capture.js
2026-04-07 21:58:30 -04:00
dfffca879a
add services/capture/src/s3/client.js
2026-04-07 21:58:30 -04:00
75ef8a4ed8
add services/capture/src/capture-manager.js
2026-04-07 21:58:29 -04:00
febf394a81
add services/capture/src/index.js
2026-04-07 21:58:29 -04:00
e0902acbb6
add services/capture/package.json
2026-04-07 21:58:29 -04:00
63a8415cee
add services/capture/Dockerfile
2026-04-07 21:58:28 -04:00
a463b67bce
add services/mam-api/src/routes/bins.js
2026-04-07 21:58:28 -04:00
b1e9b4a9ca
add services/mam-api/src/routes/projects.js
2026-04-07 21:58:28 -04:00
31927f9742
add services/mam-api/src/routes/capture.js
2026-04-07 21:58:27 -04:00
55b765698c
add services/mam-api/src/routes/jobs.js
2026-04-07 21:58:27 -04:00
5cb9ccaefc
add services/mam-api/src/routes/assets.js
2026-04-07 21:58:27 -04:00
8e247fe2ce
add services/mam-api/src/s3/client.js
2026-04-07 21:58:26 -04:00
e0f7f7c264
add services/mam-api/src/middleware/errors.js
2026-04-07 21:58:26 -04:00
e863cf3d6e
add services/mam-api/src/middleware/auth.js
2026-04-07 21:58:26 -04:00
d7573707ed
add services/mam-api/src/db/pool.js
2026-04-07 21:58:26 -04:00
44a5781f99
add services/mam-api/src/db/schema.sql
2026-04-07 21:58:25 -04:00
9a9259628a
add services/mam-api/src/index.js
2026-04-07 21:58:25 -04:00
2f81029112
add services/mam-api/Dockerfile
2026-04-07 21:58:25 -04:00
3694e65ab0
add services/mam-api/.env.example
2026-04-07 21:58:24 -04:00
43fe16831f
add services/mam-api/.gitignore
2026-04-07 21:58:24 -04:00
2938183b12
add services/mam-api/package.json
2026-04-07 21:58:24 -04:00
58ca698eac
add services/web-ui/public/css/common.css
2026-04-07 21:58:23 -04:00
ee9e6865ab
add services/web-ui/public/js/api.js
2026-04-07 21:58:23 -04:00
481f8f43f0
add services/web-ui/public/index.html
2026-04-07 21:58:23 -04:00
e444162800
add services/web-ui/public/player.html
2026-04-07 21:58:22 -04:00
28be46403a
add services/web-ui/public/capture.html
2026-04-07 21:58:22 -04:00
b716a6e6d7
add services/web-ui/.gitignore
2026-04-07 21:58:22 -04:00
403df6558b
add services/web-ui/.dockerignore
2026-04-07 21:58:21 -04:00
a0994cfffe
add services/web-ui/nginx.conf
2026-04-07 21:58:21 -04:00
9c4764cf78
add services/web-ui/Dockerfile
2026-04-07 21:58:21 -04:00
5bc6cf7c17
add services/worker/src/ffmpeg/executor.js
2026-04-07 21:58:21 -04:00
9e2833ba85
add services/worker/src/db/client.js
2026-04-07 21:58:20 -04:00
76e15b4b76
add services/worker/src/edl/parser.js
2026-04-07 21:58:20 -04:00
0537b7ab44
add services/worker/src/s3/client.js
2026-04-07 21:58:20 -04:00
7a677fe36e
add services/worker/src/workers/proxy.js
2026-04-07 21:58:19 -04:00
a97804bcb3
add services/worker/src/workers/thumbnail.js
2026-04-07 21:58:19 -04:00