Rob Watson
c4bc32b3e8
refactor(container): restart handling
...
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
- display error modal if container exits in first 15 seconds
- restart containers manually
- allow more flexible restart policies
- extend integration tests
2025-04-13 09:26:31 +01:00
Rob Watson
f7f9843c4b
test(integration): add coverage for custom stream key
2025-04-11 09:57:45 +02:00
Rob Watson
524dafd800
security(mediaserver): bind to 127.0.0.1
2025-04-11 09:28:30 +02:00
Rob Watson
b257f456ba
feat(config): tighten RTMP URL validation
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
2025-04-10 22:00:37 +02:00
Rob Watson
045498a2ce
fix(ui): handle table wraparound on k binding
ci-build / lint (push) Waiting to run
ci-build / build (push) Blocked by required conditions
ci-build / release (push) Blocked by required conditions
2025-04-10 07:38:05 +02:00
Rob Watson
08a5690d30
test: add container debug logs
2025-04-10 07:38:05 +02:00
Rob Watson
d332a78af1
fix(ui): further key handling improvements
...
Avoids losing user destination selection when re-rendering the page,
especially after adding or removing a destination.
2025-04-10 07:37:24 +02:00
Rob Watson
f791125c02
feat(ui): update key bindings
2025-04-09 21:05:06 +02:00
Rob Watson
30da888184
feat(ui): improve error handling on startup
2025-04-09 06:50:35 +02:00
Rob Watson
2fbf2176cf
feat(ui): improve key handling
...
- handle add-destination input in own handler func
- handle CTRL-C when modal is visible
- fix destination wraparound on key-up
2025-04-08 13:39:17 +02:00
Rob Watson
af4410c4cf
feat(ui): prefer "source" to "ingress"
2025-04-08 13:06:43 +02:00
Rob Watson
18d5ef3db1
fix(container): do not error on pull image failure
2025-04-08 13:03:29 +02:00
Rob Watson
3523a1a34e
feat(mediaserver): update MediaMTX image
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
2025-04-06 09:25:50 +02:00
Rob Watson
5735b2d73a
refactor: consistent naming
2025-04-06 06:43:25 +02:00
Rob Watson
0fbbe25e1b
refactor: extract test helpers
2025-04-06 06:43:25 +02:00
Rob Watson
1c742426ed
chore: fix typo
2025-04-05 21:42:36 +02:00
Rob Watson
e778c3c443
fix(ui): mediaserver error modal improvements
2025-04-05 21:42:36 +02:00
Rob Watson
e14cfdee85
refactor: startup check
...
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
- separate mediaserver create and start
- avoid blocking main app loop during startup check
- remove ui.allowQuit
- add integration test
2025-04-05 09:43:11 +02:00
Rob Watson
266a9307d2
fix(config): ensure log file path is set
...
Fix a bug introduced in 6952516 which led to the app being unable to
start if logging was enabled but no explicit path was set. In this case,
the expected behaviour is to fallback to a log file in the XDG file
hierarchy, but this was lost due to broken config file defaults
handling.
This commit separates the behaviour when setting defaults when reading
an existing configuration, from those set when creating a brand new
configuration.
2025-04-04 20:49:05 +02:00
Rob Watson
cd2c339c10
fix(ui): close UI from main goroutine
...
This seems to have been unnecessary and can actually cause the app to
hang on closing if ctrl-c is pressed when the "add destinations" page is
visible.
2025-04-04 15:59:34 +02:00
Rob Watson
54cfe3a55f
feat(ui): add "no destinations" page
2025-04-04 15:59:34 +02:00
Rob Watson
2eeb809e6e
chore(ui): update copy
2025-04-03 20:10:36 +02:00
Rob Watson
522be621ee
refactor: replicator
2025-04-03 17:23:27 +02:00
Rob Watson
6952516204
chore: config fixes
...
- remove example config file
- don't set default values on read
- omit empty fields
- indent yaml 2 spaces
2025-04-01 21:06:31 +02:00
Rob Watson
ba356137c3
chore: enable Docker API version negotiation
2025-04-01 21:03:05 +02:00
Rob Watson
b05bc6f98b
fix: avoid data race during app shutdown
2025-04-01 19:18:22 +02:00
Rob Watson
5bf19f92b0
security(mediaserver): stop leaking credentials to Docker events log
2025-04-01 17:48:34 +02:00
Rob Watson
e4438baa65
feat: require ingress for egress
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
2025-04-01 16:39:51 +02:00
Rob Watson
d3a6d6acdb
feat: validate destinations
2025-04-01 11:49:46 +02:00
Rob Watson
cddcb0eb4d
test(integration): extract test setup logic
2025-04-01 07:53:55 +02:00
Rob Watson
7edb975b8e
feat(ui): add and remove destinations
2025-03-31 07:13:22 +02:00
Rob Watson
3f25458b03
chore: tidy
2025-03-28 05:50:51 +01:00
Rob Watson
be0408a296
refactor(mediaserver): TLS in healthcheck
2025-03-28 05:47:40 +01:00
Rob Watson
2cde04728a
feat(mediaserver): use TLS for API endpoints
2025-03-27 08:18:25 +01:00
Rob Watson
bcaf9f1cae
feat(mediaserver): authenticate internal clients
2025-03-26 21:12:08 +01:00
Rob Watson
3866d9dd07
doc: fix typo
2025-03-26 17:41:04 +01:00
Rob Watson
3ec4f49b0f
observe: allow DEBUG logs via env vars
2025-03-26 17:40:57 +01:00
Rob Watson
ffce32f4fe
fix(container): handle race condition on ContainerWait
...
When a destination is removed, its container is stopped and removed.
This preempts the ContainerWait call in the destination loop, which then
tries to call ContainerInspect to infer if the container is restarting
or not.
It was already known that this call is prone to race conditions. This
commit handles an additional case where the container has already been
completely removed by the time the call is made; we can safely infer
that it is not restarting.
2025-03-26 13:42:25 +01:00
Rob Watson
b508632e70
feat(config): create example configuration file on first launch
2025-03-25 21:19:15 +01:00
Rob Watson
f6b893d89c
feat: version
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
2025-03-25 06:32:49 +01:00
Rob Watson
117ed7562c
feat: stream key
2025-03-24 21:59:45 +01:00
Rob Watson
2468111369
test(integration): use require.EventuallyWithT
2025-03-22 09:56:58 +01:00
Rob Watson
797ef57417
feat: pull progress
2025-03-19 20:54:19 +01:00
Rob Watson
b231e8736c
feat: cleanup zombie networks
2025-03-16 15:05:43 +01:00
Rob Watson
7664d14207
fix(mediaserver): avoid spurious reset of LiveChangedAt
2025-03-16 13:27:25 +01:00
Rob Watson
9314506c75
test(integration): extend app test
2025-03-16 12:36:28 +01:00
Rob Watson
99766c8230
feat: error handling
2025-03-14 20:57:04 +01:00
Rob Watson
96117c0a15
feat(config): logging
2025-03-10 20:06:01 +01:00
Rob Watson
7dba1768a4
refactor: internal package
2025-03-09 19:58:25 +01:00