152 Commits

Author SHA1 Message Date
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
af4410c4cf feat(ui): prefer "source" to "ingress" 2025-04-08 13:06:43 +02:00
18d5ef3db1 fix(container): do not error on pull image failure 2025-04-08 13:03:29 +02:00
1e759b6f42 fix: print help on -h flag 2025-04-06 16:58:33 +02:00
3523a1a34e feat(mediaserver): update MediaMTX image
Some checks failed
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
5735b2d73a refactor: consistent naming 2025-04-06 06:43:25 +02:00
0fbbe25e1b refactor: extract test helpers 2025-04-06 06:43:25 +02:00
1c742426ed chore: fix typo 2025-04-05 21:42:36 +02:00
e778c3c443 fix(ui): mediaserver error modal improvements 2025-04-05 21:42:36 +02:00
e14cfdee85 refactor: startup check
Some checks failed
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
v0.0.4
2025-04-05 09:43:11 +02:00
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
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
54cfe3a55f feat(ui): add "no destinations" page 2025-04-04 15:59:34 +02:00
87f6786387 chore: bump Go to 1.24.2 2025-04-03 20:10:48 +02:00
2eeb809e6e chore(ui): update copy 2025-04-03 20:10:36 +02:00
522be621ee refactor: replicator 2025-04-03 17:23:27 +02:00
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
ba356137c3 chore: enable Docker API version negotiation 2025-04-01 21:03:05 +02:00
b05bc6f98b fix: avoid data race during app shutdown 2025-04-01 19:18:22 +02:00
34f18b0fbd build: disable changelog sort 2025-04-01 19:12:42 +02:00
5bf19f92b0 security(mediaserver): stop leaking credentials to Docker events log 2025-04-01 17:48:34 +02:00
e4438baa65 feat: require ingress for egress
Some checks failed
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
v0.0.3
2025-04-01 16:39:51 +02:00
036366a875 chore: improve CLI help message 2025-04-01 15:59:30 +02:00
d3a6d6acdb feat: validate destinations 2025-04-01 11:49:46 +02:00
cddcb0eb4d test(integration): extract test setup logic 2025-04-01 07:53:55 +02:00
7edb975b8e feat(ui): add and remove destinations 2025-03-31 07:13:22 +02:00
3f25458b03 chore: tidy 2025-03-28 05:50:51 +01:00
be0408a296 refactor(mediaserver): TLS in healthcheck 2025-03-28 05:47:40 +01:00
2cde04728a feat(mediaserver): use TLS for API endpoints 2025-03-27 08:18:25 +01:00
bdb77cb6bb ci: configure goreleaser
Some checks failed
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
v0.0.2
2025-03-26 21:30:07 +01:00
bcaf9f1cae feat(mediaserver): authenticate internal clients 2025-03-26 21:12:08 +01:00
3866d9dd07 doc: fix typo 2025-03-26 17:41:04 +01:00
3ec4f49b0f observe: allow DEBUG logs via env vars 2025-03-26 17:40:57 +01:00
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
b508632e70 feat(config): create example configuration file on first launch 2025-03-25 21:19:15 +01:00
f6b893d89c feat: version
Some checks failed
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
v0.0.1
2025-03-25 06:32:49 +01:00
fe600ddcb8 chore: remove mediamtx.yml 2025-03-25 04:32:07 +01:00
117ed7562c feat: stream key 2025-03-24 21:59:45 +01:00
2468111369 test(integration): use require.EventuallyWithT 2025-03-22 09:56:58 +01:00
797ef57417 feat: pull progress 2025-03-19 20:54:19 +01:00
b231e8736c feat: cleanup zombie networks 2025-03-16 15:05:43 +01:00
7664d14207 fix(mediaserver): avoid spurious reset of LiveChangedAt 2025-03-16 13:27:25 +01:00
85fd91d37c chore: add LICENSE 2025-03-16 12:52:24 +01:00
9314506c75 test(integration): extend app test 2025-03-16 12:36:28 +01:00
65db62166e build: update test runner config 2025-03-14 20:57:04 +01:00
99766c8230 feat: error handling 2025-03-14 20:57:04 +01:00
96117c0a15 feat(config): logging 2025-03-10 20:06:01 +01:00
7dba1768a4 refactor: internal package 2025-03-09 19:58:25 +01:00
223b7fcd83 feat: copy config file path 2025-03-09 18:34:01 +01:00
a1c7eb640a fix: handle docker engine error before UI starts 2025-03-09 17:48:59 +01:00