# Beszel AGENT ONLY — the hub now lives on the VPS. # # The hub (web UI + database) was moved to the VPS on 2026-08-11 and is reachable at # https://beszel.gibbyb.com. This host keeps only the agent, which collects metrics and # serves them to that hub over the WireGuard link (VPS 192.168.2.2 -> here 192.168.1.2:45876). # # KEY below is the VPS hub's public key. If the VPS hub is ever rebuilt its keypair # changes, and this value must be updated to match: # ssh-keygen -y -f ~/Server/Beszel/volumes/hub/id_ed25519 (run on the VPS) # # Previous config, including the local hub service, is in compose.yml.bak-2026-08-11. # # The agent uses network_mode: host — that is the documented setup and is what lets it # read real host network interfaces rather than a container's veth. Docker forbids setting # hostname/domainname together with host networking, so those keys are absent. services: beszel-agent: image: henrygd/beszel-agent-nvidia:latest container_name: beszel-agent network_mode: host # Give the agent read access to NVIDIA's management interface so Beszel can # report GPU utilization, temperature, power draw, and VRAM usage. deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [utility] environment: - TZ=America/New_York - PORT=45876 - KEY=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBWNqxKGRltqXJZg+wlDOtICeLo19ftQ6P3P8+uJg8y # /boot is a separate 974M partition (nvme1n1p1), not part of the LUKS # root the agent finds on its own. It filling up is what broke a 1032 # package dnf transaction on 2026-08-09, so it is worth alerting on. - EXTRA_FILESYSTEMS=/boot labels: com.centurylinklabs.watchtower.enable: "true" volumes: - ./volumes/agent:/var/lib/beszel-agent - /var/run/docker.sock:/var/run/docker.sock:ro - /boot:/boot:ro - /etc/localtime:/etc/localtime:ro tty: true stdin_open: true restart: unless-stopped