Files
homelab/docs/beszel.md
2026-04-03 10:44:26 +02:00

49 lines
1.8 KiB
Markdown

# Beszel
**Purpose:** Lightweight container and host metrics monitoring (CPU, memory, disk, network).
| Property | Value |
| -------------- | ------------------------------ |
| Status | Running |
| Hub image | `henrygd/beszel:latest` |
| Agent image | `henrygd/beszel-agent:latest` |
| Web UI | <https://beszel.home.jens.pub> |
| Compose file | [`../services/beszel/docker-compose.yml`](../services/beszel/docker-compose.yml) |
---
## Architecture
Beszel uses a **hub + agent** model:
- **Hub** — web UI and data store, proxied via Traefik at `beszel.home.jens.pub`
- **Agent** — runs in host network mode, collects metrics and communicates with the hub via a shared Unix socket (`/beszel_socket/beszel.sock`)
## Setup
On first run, open `beszel.home.jens.pub`, create an admin account, then add the local system:
1. Go to **Systems → Add system**
2. Set host to the Unix socket path: `/beszel_socket/beszel.sock`
3. Copy the generated public key
4. Set `BESZEL_KEY` in Portainer's stack env vars and redeploy
## Environment Variables
| Variable | Description | Source |
| ------------- | ---------------------------------- | ------ |
| `APP_URL` | `https://beszel.home.jens.pub` | hardcoded |
| `LISTEN` | `/beszel_socket/beszel.sock` | hardcoded |
| `BESZEL_KEY` | Hub public key for agent auth | `.env` |
## Volumes
| Volume | Mount |
| ---------------- | ------------------- |
| `beszel_data` | `/beszel_data` — hub database and config |
| `beszel_socket` | `/beszel_socket` — shared Unix socket between hub and agent |
| `/var/run/docker.sock` | `:ro` — Docker socket for container metrics (agent) |
## Networks
- Hub: `proxy` (external)
- Agent: `host`