dotfiles/nixos/hosts/trailblazer/ups.nix
2024-11-07 16:25:41 -07:00

60 lines
1.2 KiB
Nix

#
# Uninterruptable power supply configuration.
#
# vim: et:ts=2:sw=2:
#
{ pkgs, ... }:
let
upspass = "upsaccess";
in
{
# Create a user to run the UPS daemon.
services.openssh.settings.DenyUsers = [ "ups" ];
users.users.ups = {
isSystemUser = true;
password = upspass;
group = "ups";
shell = "/bin/false";
};
users.groups.ups = { };
power.ups = {
enable = true;
upsd.enable = true;
users.deprekated = {
instcmds = [ "all" ];
actions = [
"set"
"fsd"
];
upsmon = "primary";
passwordFile = "${pkgs.writeText "password" upspass}";
};
# Serve a single UPS.
ups.lix = {
description = "UPS guarding the TMLLC build server and the Lix build cluster.";
driver = "usbhid-ups";
port = "auto";
directives = [
"vendorid = '051D'"
"productid = '0002'"
"product = 'Back-UPS NS 1500M2 FW:957.e5 .D USB FW:e5'"
"serial = '5B2333T55573'"
"vendor = 'American Power Conversion'"
"bus = '009'"
];
};
upsmon = {
enable = true;
monitor.lix = {
powerValue = 1;
user = "deprekated";
};
};
};
}