-
Notifications
You must be signed in to change notification settings - Fork 1
Web Dashboard
Rivolution ships with rivapi, a new Go-based web dashboard for day-to-day orchestration of service control, streaming configs, PipeWire/JACK patches, tasks (nightly SQL backups, log generation and support for custom scripts), Standalone/Server/Client mode switching, processing, and config backup / restore. Use the features you want, skip the ones you don't. No terminal required.
It's installed and running automatically as part of a normal package install (rivapi.service, managed alongside the rest of the broadcast stack — see Deb Package Install).
Tip
Everything here is optional to use — Rivolution runs fine with none of it touched, the same way stock Rivendell always has. Use the pages that help, skip the ones that don't.
Reachable at http://<this-box's-address>:8080 once installed.
There's exactly one account: username admin, password is the
JwtSecret value in /etc/rd.conf's [dashboard] section — a random
64-character string generated automatically on a fresh install (see
that value with grep '^JwtSecret=' /etc/rd.conf). This is
deliberately independent of both Rivendell's own user database and any
Linux system account — no PAM, no shadow-group membership needed. The
actual password is everything after JwtSecret= on that line.
Live status for every service in the broadcast stack — rivendell,
mariadb, apache2, pipewire-system, wireplumber-system,
stereo-tool, rivapi itself, and more — each with start/stop/restart
controls. Updates automatically without a page reload.
Warning
Restart Stack will interrupt audio, but gives you a popup warning before executing.
Configures the actual broadcast chain: Icecast connection details
(host/port/mount/passwords), the JACK client this feeds from, sample
rate, and log path. Clicking Save & Deploy writes the config and
restarts the underlying ffmpeg-based stream services — this is the
step that actually takes effect; editing the fields alone doesn't
change anything live until deployed.
If Stereo Tool's own routing target can't resolve (e.g. it drifted out of sync with what's actually live), this page surfaces an actionable banner naming the real, detected JACK client and a one-click "Use this and redeploy" button, instead of just a warning that describes the problem.
The JACK/PipeWire connection matrix — choose and save connections between
any two clients in the audio graph (rivendell_0, Stereo Tool, ffmpeg
stream encoders, VLC, real hardware). Once at least one connection is
saved here, this becomes authoritative over the whole graph: anything
connected that isn't in the saved set gets automatically disconnected
within about 30 seconds, and anything saved that isn't currently
connected gets automatically reconnected — connections don't survive
either endpoint restarting on their own, so this self-heals that
continuously rather than requiring a manual redraw after every reboot.
Program Source here is what actually feeds Stereo Tool (or your streams directly, if you're not using Stereo Tool).
(Also documented on Deb Package Install's step 3 — kept here too so this page is self-contained; update both if this step ever changes.)
Rivolution's audio routing has two separate controls that both need to be set, in order, the first time:
-
/patchbay's Program Source field — what feeds Stereo Tool (or every stream directly, if you're not using Stereo Tool). -
/broadcast's Save & Deploy button — the action that actually applies your current Program Source to Stereo Tool's live audio routing.
- Go to
/patchbayand set Program Source to whatever actually feeds your streams (typically Stereo Tool, if you're using it). - Go to
/broadcastand click Save & Deploy — even if nothing else on that page changed. This step is what actually applies the routing.
Verify: back on /patchbay, the Connections list should show real,
Saved links — both rivendell_0 output ports connected to Stereo
Tool's input, and both Stereo Tool output ports connected to your
stream(s).
Switches the station between three network topologies:
- standalone — everything local: database, audio store, desktop.
- server — standalone, plus the database and audio store exposed to other Rivolution hosts over NFS.
- client — only the Rivolution application itself, pointed at a remote MySQL/MariaDB host and a remote NFS-mounted audio store.
Applying a mode change shows a real step-by-step log as it happens, not just success/failure, so you can see exactly how far it got if something stops partway through.
Scheduled jobs, each with its own interval (hourly/daily/weekly/monthly, or a raw systemd calendar expression for anything more specific):
-
Database backup — a
mysqldumpof the Rivendell database on a schedule. -
Log generation —
rdlogmanager -g, generating a new log for a service some configurable number of days ahead. -
Merge traffic log —
rdlogmanager -t, merging an imported traffic log into an existing one. -
Log reconciliation —
rdlogmanager -r Reconcile, fixing log discrepancies for a service. -
Custom command — runs any script or command you point it at
(
/home/rd/apps/my-script.sh, or anything else on the box), on the same scheduling mechanism as the built-in task types.
Each task's last-run status is shown right on the list — no need to dig
through journalctl to check whether last night's backup actually ran.
Exports every dashboard-configured setting — Streaming, Patchbay, Mode,
Tasks — plus Stereo Tool's own state (~/.stereo_tool.rc and any saved
presets, which live outside this project's own config entirely) into
one importable JSON file. Useful for migrating to new hardware or
disaster recovery.
Warning
An exported file contains real secrets — Icecast passwords, and a remote MySQL password if Mode is set to client. Treat it like any other credentials file, not something to share casually.
Note
Stereo Tool itself is downloaded directly from Thimeo's own public URL, never bundled with Rivolution.
Tip
Depending on your specific needs, we recommend purchasing a Stereo Tool license for full features. Available directly from Thimeo's own site.
Note
Visiting Stereo Tool's web interface Processing Page
(http://<this-box's-address>:8079) from a machine whose IP isn't in
that whitelist box, you'll get an "Access denied — not whitelisted"
page instead of the interface — it shows the exact IP to add.
Needed for /broadcast's Stereo Tool integration to actually reach
it — a one-time, per-machine setup done through its own GUI, not the
dashboard:
- On the System page, under the Stereo Tool binary, tap Launch GUI.
- In the Stereo Tool GUI, go to Configure → Configure.
- Scroll down to Web Interface and tap the power icon to enable it.
- Change the port to 8079.
- If there's already an IP in the whitelist box, add a space after it, then enter your own IP to whitelist yourself too.
- With the Stereo Tool GUI open, tap the speaker-icon I/O button at the top.
- Then tap Audio I/O.
- Set the sample rate to match Rivolution: 48 kHz.
- Under Input, choose ALSA / jack (ALSA).
- Under Output, choose ALSA / jack (ALSA).
Caution
Make sure you close the Stereo Tool GUI afterward. Otherwise you'll have two copies of Stereo Tool running at the same time, creating a processing loop.
A couple of pieces are still early: a Tailscale integration page (the Unified Installer already supports enabling Tailscale at install time — see Unified Installer — but the dashboard's own activation/status page isn't built yet), service control, broadcast tooling, and PipeWire came first. See Roadmap for what's planned next.