f7a96677ef
feat: redesign recorders.html with new design system
2026-05-16 13:57:20 -04:00
cf93b2f378
feat: redesign upload.html and recorders.html: upload.html
2026-05-16 13:06:10 -04:00
c6cca63595
feat: redesign index.html, upload.html, recorders.html: index.html
2026-05-16 13:04:45 -04:00
c0d3d0590b
feat: full GUI redesign — broadcast control register aesthetic: common.css
2026-05-16 13:02:33 -04:00
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
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
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
7aa07c6708
feat(docker): expose SRT (9000/udp) and RTMP (1935/tcp) ports on capture service
2026-05-16 08:21:21 -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
6f7a446aa5
Fix docker-compose.yml: add default for MAM_API_URL in capture service
2026-05-16 00:47:01 -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
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
ecae4202c2
fix(infra+workers): S3 creds, ffprobe, BullMQ awaits, thumbnail seek, bin optional, docker-compose vars, jobs Redis, recorders stop codes: .env.example
2026-05-16 00:29:45 -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