Beszel

Beszel — lekki monitoring systemowy. CPU (per core), RAM, swap, dysk, sieć, temperatura + metryki Docker per kontener. Historia w SQLite, alerty na progi.

Beszel_1 — widok głównyBeszel_2 — widok głównyBeszel_3 — widok główny

Konfiguracja

graph LR
    U[Przeglądarka] --> H[Beszel Hub<br/>mini-1.lan:11292]
    H -->|SSH Ed25519<br/>port 45876| A1[Beszel Agent<br/>nas-1.lan]
    H -->|SSH Ed25519<br/>port 45876| A2[Beszel Agent<br/>mini-2.lan]
    H -->|SSH Ed25519<br/>port 45876| A3[Beszel Agent<br/>server-1.lan]
    A1 -->|socket| D1[Docker Engine]
    A2 -->|socket| D2[Docker Engine]
    A3 -->|socket| D3[Docker Engine]

Hub — mini-1.lan

services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    restart: unless-stopped
    ports: [11292:8090]
    extra_hosts:
      - host.docker.internal:host-gateway
    volumes:
      - ./data:/beszel_data
    environment:
      TZ: Europe/Warsaw
    labels:
      homepage.group: Tools
      homepage.name: Beszel
      homepage.icon: beszel.png
      homepage.href: http://mini-1.lan:11292

extra_hosts: host.docker.internal:host-gateway — potrzebne żeby hub łączył się z agentem na tym samym hoście. Po starcie hub generuje klucz SSH Ed25519 — podajesz go jako KEY w agentach.

Agent

network_mode: host — bez tego metryki sieci pokazują ruch kontenera, nie hosta.

# nas-1.lan/agents/docker-compose.yml
services:
  agent_beszel:
    image: henrygd/beszel-agent:latest
    container_name: agent_beszel
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      LISTEN: 45876
      KEY: 'ssh-ed25519 AAAAC3NzaC1...'
      TOKEN: 34333242-2522-4c59-8604-1b3e89d72a11
      HUB_URL: http://mini-1.lan:11292