diff --git a/README.md b/README.md index 98bca23..f2e212d 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,9 @@ publisher (OBS / FFmpeg / SRT) ──▶ datarhei Core ──▶ WebRTC peers Sub-second glass-to-glass on a LAN over WHEP, no SFU dependencies, single binary, single Docker image. -> **Status:** M1–M4 complete, M5 (release) in flight. Live deploy -> running on TrueNAS since 2026-04-17. +> **Status:** v0.2.0-dragonfork shipped 2026-05-03. Full GUI bundled +> (Restreamer UI + Wild Dragon WebRTC admin). Live deploy running on +> TrueNAS since 2026-04-17. ## What this fork adds @@ -34,9 +35,12 @@ single binary, single Docker image. - **`DELETE /api/v3/whep/{processID}/{resourceID}`** — idempotent teardown. - **`PATCH …/{resourceID}`** — trickle ICE. -- **Browser-side smoke player** at `test/whep-player.html` — - zero-dependency WHEP subscriber, ICE/codec/bitrate stats, JWT - field, shareable `?url=&token=` URLs. +- **Bundled GUI** — the upstream Restreamer React UI is built into the + TrueNAS deploy image with Wild Dragon branding, plus a single-file + Wild Dragon WebRTC admin page for one-click `webrtc.enabled` toggling. +- **Browser-side smoke player** at `whep-player.html` — zero-dependency + WHEP subscriber, ICE/codec/bitrate stats, JWT field, shareable + `?url=&token=` URLs. - **Multi-viewer correctness:** per-stream peer cap, ICE-failure auto-cleanup, process-stop broadcast tear-down. - **Error matrix** per the design spec: `406` on codec mismatch, @@ -65,10 +69,17 @@ EOF docker compose up -d --build ``` -Then: +Then open in a browser (replace `` with your `PUBLIC_IP`): -- Swagger UI: `http://:8080/api/swagger/index.html` -- WHEP smoke player: open `test/whep-player.html` in a browser +| URL | What it does | +| --- | --- | +| `http://:8080/` | **Restreamer UI** — manage processes, ingests, outputs | +| `http://:8080/wilddragon-webrtc.html` | **Wild Dragon WebRTC admin** — toggle `webrtc.enabled` per process, copy WHEP URL | +| `http://:8080/whep-player.html` | **WHEP smoke player** — verify the WebRTC stream renders | +| `http://:8080/api/swagger/index.html` | **Swagger** — full API docs | + +The Restreamer UI doesn't yet have a WebRTC checkbox in its process +editor — use `/wilddragon-webrtc.html` for that. Tracked in issue #15. ### Sample process JSON @@ -108,6 +119,8 @@ SDI + file audio), use the `video_map` and `audio_map` fields: | Design spec | [`docs/design/2026-04-16-datarhei-dragon-fork-webrtc-design.md`](docs/design/2026-04-16-datarhei-dragon-fork-webrtc-design.md) | | M1 (PoC) plan | [`docs/design/2026-04-16-datarhei-dragon-fork-m1-webrtc-poc.md`](docs/design/2026-04-16-datarhei-dragon-fork-m1-webrtc-poc.md) | | M2 (Core integration) spec | [`docs/design/2026-04-17-datarhei-dragon-fork-m2-webrtc-core-integration.md`](docs/design/2026-04-17-datarhei-dragon-fork-m2-webrtc-core-integration.md) | +| Prometheus metrics design (deferred) | [`docs/design/2026-05-03-datarhei-dragon-fork-webrtc-prometheus-metrics-design.md`](docs/design/2026-05-03-datarhei-dragon-fork-webrtc-prometheus-metrics-design.md) | +| TrueNAS deploy guide | [`deploy/truenas/core/README.md`](deploy/truenas/core/README.md) | | Testing | [`test/TESTING.md`](test/TESTING.md) | | Changelog (Dragon Fork) | [`CHANGELOG.md`](CHANGELOG.md) | | Upstream Datarhei docs | [docs.datarhei.com/core](https://docs.datarhei.com/core) | @@ -142,6 +155,8 @@ Dragon Fork is built on: - **datarhei Core** — Apache 2.0, © datarhei. The base repository this fork tracks. See [`NOTICE`](NOTICE) for the required attribution. +- **datarhei Restreamer UI** — Apache 2.0, © datarhei. The React frontend + bundled into the TrueNAS deploy image with Wild Dragon overlays. - **Pion WebRTC** — MIT. The Go WebRTC stack the egress path is built on. - **FFmpeg** — LGPL / GPL (build-flag dependent). Used as a subprocess