aboutsummaryrefslogtreecommitdiffstats
path: root/modules/vhack/co/constants
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-07-30 14:05:39 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-07-30 14:05:39 +0200
commitc153a351659e4596acfc31f00bf594343cbfcd68 (patch)
treea9ed83de07711d6424fbea09aad28891bae5bfe4 /modules/vhack/co/constants
parenthosts/server3: Setup prometheus server in agent mode (diff)
downloadnixos-server-c153a351659e4596acfc31f00bf594343cbfcd68.zip
modules: Use namespaces
That might make it easier in the future to merge different server configs together (and thusly facilitate code-reuse.).
Diffstat (limited to 'modules/vhack/co/constants')
-rw-r--r--modules/vhack/co/constants/module.nix114
1 files changed, 114 insertions, 0 deletions
diff --git a/modules/vhack/co/constants/module.nix b/modules/vhack/co/constants/module.nix
new file mode 100644
index 0000000..9127488
--- /dev/null
+++ b/modules/vhack/co/constants/module.nix
@@ -0,0 +1,114 @@
+# 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;
+
+ # 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
+ anubis
+ dhcpcd
+ etebase-server
+ knot-resolver
+ mastodon
+ matrix-synapse
+ mautrix-whatsapp
+ nextcloud
+ nix-sync
+ nscd
+ opendkim
+ peertube
+ postfix-tlspol
+ redis-mastodon
+ redis-nextcloud
+ redis-peertube
+ redis-rspamd
+ redis-stalwart-mail
+ rspamd
+ sshd
+ stalwart-mail
+ systemd-oom
+ sharkey
+ redis-sharkey
+ grocy
+ systemd-coredump # matches systemd-coredump user
+ resolvconf # This group is not matched to an user?
+ stalwart-mail-certificates # This group is used to connect nginx and stalwart-mail
+ rocie
+ fluent-bit
+ loki
+ grafana
+ node-exporter
+ smartctl-exporter-access
+ ;
+
+ # The gid should match the uid. Thus should not be >= 400;
+ };
+ };
+}