134 Commits

Author SHA1 Message Date
Rob Watson
60c7fb458b refactor(config)!: update config file schema
Some checks failed
ci-build / lint (push) Has been cancelled
ci-scan / Analyze (go) (push) Has been cancelled
ci-scan / Analyze (actions) (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-build / release (push) Has been cancelled
BREAKING CHANGE: YAML schema
2025-04-18 11:41:59 +02:00
Rob Watson
d35dedb15b test(integration): fix typo 2025-04-18 09:59:40 +02:00
Rob Watson
e49bbb6800 refactor(mediaserver): simplify API interactions
Some checks are pending
ci-build / lint (push) Waiting to run
ci-build / build (push) Blocked by required conditions
ci-build / release (push) Blocked by required conditions
ci-scan / Analyze (go) (push) Waiting to run
ci-scan / Analyze (actions) (push) Waiting to run
2025-04-18 09:51:56 +02:00
Rob Watson
c022c18a7f doc: add CONTRIBUTING.md 2025-04-17 11:28:25 +02:00
Rob Watson
b147da6d9b feat(mediaserver): configurable RTMP host and bind address 2025-04-17 11:15:08 +02:00
Rob Watson
e113d55044 build: fix homebrew tap permissions 2025-04-17 07:29:02 +02:00
Rob Watson
0df42511ce doc: add skeleton SECURITY.md
Some checks failed
ci-build / release (push) Has been cancelled
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
ci-scan / Analyze (go) (push) Has been cancelled
ci-scan / Analyze (actions) (push) Has been cancelled
2025-04-17 07:06:10 +02:00
Rob Watson
f853a5cced build: rename workflows 2025-04-17 07:06:10 +02:00
Rob Watson
781d535d38 doc: update README 2025-04-17 06:48:48 +02:00
Rob Watson
f3a5b802b8 build: add CodeQL 2025-04-17 06:48:48 +02:00
Rob Watson
6646402273 chore: bump golang.org/x/crypto 2025-04-17 06:48:04 +02:00
Rob Watson
f6c87c4568 build: set default permissions 2025-04-17 06:47:19 +02:00
Rob Watson
2f980acbb3 chore: bump dependencies 2025-04-17 06:47:17 +02:00
Rob Watson
b8389eceb0 feat: improve Docker connection error handling 2025-04-16 14:53:47 +02:00
Rob Watson
f2b9e9af75 doc: update README 2025-04-16 10:44:40 +02:00
Rob Watson
8eca4b0e27 build: homebrew tap 2025-04-16 10:31:54 +02:00
Rob Watson
b05ae25809 fix(ui): allow multiple destination error modals
Some checks failed
ci-build / release (push) Has been cancelled
ci-build / lint (push) Has been cancelled
ci-build / build (push) Has been cancelled
v0.0.6
2025-04-15 09:23:01 +02:00
Rob Watson
52b0616d5f chore(config): rename streamKey field 2025-04-15 08:11:53 +02:00
Rob Watson
55e04e0249 doc: update README 2025-04-15 08:11:53 +02:00
Rob Watson
df9724afa7 feat: container logs
Some checks are pending
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-14 11:17:10 +01:00
Rob Watson
579dfeef22 test(integration): extract app startup logic 2025-04-13 11:31:00 +02:00
Rob Watson
5f6b6fa3a9 test(integration): add t.Helper() 2025-04-13 11:00:18 +02:00
Rob Watson
c4bc32b3e8 refactor(container): restart handling
Some checks failed
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
v0.0.5
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
b69e1ecf86 ci: fix go test parallelism flag
Ref: https://medium.com/@emil.musician/the-ultimate-guide-to-parallel-testing-in-go-p-parallel-and-t-parallel-demystified-50bb6ca07046
2025-04-11 09:44:58 +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
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-10 22:00:37 +02:00
Rob Watson
045498a2ce fix(ui): handle table wraparound on k binding
Some checks are pending
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
1e759b6f42 fix: print help on -h flag 2025-04-06 16:58:33 +02:00
Rob Watson
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
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
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
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
87f6786387 chore: bump Go to 1.24.2 2025-04-03 20:10:48 +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