45 lines
932 B
Nix
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";
|
|
};
|
|
};
|
|
};
|
|
}
|