Skip to content

Dashboard Overview

RustSocks ships with a modern, single-page admin dashboard served directly by the Rust backend. It is designed for operators who need fast insight and immediate control.

Enable the UI

[sessions]
stats_api_enabled = true
dashboard_enabled = true
swagger_enabled = true
stats_api_bind_address = "127.0.0.1"
stats_api_port = 9090
base_path = "/"

Build the frontend once:

cd dashboard
npm install
npm run build

Open: http://127.0.0.1:9090/

Page-by-Page Guide

Dashboard

A live operational overview with:

  • Active sessions and total session counts
  • Bandwidth totals (sent/received)
  • Top users by bandwidth
  • Top destinations by session count
  • Auto-refresh every few seconds

Sessions

Live and historical session visibility:

  • Toggle Active vs History
  • Filter by user, destination, protocol, status
  • View session details (source, destination, bytes, packets, duration)
  • Export visible rows to CSV
  • Terminate active sessions

ACL Rules

Manage access control lists visually:

  • Browse groups and per-user rules
  • See destinations, ports, protocols, priorities
  • Create, edit, delete ACL rules
  • Immediate effect when ACL watching is enabled

Users

User and group management:

  • List users and group membership
  • View per-user statistics
  • Manage group assignments and per-user rules

Statistics

Historical analytics and trends:

  • Time windows (1h, 6h, 24h, 7d, 30d)
  • Session count charts
  • Bandwidth charts
  • Top users and top destinations

Telemetry

Operational telemetry stream:

  • Pool pressure and upstream failures
  • Filter by lookback window, severity, category
  • Useful for quick troubleshooting

Diagnostics

System and server health at a glance:

  • Health check status
  • Process and system resource metrics
  • Quick validation of service state

Configuration

Runtime configuration editor for key modules:

  • Server: bind address, port, limits
  • Sessions & API: storage, dashboard, API settings
  • Connection pool: pooling strategy and timeouts
  • Metrics & telemetry: retention and collection

Runtime fields exposed in the UI:

  • Global ACL: default policy (allow/block)
  • Server: bind address, port, dashboard enabled, Swagger enabled, stats API enabled, stats API bind address, stats API port
  • Sessions: storage, database URL, retention days, cleanup interval, traffic update packet interval, stats window, base path
  • Pool: enabled, max idle per destination, max total idle, idle timeout, connect timeout
  • Metrics: enabled, storage, retention hours, cleanup interval, collection interval
  • Telemetry: enabled, max events, retention hours

Changes are validated and written atomically to config/rustsocks.toml when a config file is in use. When no config file is active, the editor becomes read-only.

Login

If dashboard authentication is enabled, a login screen prompts for credentials configured in sessions.dashboard_auth.

Security Notes

  • The dashboard can be protected with Basic Auth and optional Altcha.
  • For production, bind the API to localhost or protect it behind a reverse proxy.

See Dashboard Authentication for details.