Wild Dragon fork of datarhei/restreamer-ui — branding + WebRTC WHEP egress controls for dragonfork-core
Find a file
ZGaetano 0f5163e262 Add WHIP ingest toggle to Edit page with _upsertProcess patch
- Import WHIPControl from misc/controls/WHIP
- Render WHIPControl bound to control.whip_ingest before the WHEP section
- Monkey-patch props.restreamer._upsertProcess in handleDone so that
  whip_ingest.enabled is injected into the main ingest process config
  before it reaches the Core API. The SDK's UpsertIngest does not
  forward control.whip_ingest, so this intercept is required.
- Note: enable (no trailing d) is used in UI state to match WHEP.js convention;
  it maps to enabled (with d) in the Core API JSON body.
2026-05-09 17:15:37 -04:00
.forgejo/workflows chore: add Dockerfile and Forgejo CI publish workflow: publish.yml 2026-05-06 16:17:03 -04:00
overlay Add WHIP ingest toggle to Edit page with _upsertProcess patch 2026-05-09 17:15:37 -04:00
apply-overlay.sh fix: typo $src -> $sub in cp loop 2026-05-06 16:19:57 -04:00
Caddyfile chore: add build scaffolding, overlay structure, CI workflow: Caddyfile 2026-05-06 16:16:56 -04:00
CHANGELOG.md chore: add build scaffolding, overlay structure, CI workflow: CHANGELOG.md 2026-05-06 16:16:56 -04:00
Dockerfile chore: add Dockerfile and Forgejo CI publish workflow: Dockerfile 2026-05-06 16:17:02 -04:00
README.md chore: add build scaffolding, overlay structure, CI workflow: README.md 2026-05-06 16:16:56 -04:00

Wild Dragon Restreamer UI

Wild Dragon fork of datarhei/restreamer-ui, adding:

  • Wild Dragon branding — logo, theme, manifest, page title
  • WebRTC (WHEP) output control — per-channel toggle in the Processing & Control editor tab
  • WHEP URL copy button — alongside HLS/RTMP/SRT in the main channel view
  • Live viewer count — badge polling GET /api/v3/webrtc/streams/{id}/peers (requires dragonfork-core)

Upstream

Pinned to datarhei/restreamer-ui v1.14.0 (React 18, MUI v5).

Build

docker build -t wilddragon-ui .

Or pull the prebuilt image from CI (see .forgejo/workflows/publish.yml).

Repository structure

overlay/              Wild Dragon files layered on top of upstream at build time
  public/             index.html, manifest.json  (branding)
  src/
    misc/
      controls/
        WHEP.js       WebRTC output toggle control (new)
      Logo/           Wild Dragon logo components + SVG assets
    views/
      Edit/
        index.js      Upstream file + WHEPControl section in Processing tab
      Main/
        index.js      Upstream file + WHEP copy button + viewer count
        WHEPStatus.js Live WebRTC viewer count badge (new)
apply-overlay.sh      Phase-1 file copy + Phase-2 awk patches (Header/Welcome/Settings)
Dockerfile            clone upstream v1.14.0 → apply overlay → yarn build → Caddy
Caddyfile             Caddy v2 config for the built SPA

Binary assets (overlay/public/favicon.ico, logo192.png, logo512.png) must be committed separately via git — the Forgejo API does not accept binary uploads in text form.

Upstream rebase

When datarhei releases a new restreamer-ui version:

  1. Update ARG UPSTREAM_TAG in Dockerfile.
  2. Verify the three patch_line calls in apply-overlay.sh still match the new upstream.
  3. Re-fetch and re-diff overlay/src/views/Edit/index.js and overlay/src/views/Main/index.js against the new upstream to carry forward our additions.