IRL Dashboard — Quick Install ============================= A single-screen control panel for IRL streaming that runs ON your router (OpenWRT / GL.iNet), with SRTLA modem bonding. Bond every SIM and Wi-Fi uplink into one stream, control your encoder, watch bitrate and signal, and drop weather / GPS / clock / theme-park overlays onto the broadcast — all on one page you pull up on your phone mid-stream. No laptop, no cloud service, works on cellular. Built for the new GL.iNet Mudi 7 (GL-E5800), a quad-core ARM router with the horsepower to bond several 5G modems and run the dashboard at once. The dashboard itself runs on any OpenWRT router; the bonding sender is a native binary built for the Mudi 7. -------------------------------------------------- 1) INSTALL — invite only -------------------------------------------------- Each invited person receives a unique private install link. It expires after one successful dashboard package download. The invitation page gives you the command to paste into SSH or the LuCI terminal. That installs PHP, downloads the dashboard, adds a location block to your router's existing nginx server, and — on the Mudi 7 — installs the SRTLA bonding sender. It runs on the port your router already uses for its admin UI, so there is no second port to bind. The installer backs up your nginx config first and puts it straight back if anything goes wrong. To request access, email invite@streamhelpers.com with your use case, who referred you, and your streaming-tech expertise. This is not a support address and no technical support is currently offered. Incomplete or single-line requests are deleted. You need: a router running OpenWRT (a Mudi 7 for bonding), about 25MB free on /overlay, and the router online so opkg can fetch PHP. -------------------------------------------------- 2) CONFIGURE - in your browser, not a text editor -------------------------------------------------- Open: http://YOUR-ROUTER-IP/streaming/ The first visit lands on the Settings screen. Fill in what you use and press Save. That is the whole setup. It works fine from a phone. You can get back to it any time from the gear icon in the tab bar, or at /settings.php directly. EVERY SETTING IS OPTIONAL. Leave one blank and the dashboard hides that tab instead of showing something broken. Nothing has to be filled in first — the router's own address is detected for you. What each setting turns on: Menu bar switches Which tabs appear: Router, Bonding, GPS, Weather, Clock, Stopwatch, Theme parks, Overlays, DJI camera SRTLA receiver host+port Modem bonding target (Bonding tab) Director Mini IP+login Magewell Director Mini tab (scenes, GFX, streams) OBS address + WS password OBS scene and stream control Restreamer API + login Restreamer bitrate readout Restreamer web UI URL Embedded Restreamer tab Restream.io client ID Restream.io publishing Premium multi-platform Hosted multi-platform chat through StreamHelpers AI provider + API key The AI diagnostics assistant DJI camera DJI tab (pair over BLE, send to Director Mini) Spare tab URL + label Any other page you want inside the dashboard Quick links Your buttons on the Links tab Confirm-first buttons Buttons that ask "are you sure?" first The weather needs no key of any kind. It comes from Open-Meteo and locates itself from your GPS fix, falling back to a location you can set on the Weather tab. Theme park data needs no key either — see section 4. Each field on the Settings screen carries a note on where to get that credential. Settings are stored as plain JSON in /etc/irl-dashboard/settings.json - outside the web root, so they can never be served over HTTP. -------------------------------------------------- 3) MODEM BONDING (SRTLA) -------------------------------------------------- The Bonding tab turns every modem, tethered phone and Wi-Fi uplink into ONE resilient stream. It is automatic: plug an uplink in and it joins the bond; lose service and it drops out. When one link stutters the others carry it. Flow: Director Mini (SRT) -> router (srtla_send, bonds all uplinks) -> internet -> srtla_rec -> Restreamer -> YouTube / Twitch / Kick The bonded stream is reassembled on a machine with a public address - the RECEIVER. It ships as a Docker package you run on any always-on box (home server / NAS / VPS): https://streamhelpers.com/irl-dashboard/receiver/ Then, in the Bonding tab, set Receiver host / Receiver port to that box, add the Director Mini as an SRT Caller to the router, and press Start bonding. The tab shows every uplink, live throughput, and a timestamped connection log. -------------------------------------------------- 4) STREAM OVERLAYS -------------------------------------------------- The GPS, Weather, Clock, Stopwatch and Theme parks tabs each build a transparent overlay with a live preview, a drag-to-place 16:9 stage and a Copy button. Add the URL on the Director Mini under Produce -> GFX -> Add (paste the URL), or as a browser source in OBS. It renders full-frame, so you can also size, position and fade it with the encoder's own controls. The Overlays tab has a switch per overlay so you can put things on and off air mid-stream without touching the encoder, plus a visual designer for overlays of your own. Its optional single encoder URL combines every overlay into one browser source: add that once and never touch the encoder again. THEME PARKS — live wait times, show times and dining availability, from ThemeParks.wiki. Turn on the Theme parks tab in Settings first. Browse the destination directory, pick a park, choose what to list and which details each row carries, then show it as a ticker, a scroller, a static list, or one entry at a time. Its URL never changes, so you can switch park mid-trip and the encoder follows within seconds. With that tab on, the Stopwatch gains a "What am I near?" button: it uses your GPS fix to find the closest attraction and puts the name in the title, between a reusable before and after phrase — "Waiting for ___ so far". The data is free and community-run, and their terms ask for credit. The overlay carries a small ThemeParks.wiki line by default. Please leave it on, or mention them on stream. https://www.themeparks.wiki/about You choose where that line sits: Beginning or End tuck it in with the data and cost no extra height, Top or Bottom give it its own line. The choice only appears when the credit is switched on. -------------------------------------------------- 5) UPDATING -------------------------------------------------- Re-run the same install command. It replaces the app files and the bonding binaries and NEVER overwrites your settings. -------------------------------------------------- SECURITY (read this) -------------------------------------------------- - SET A USERNAME AND PASSWORD under Access on the Settings screen. Without one there is no login at all: anyone who can reach the dashboard can read your API keys, reboot your modem and restart your bond. The Settings screen warns you while no login is set. - The password is stored hashed, never in plain text. The settings form carries a CSRF token so another site cannot silently POST changes. - Even with a login set, keep this on your LAN or a VPN. Do NOT port-forward it. - settings.json holds your API keys in plain text on the router. It is kept in /etc/irl-dashboard/ (outside the web root) at mode 600, owned by the web user. - The overlay pages are deliberately left unauthenticated so the encoder can load them as browser sources. - Where present, the installer grants the web user passwordless sudo for SPECIFIC binaries only (gl_modem, ubus, dmesg, srtla-bond.sh, and the read-only "uci -q show wireless"), in /etc/sudoers.d/irl-dashboard. Delete that file to revoke it. -------------------------------------------------- Provided free and AS-IS: no warranty, no support. https://streamhelpers.com/legal.html Theme park data from ThemeParks.wiki, a free community-run API. https://www.themeparks.wiki/about