dotfiles/modules/nixos/services/beszel.nix
2025-09-18 18:03:56 +02:00

45 lines
932 B
Nix

{
pkgs,
config,
lib,
...
}:
with lib; let
cfg = config.services.beszel-agent;
in {
options.services = {
beszel-agent = {
enable = mkEnableOption "Enable the Beszel Agent";
key = mkOption {
type = types.str;
description = "The public key to bind the agent to";
};
port = mkOption {
type = types.int;
description = "The port to bind the agent to";
default = 45876;
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [
pkgs.beszel
pkgs.rocmPackages.rocm-smi # Interface with AMD GPUs
];
systemd.services.beszel-agent = {
enable = true;
description = "Beszel Agent (remote monitoring)";
environment = {
KEY = cfg.key;
LISTEN = builtins.toString cfg.port;
};
serviceConfig = {
ExecStart = "${pkgs.beszel}/bin/beszel-agent";
};
};
};
}