95 Commits

Author SHA1 Message Date
311c100d89 fixup! wip: refactor: API 2025-05-12 19:42:50 +02:00
5aa1be2066 fixup! wip: refactor: API 2025-05-11 08:11:05 +02:00
c5724dfe59 fixup! wip: refactor: API 2025-05-11 07:55:06 +02:00
d0d96dd1d9 fixup! wip: refactor: API 2025-05-11 06:15:20 +02:00
977b6fe7d7 fixup! wip: refactor: API 2025-05-11 06:14:17 +02:00
b8a77d9c6c fixup! wip: refactor: API 2025-05-11 06:12:44 +02:00
c706a41acd fixup! wip: refactor: API 2025-05-10 21:47:10 +02:00
59b0a060ba fixup! wip: refactor: API 2025-05-10 21:18:42 +02:00
116623f386 fixup! wip: refactor: API 2025-05-10 21:14:40 +02:00
aa6f50715d fixup! wip: refactor: API 2025-05-10 08:15:23 +02:00
7706bb363f fixup! wip: refactor: API 2025-05-10 07:46:58 +02:00
888ac7d67d fixup! wip: refactor: API 2025-05-10 07:36:39 +02:00
c6f21b194a fixup! wip: refactor: API 2025-05-09 06:47:27 +02:00
6ceb286e6b fixup! wip: refactor: API 2025-05-08 07:08:43 +02:00
0a6b9fad90 fixup! wip: refactor: API 2025-05-07 20:32:27 +02:00
f67a456d1e wip: refactor: API 2025-05-06 21:38:14 +02:00
d4e136c8d6 feat: headless mode (experimental) 2025-05-06 01:19:47 +02:00
2bdb5335dc refactor(app): add Dispatch method 2025-05-06 01:11:18 +02:00
d1efffc937 refactor(app): internalize dispatch channel 2025-05-06 01:11:18 +02:00
d3171c6251 refactor: extract commands from domain 2025-05-06 01:11:18 +02:00
d9dbb7fc8f doc: add godoc 2025-05-06 01:11:18 +02:00
8c4974e0c1 refactor(app): add DestinationWentOffAirEvent 2025-05-06 01:11:18 +02:00
6bcd5d05c7 fix(app): event ordering
Use a single channel per consumer, instead of one channel per
consumer/event tuple. This ensures that overall ordering of events
remains consistent, and avoids introducing subtle race conditions.
2025-05-06 01:11:18 +02:00
c6ce8be5b1 refactor(app): async startup check 2025-05-06 01:11:18 +02:00
9c16275207 refactor(app): add StartDestinationFailedEvent 2025-05-06 01:11:18 +02:00
a80e891b75 refactor(app): add destination error events 2025-05-06 01:11:18 +02:00
9e2f6649eb refactor(app): add AppStateChangedEvent 2025-05-06 01:11:18 +02:00
de0ecb1f34 refactor(app): extract more events 2025-05-06 01:11:18 +02:00
d96d26c29c refactor(app): extract handleCommand 2025-05-06 01:11:18 +02:00
4a2857e310 refactor(app): add App type 2025-05-06 01:11:18 +02:00
e8be872047 chore: remove stray file 2025-05-06 01:10:33 +02:00
4b464c680d refactor: add event bus 2025-04-22 15:50:49 +02:00
add511e3dd refactor: extract commands to domain package
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
2025-04-20 20:55:10 +02:00
7afa84505e fix(mediaserver): handle custom hostname with self-signed certs 2025-04-20 18:59:27 +02:00
4a863a3212 feat(mediaserver): custom TLS certs 2025-04-20 11:27:17 +02:00
98d93ad286 feat(mediaserver): RTMPS
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-19 22:05:55 +02:00
5f026be769 refactor(config)!: update config file schema
BREAKING CHANGE: YAML schema
2025-04-18 18:00:28 +02:00
d35dedb15b test(integration): fix typo 2025-04-18 09:59:40 +02:00
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
b147da6d9b feat(mediaserver): configurable RTMP host and bind address 2025-04-17 11:15:08 +02:00
b8389eceb0 feat: improve Docker connection error handling 2025-04-16 14:53:47 +02:00
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
2025-04-15 09:23:01 +02:00
52b0616d5f chore(config): rename streamKey field 2025-04-15 08:11:53 +02:00
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
579dfeef22 test(integration): extract app startup logic 2025-04-13 11:31:00 +02:00
5f6b6fa3a9 test(integration): add t.Helper() 2025-04-13 11:00:18 +02:00
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
2025-04-13 09:26:31 +01:00
f7f9843c4b test(integration): add coverage for custom stream key 2025-04-11 09:57:45 +02:00
524dafd800 security(mediaserver): bind to 127.0.0.1 2025-04-11 09:28:30 +02:00
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