Stats Dashboard
The CLI client can serve a built-in statistics dashboard — a self-contained HTML page with live MRTG/RRD-style graphs, plus a JSON API for scripting. It runs alongside the client with no extra dependencies and is disabled by default.
What It Shows
Section titled “What It Shows”- Throughput — receive/transmit rate graphs, sampled continuously
- Connections — accepted, active, completed, tunneled, bypassed and blocked counters
- History — the last 24 hours, kept in memory (resets on restart)
The page auto-reloads every 30 seconds. Everything is rendered as inline SVG — no JavaScript frameworks, no external requests.
Enabling
Section titled “Enabling”Ad-hoc, from the command line:
rvpn -c ~/.config/rvpn/client.toml --dashboard-listen 127.0.0.1:9800Or permanently, in client.toml:
[dashboard]enabled = truelisten_address = "127.0.0.1:9800"Then open http://127.0.0.1:9800 in a browser.
Viewing from the LAN
Section titled “Viewing from the LAN”If the client runs on a gateway or another machine, bind the LAN interface and extend allow_cidrs:
[dashboard]enabled = truelisten_address = "0.0.0.0:9800"allow_cidrs = ["127.0.0.0/8", "192.168.10.0/24"]Requests from outside the allowed ranges get 403 Forbidden.
JSON API
Section titled “JSON API”GET /api/stats.json returns the raw counters and the recent history buckets (30 minutes), suitable for feeding into your own monitoring:
curl -s http://127.0.0.1:9800/api/stats.json | jqFields include bytes_up, bytes_down, conns_accepted, conns_active, conns_tunneled, conns_bypassed and conns_blocked.
Configuration Reference
Section titled “Configuration Reference”| Field | Type | Default | Description |
|---|---|---|---|
enabled | bool | false | Start the dashboard HTTP listener alongside the client. |
listen_address | string | "127.0.0.1:9800" | Address and port for the dashboard. |
allow_cidrs | list | ["127.0.0.0/8", "::1/128"] | Networks allowed to view the dashboard; everyone else gets 403. |
See also: Client Config Reference