# Introduction

> ServerBee is a lightweight, modern VPS monitoring system built with Rust and React.

URL: https://docs.serverbee.app/en/docs

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 [#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 [#key-features]

### Real-time monitoring and custom dashboards [#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 [#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 [#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 [#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 [#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 [#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 [#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 [#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 [#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](/en/docs/testing).

## Tech Stack [#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 [#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=2` set. See [Resource Usage](/en/docs/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 [#how-it-works]

ServerBee follows a hub-and-spoke architecture:

1. The **Server** is the central node: it serves the web UI and REST API, manages all WebSocket connections, and runs background jobs.
2. **Agents** run on each monitored VPS, collecting metrics and reporting back every few seconds.
3. 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.

## Next Steps [#next-steps]

<Cards>
  <Card title="Quick Install" href="/en/docs/quick-start" />

  <Card title="Server Setup" href="/en/docs/server" />

  <Card title="Agent Setup" href="/en/docs/agent" />

  <Card title="Monitoring" href="/en/docs/monitoring" />

  <Card title="Dashboards & Widgets" href="/en/docs/dashboards" />

  <Card title="Alerts" href="/en/docs/alerts" />

  <Card title="Service Monitors" href="/en/docs/service-monitors" />

  <Card title="Web Terminal" href="/en/docs/terminal" />

  <Card title="File Manager" href="/en/docs/file-manager" />

  <Card title="Ping Monitoring" href="/en/docs/ping" />

  <Card title="Capabilities" href="/en/docs/capabilities" />

  <Card title="Status Page" href="/en/docs/status-page" />

  <Card title="Custom Widgets" href="/en/docs/custom-widgets" />

  <Card title="iOS Mobile" href="/en/docs/mobile" />

  <Card title="Security" href="/en/docs/security" />

  <Card title="Admin Guide" href="/en/docs/admin" />

  <Card title="API Reference" href="/en/docs/api-reference" />

  <Card title="Storage & Sizing" href="/en/docs/storage-sizing" />

  <Card title="Architecture" href="/en/docs/architecture" />

  <Card title="Testing & Quality" href="/en/docs/testing" />

  <Card title="Deployment" href="/en/docs/deployment" />

  <Card title="Configuration" href="/en/docs/configuration" />
</Cards>
