Wheelhouse docs

System#

System → System is four tabs over one page: Overview, Settings, History and Audit. The four stat tiles and the two header buttons are present on all of them.

TabWhat it isPage
OverviewVersion, hardware, power and boot imagesthis page
SettingsIdentity, time, SSH, accounts, syslog, SNMP, tunables, tasksSettings
HistoryConfiguration revisions, diffs and restoreHistory
AuditWho changed what, through this agentAudit

The tab lives in the page's own state, so a reload returns to Overview.

The header#

The subtitle is <host name> · <product> <version>. Beside the tab strip are two buttons that are always available.

Download config#

Fetches GET /api/config/raw and saves it in the browser as <hostname>-config.boot. It is admin-only — the endpoint is behind adminOnly — because the file is unredacted and carries every secret in the configuration, including the API key the agent authenticates to the router with.

The agent refuses to return an empty file: if the router answers with no configuration text, the handler returns a 502 saying so, and the page shows the error rather than saving a zero-byte "backup". An empty file that looks like a backup is worse than a visible failure.

Save to boot config#

POST /api/config/save writes the running configuration to /config/config.boot on the router, so it survives a reboot. It is an immediate action, it is audited as save, and it needs the operator role and a licence.

The toast says exactly what happened: "Running config written to /config/config.boot."

The four tiles#

TileValue
UptimeThe router's uptime, with the three load averages beneath.
Memory usedUsed, of total.
Disk usedUsed, on which filesystem, with a meter from the percentage the router printed.
Config revisionsHow many revisions the history holds, described as rollback targets.

All four come from GET /api/system, polled every 15 s on this page, except the revision count which comes from GET /api/history.

Overview — Version#

The product's identity, in the product's own terms:

RowSource
ProductThe product name and version.
Built onThe image's build date.
ArchitectureThe system architecture.
Boot viaHow the running image was booted.
Host namesystem host-name.
Base platformThe base's own version string, with its release train when the version does not already contain it.

Below it, a fixed line of attribution: built on VyOS, free software under the GNU General Public License version 2, with full credits and the offer of corresponding source on the About page.

The panel deliberately does not dump every key from the router's show version. The release train, the build flavour and the upstream build id are attribution, and they belong under the credit on the About page rather than as the answer to "what am I running" — ui/src/components/product.ts.

Overview — Hardware#

Vendor, model, CPU model, core count, current clock, total memory, the filesystem, and disk used of total. All of it is parsed from show version, show hardware cpu, show system memory and show system storage in one round trip — agent/opmode.go, handleSystem.

handleSystem makes seven sequential reads. On a cold cache against a stalled router that used to be seven times the read timeout — close to three minutes of a held connection. Every read a browser makes now carries a 20-second total budget and is cancelled when the tab goes away.

Overview — Power and Boot images#

The third panel on the Overview row is Power, and below the row is Boot images. Both are admin-only and both act immediately. They have their own pages:

  • Power — reboot and power off, with the host name typed to confirm.
  • Boot images — install a new image from a URL, choose the default, delete an old one.

Integration offers#

If Prometheus is installed from the catalogue, a card appears under the header: "Scrape Wheelhouse itself". It carries no operations — how you point a scraper at the agent is a decision about your monitoring, not a command that can be pre-written. See integration offers and Telemetry.

See also#


Checked against ui/src/pages/System.tsx, ui/src/components/product.ts, agent/opmode.go, agent/main.go, agent/vyos.go, docs/backup-restore.md.

Updated 2026-09-02 manual system overview