8403d751b6
doc: add godoc
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-25 19:19:54 +02:00
2f1cadcf40
refactor(app): add DestinationWentOffAirEvent
2025-04-25 18:10:22 +02:00
1f4a931903
fix(app): event ordering
...
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
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-04-25 17:42:49 +02:00
94623248c0
refactor(app): async startup check
2025-04-25 17:42:49 +02:00
3019387f38
refactor(app): add StartDestinationFailedEvent
2025-04-25 04:44:36 +02:00
f4021a2886
refactor(app): add destination error events
2025-04-24 21:45:53 +02:00
b8550f050b
refactor(app): add AppStateChangedEvent
2025-04-24 21:45:53 +02:00
4029c66a4a
refactor(app): extract more events
2025-04-24 21:45:53 +02:00
cdf41e47c3
refactor(app): extract handleCommand
2025-04-22 16:28:38 +02:00
d7f8fb49eb
refactor(app): add App type
2025-04-22 16:06:37 +02:00
4b464c680d
refactor: add event bus
2025-04-22 15:50:49 +02:00
add511e3dd
refactor: extract commands to domain package
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
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
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
df9724afa7
feat: container logs
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
...
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
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
08a5690d30
test: add container debug logs
2025-04-10 07:38:05 +02:00
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
f791125c02
feat(ui): update key bindings
2025-04-09 21:05:06 +02:00
30da888184
feat(ui): improve error handling on startup
2025-04-09 06:50:35 +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
e778c3c443
fix(ui): mediaserver error modal improvements
2025-04-05 21:42:36 +02:00
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
54cfe3a55f
feat(ui): add "no destinations" page
2025-04-04 15:59:34 +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
ba356137c3
chore: enable Docker API version negotiation
2025-04-01 21:03:05 +02:00
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
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
2cde04728a
feat(mediaserver): use TLS for API endpoints
2025-03-27 08:18:25 +01:00
3ec4f49b0f
observe: allow DEBUG logs via env vars
2025-03-26 17:40:57 +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
b231e8736c
feat: cleanup zombie networks
2025-03-16 15:05:43 +01:00
9314506c75
test(integration): extend app test
2025-03-16 12:36:28 +01:00
99766c8230
feat: error handling
2025-03-14 20:57:04 +01:00
7dba1768a4
refactor: internal package
2025-03-09 19:58:25 +01:00