servers/common/users/admin.nix
2026-02-24 00:00:35 -08:00

42 lines
850 B
Nix

{
config,
lib,
foelib,
...
}:
let
inherit (lib)
mkIf
mkOption
mkEnableOption
optionals
types
;
cfg = config.foehammer.users.admin;
in
{
options.foehammer.users.admin = {
enable = mkEnableOption "Enable a wheel admin user.";
hashedPasswordFile = mkOption {
type = with types; nullOr str;
default = null;
};
};
config = mkIf cfg.enable {
users.users.admin = {
createHome = true;
description = "SSH Admin User.";
group = "admin";
extraGroups = [ "wheel" ] ++ optionals config.virtualisation.docker.enable [ "docker" ];
isNormalUser = true;
uid = 9999;
openssh.authorizedKeys.keys = foelib.getSSHKeys "foehammer";
hashedPasswordFile = cfg.hashedPasswordFile;
};
users.groups.admin.gid = config.users.users.admin.uid;
};
}