ooknet/modules/nixos/server/services/ookflix/users.nix

38 lines
1,010 B
Nix

{
lib,
config,
...
}: let
inherit (lib) mkIf mkMerge;
inherit (builtins) mapAttrs;
inherit (config.ooknet.server) ookflix;
inherit (config.ooknet.server.ookflix) services storage users groups;
mkServiceUser = name: user: {
isSystemUser = true;
group = groups.${name}.name;
uid = users.${name}.id;
home = storage.state.${name};
};
generateUsers = mapAttrs mkServiceUser users;
in {
config = mkIf ookflix.enable {
users = {
users = mkMerge [
# media service users
(mkIf services.jellyfin.enable {
${users.jellyfin.name} = mkServiceUser users.jellyfin.name groups.media.name;
})
(mkIf services.plex.enable {
${users.plex.name} = mkServiceUser users.plex.name groups.media.name;
})
(mkIf (services.jellyfin.enable || services.jellyseer.enable) {
${users.jellyseer.name} = mkServiceUser users.jellyseer.name groups.media.name;
})
];
groups = {
};
};
};
}