diff --git a/modules/beszel/enable-agent.nix b/modules/beszel/enable-agent.nix index 10da5ca..0770f74 100644 --- a/modules/beszel/enable-agent.nix +++ b/modules/beszel/enable-agent.nix @@ -6,4 +6,13 @@ #DOCKER_HOST = "tcp://docker-socket-proxy:2375"; HUB_URL = "http://${vars.dockerHost}.${vars.homeDomain}:${toString vars.ports.beszelHub}"; }; + + # The upstream module runs beszel-agent under DynamicUser with + # ProtectSystem = "strict" and no StateDirectory, so /var/lib/beszel-agent + # (where the agent persists its hub-pairing fingerprint, per + # https://github.com/henrygd/beszel/discussions/1542) isn't writable -- + # every restart silently fails to save it and regenerates a fresh one in + # memory, permanently desyncing from whatever the hub has on record after + # the very first successful pairing. Give it real persistent storage. + systemd.services.beszel-agent.serviceConfig.StateDirectory = "beszel-agent"; }