Introduction
ServerBee is a lightweight, modern VPS monitoring system built with Rust and React.
ServerBee is a lightweight, self-hosted VPS monitoring probe system designed for individuals and small teams. Built with a full Rust stack and a React frontend, it pairs high performance with a very small resource footprint.
What Is ServerBee
ServerBee has two core components:
- Server -- the control center you run on a management host. It serves the web dashboard, stores data, evaluates alerts, runs background jobs, and exposes the REST API.
- Agent -- a lightweight collector you install on each monitored host. It gathers system metrics and reports them in real time, and (when authorized) runs probes, terminal, file, and Docker operations.
Agents keep a persistent WebSocket connection to the server for real-time push. All data is stored in SQLite, so there is no external database to install.
Key Features
Real-time monitoring and custom dashboards
View the live status of every server through a WebSocket-driven dashboard. Metrics include CPU, memory, disk, network, load average, temperature, GPU, disk I/O, and traffic, arranged across multiple dashboards and widget layouts.
Alerts and service monitors
A flexible alert engine supports resource thresholds, traffic cycles, network quality, offline, expiry, and IP-change events, with debounce logic and maintenance suppression. Service monitors cover SSL certificate, DNS, HTTP keyword, TCP, and WHOIS checks, and deliver notifications through Webhook, Telegram, Bark, Email, APNs, and other channels.
Web terminal, remote tasks, and file manager
Open a browser-based PTY shell on any server, run one-shot commands, or schedule cron tasks with retries. The file manager provides controlled remote browse, read, edit, upload, and download operations with path sandboxing and audit logs.
Ping, network quality, and traceroute
Run ICMP, TCP, and HTTP probes from multiple agents to measure target reachability, latency, and packet loss, with charts, CSV export, and preset network targets. The network detail page also offers traceroute for troubleshooting.
Docker management
When the Docker capability is enabled, view the container list, live stats, lifecycle events, log streams, networks, and volumes, and perform container actions.
Public status page, themes, and branding
Publish a single public status page at /status—no authentication required—covering a selected server scope, live metrics, 90-day uptime timelines, availability thresholds, incidents, and maintenance windows. Appearance settings support preset and custom OKLCH themes plus white-label title, logo, favicon, and footer text.
VPS cost insights
After you record each server's price and billing cycle, ServerBee surfaces the monthly-equivalent cost, burn rate, per-resource unit costs, and remaining days in the servers list, the dashboard server card, and a per-server insights panel — plus objective cost advisories (idle burn, offline while paying, expired billing, low uptime).
OAuth and mobile support
Sign in via GitHub, Google, or any generic OIDC provider. Mobile sessions, device pairing, and push notifications are supported for the iOS client.
Tested and CI-enforced
The project ships with more than 3,800 automated tests, including integration suites that drive the real Axum router over HTTP and WebSocket through a mock-agent harness. The main CI workflow compares the changed files with the base commit and runs zero-warning Clippy, the Rust test jobs, and the frontend and installer checks only for the areas a change touches. See Testing & Quality.
Tech Stack
| Component | Technology |
|---|---|
| Server | Rust (Axum 0.8, sea-orm, tokio, SQLite) |
| Agent | Rust (sysinfo, tokio-tungstenite) |
| Frontend | React 19, Vite 7, TanStack Router, TanStack Query, Bklit charts, shadcn/ui, Tailwind CSS v4 |
| Protocol | WebSocket (JSON text messages; terminal data base64-encoded) |
| Database | SQLite (WAL mode) |
| Deployment | Single binary / Docker / install script |
Why Rust
- High performance -- the agent uses ~4.3 MB at cold start and ~27 MB in steady state (systemd cgroup); a production server typically runs 140–170 MB with
MALLOC_ARENA_MAX=2set. See Resource Usage. - Reliability -- Rust's memory safety eliminates a whole class of common runtime errors.
- Single-binary deployment -- the server embeds the frontend assets via
rust-embed, so you ship one executable. - Zero dependencies -- no MySQL or Redis to install; SQLite is embedded in the binary.
How It Works
ServerBee follows a hub-and-spoke architecture:
- The Server is the central node: it serves the web UI and REST API, manages all WebSocket connections, and runs background jobs.
- Agents run on each monitored VPS, collecting metrics and reporting back every few seconds.
- The Frontend is a React SPA embedded into the server binary, so there is nothing extra to deploy.
All agent-to-server communication uses WebSocket with JSON-encoded messages. Terminal sessions reuse the same JSON text protocol, with the raw PTY byte stream carried in a base64-encoded data field.