diff options
Diffstat (limited to 'os/srv/ups.nix')
| -rw-r--r-- | os/srv/ups.nix | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/os/srv/ups.nix b/os/srv/ups.nix new file mode 100644 index 0000000..8a36007 --- /dev/null +++ b/os/srv/ups.nix @@ -0,0 +1,35 @@ +{ config, lib, ... }: +let + cfg = config.os.srv.ups; +in +{ + options.os.srv.ups.enable = lib.mkEnableOption "enables smooth shutdown on power loss"; + config = lib.mkIf cfg.enable { + power.ups = { + enable = true; + mode = "standalone"; + + ups.main = { + driver = "usbhid-ups"; + port = "auto"; + description = "Main Server UPS"; + }; + users.upsmon = { + # TODO make password + passwordFile = "sops"; + upsmon = "master"; + }; + upsmon.monitor.main = { + system = "main@localhost"; + user = "upsmon"; + # TODO password + passwordFile = "sops"; + type = "master"; + }; + settings = { + MINSUPPLIES = 1; + POWERDOWNFLAG = "/run/killpower"; + }; + }; + }; +} |
