# This file is inspired by the `nixos/modules/misc/ids.nix` # file in nixpkgs. { lib, config, ... }: { options.vhack.constants = { ids.uids = lib.mkOption { internal = true; description = '' The user IDs used in the vhack.eu nixos config. ''; type = lib.types.attrsOf (lib.types.ints.between 0 400); }; ids.gids = lib.mkOption { internal = true; description = '' The group IDs used in the vhack.eu nixos config. ''; type = lib.types.attrsOf (lib.types.ints.between 0 400); }; }; config.vhack.constants = { ids.uids = { # Keep this sorted with `!sort --numeric-sort --key=2 --field-separator="="` systemd-coredump = 151; # GROUP opendkim = 221; mautrix-whatsapp = 222; etebase-server = 223; matrix-synapse = 224; rspamd = 225; knot-resolver = 226; peertube = 231; redis-mastodon = 232; redis-peertube = 233; redis-rspamd = 234; redis-stalwart-mail = 235; mastodon = 236; stalwart-mail = 238; acme = 328; dhcpcd = 329; nscd = 330; sshd = 331; systemd-oom = 332; resolvconf = 333; # GROUP nix-sync = 334; nextcloud = 335; redis-nextcloud = 336; taskchampion = 337; stalwart-mail-certificates = 338; # GROUP sharkey = 339; redis-sharkey = 340; grocy = 341; anubis = 342; postfix-tlspol = 343; rocie = 344; fluent-bit = 345; loki = 346; grafana = 347; node-exporter = 348; smartctl-exporter-access = 349; fail2ban = 350; wpa_supplicant = 351; mandb = 352; rtkit = 353; nm-iodine = 354; fwupd-refresh = 355; avahi = 356; adbusers = 357; lpadmin = 358; msr = 359; polkituser = 360; # As per the NixOS file, the uids should not be greater or equal to 400; }; ids.gids = let inherit (config.vhack.constants.ids) uids; in { # Please add your groups to the users and inherit them here. # This avoids having an user/group id mismatch. inherit (uids) acme adbusers anubis avahi dhcpcd etebase-server fail2ban fluent-bit fwupd-refresh grafana grocy knot-resolver loki lpadmin mandb mastodon matrix-synapse mautrix-whatsapp msr nextcloud nix-sync node-exporter nscd opendkim peertube polkituser postfix-tlspol redis-mastodon redis-nextcloud redis-peertube redis-rspamd redis-sharkey redis-stalwart-mail resolvconf # This group is not matched to an user? rocie rspamd rtkit sharkey smartctl-exporter-access sshd stalwart-mail stalwart-mail-certificates # This group is used to connect nginx and stalwart-mail systemd-coredump # matches systemd-coredump user systemd-oom wpa_supplicant ; # The gid should match the uid. Thus should not be >= 400; }; }; }