Skip to content

Web Dashboard

Anjeleno edited this page Jul 22, 2026 · 7 revisions

The Web Dashboard (rivapi)

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.


Logging in

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.


System

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.


Streaming

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.


Patchbay

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.


Mode

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.


Tasks

Scheduled jobs, each with its own interval (hourly/daily/weekly/monthly, or a raw systemd calendar expression for anything more specific):

  • Database backup — a mysqldump of the Rivendell database on a schedule.
  • Log generationrdlogmanager -g, generating a new log for a service some configurable number of days ahead.
  • Merge traffic logrdlogmanager -t, merging an imported traffic log into an existing one.
  • Log reconciliationrdlogmanager -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.


Backup

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.


What's next

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.

Clone this wiki locally