MCPcopy
hub / github.com/henrygd/beszel

github.com/henrygd/beszel @v0.18.7 sqlite

repository ↗ · DeepWiki ↗ · release v0.18.7 ↗
1,713 symbols 5,893 edges 261 files 711 documented · 42%
README

Beszel

Beszel is a lightweight server monitoring platform that includes Docker statistics, historical data, and alert functions.

It has a friendly web interface, simple configuration, and is ready to use out of the box. It supports automatic backup, multi-user, OAuth authentication, and API access.

agent Docker Image Size hub Docker Image Size MIT license Crowdin

Screenshot of Beszel dashboard and system page, side by side. The dashboard shows metrics from multiple connected systems, while the system page shows detailed metrics for a single system.

Features

  • Lightweight: Smaller and less resource-intensive than leading solutions.
  • Simple: Easy setup with little manual configuration required.
  • Docker stats: Tracks CPU, memory, and network usage history for each container.
  • Alerts: Configurable alerts for CPU, memory, disk, bandwidth, temperature, load average, and status.
  • Multi-user: Users manage their own systems. Admins can share systems across users.
  • OAuth / OIDC: Supports many OAuth2 providers. Password auth can be disabled.
  • Automatic backups: Save to and restore from disk or S3-compatible storage.

Architecture

Beszel consists of two main components: the hub and the agent.

  • Hub: A web application built on PocketBase that provides a dashboard for viewing and managing connected systems.
  • Agent: Runs on each system you want to monitor and communicates system metrics to the hub.

Getting started

The quick start guide and other documentation is available on our website, beszel.dev. You'll be up and running in a few minutes.

Screenshots

Dashboard System page Notification Settings

Supported metrics

  • CPU usage - Host system and Docker / Podman containers.
  • Memory usage - Host system and containers. Includes swap and ZFS ARC.
  • Disk usage - Host system. Supports multiple partitions and devices.
  • Disk I/O - Host system. Supports multiple partitions and devices.
  • Network usage - Host system and containers.
  • Load average - Host system.
  • Temperature - Host system sensors.
  • GPU usage / power draw - Nvidia, AMD, and Intel.
  • Battery - Host system battery charge.
  • Containers - Status and metrics of all running Docker / Podman containers.
  • S.M.A.R.T. - Host system disk health (includes eMMC wear/EOL and Linux mdraid array health via sysfs when available).

Help and discussion

Please search existing issues and discussions before opening a new one. I try my best to respond, but may not always have time to do so.

Bug reports and feature requests

Bug reports and feature requests can be posted on GitHub issues.

Support and general discussion

Support requests and general discussion can be posted on GitHub discussions or the community-run Matrix room: #beszel:matrix.org.

License

Beszel is licensed under the MIT License. See the LICENSE file for more details.

Extension points exported contracts — how you extend this code

RequestHandler (Interface)
RequestHandler defines the interface for handling specific websocket request types [9 implementers]
agent/handlers.go
Transport (Interface)
Transport defines the interface for hub-agent communication. Both WebSocket and SSH transports implement this interface. [2 …
internal/hub/transport/transport.go
HttpClient (Interface)
HttpClient is a base HTTP client interface (usually used for test purposes).
internal/ghupdate/ghupdate.go
Numeric (Interface)
Numeric is a constraint that permits any integer or floating-point type.
agent/deltatracker/deltatracker.go
FingerprintRecord (Interface)
(no doc)
internal/site/src/types.d.ts
Responder (Interface)
Responder sends handler responses back to the hub (over WS or SSH)
agent/handlers.go
ResponseHandler (Interface)
ResponseHandler defines interface for handling agent responses. This is used by handleAgentRequest for legacy response h [1 …
internal/hub/ws/handlers.go
SystemRecord (Interface)
(no doc)
internal/site/src/types.d.ts

Core symbols most depended-on inside this repo

Set
called by 280
internal/hub/expirymap/expirymap.go
cn
called by 178
internal/site/src/lib/utils.ts
Close
called by 83
internal/hub/transport/transport.go
Cleanup
called by 78
internal/tests/hub.go
decimalString
called by 43
internal/site/src/lib/utils.ts
GetEnv
called by 38
agent/utils/utils.go
Set
called by 37
agent/deltatracker/deltatracker.go
twoDecimals
called by 36
internal/records/records.go

Shape

Function 1,009
Method 445
Struct 186
Interface 46
TypeAlias 13
Enum 11
FuncType 3

Languages

Go79%
TypeScript21%

Modules by API surface

agent/docker_test.go48 symbols
agent/docker.go41 symbols
agent/smart_test.go39 symbols
agent/smart.go38 symbols
internal/entities/smart/smart.go37 symbols
agent/gpu.go35 symbols
internal/hub/systems/system.go33 symbols
agent/disk.go32 symbols
agent/gpu_test.go31 symbols
internal/site/src/lib/utils.ts28 symbols
internal/site/src/types.d.ts26 symbols
internal/hub/systems/system_manager.go23 symbols

Dependencies from manifests, versioned

github.com/anmitsu/go-shlexv0.0.0-2020051411343 · 1×
github.com/asaskevich/govalidatorv0.0.0-2023030114320 · 1×
github.com/blang/semverv3.5.1+incompatible · 1×
github.com/coreos/go-systemd/v22v22.7.0 · 1×
github.com/davecgh/go-spewv1.1.2-0.20180830191 · 1×
github.com/disintegration/imagingv1.6.2 · 1×
github.com/domodwyer/mailyak/v3v3.6.2 · 1×
github.com/dustin/go-humanizev1.0.1 · 1×
github.com/ebitengine/puregov0.10.0 · 1×
github.com/eclipse/paho.golangv0.23.0 · 1×
github.com/fxamacker/cbor/v2v2.9.0 · 1×

For agents

$ claude mcp add beszel \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact