-
Notifications
You must be signed in to change notification settings - Fork 1
Web Dashboard
Rivolution ships with rivapi, a Go-based web dashboard for day-to-day
station management — service control, streaming configuration,
JACK/PipeWire patching, scheduled tasks, and full config backup/restore,
all from a browser, 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).
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.
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.
Also where Stereo Tool itself gets installed (downloaded directly from Thimeo, never bundled — see the license note shown when this runs) and launched, for the one-time whitelisting step its own web UI needs.
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 — draw 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) — see Deb Package Install's step 3 for the one-time setup every fresh install needs.
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.
A couple of pieces are still early: a Tailscale integration page (the Ansible installer already supports enabling Tailscale at install time — see Unified Installer — but the dashboard's own activation/status page isn't built yet), and RDAdmin-parity features (user management, cart editing) that are intentionally long-tail — service control, broadcast tooling, and PipeWire came first. See Roadmap for what's planned next.