feat: add persistent ids to all users/groups

This commit is contained in:
Leon Schwarzäugl 2026-01-12 22:15:57 +01:00
parent 37a8e17cc9
commit 7f65f74fef
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
62 changed files with 533 additions and 173 deletions

View file

@ -1,4 +1,4 @@
{ self, inputs, lib, minimal, ... }:
{ self, config, inputs, lib, minimal, confLib, ... }:
{
imports = [
@ -39,7 +39,7 @@
writeGlobalNetworks = false;
networkKernelModules = [ "igb" ];
rootDisk = "/dev/disk/by-id/ata-TS120GMTS420S_J024880123";
withMicroVMs = false;
withMicroVMs = true;
localVLANs = [ "services" "home" ]; # devices is only provided on interface for bmc
initrdVLAN = "home";
server = {
@ -83,7 +83,7 @@
acme = false; # cert handled by proxy
nfs = true;
kavita = true;
# kavita = true;
restic = true;
jellyfin = true;
navidrome = true;
@ -109,29 +109,29 @@
opkssh = true;
};
# guests = lib.mkIf (!minimal && config.swarselsystems.withMicroVMs) (
# { }
# // confLib.mkMicrovm "kavita"
# // confLib.mkMicrovm "jellyfin"
# // confLib.mkMicrovm "audio"
# // confLib.mkMicrovm "postgresql"
# // confLib.mkMicrovm "matrix"
# // confLib.mkMicrovm "nextcloud"
# // confLib.mkMicrovm "immich"
# // confLib.mkMicrovm "paperless"
# // confLib.mkMicrovm "transmission"
# // confLib.mkMicrovm "storage"
# // confLib.mkMicrovm "monitoring"
# // confLib.mkMicrovm "freshrss"
# // confLib.mkMicrovm "kanidm"
# // confLib.mkMicrovm "firefly"
# // confLib.mkMicrovm "koillection"
# // confLib.mkMicrovm "radicale"
# // confLib.mkMicrovm "atuin"
# // confLib.mkMicrovm "forgejo"
# // confLib.mkMicrovm "ankisync"
# // confLib.mkMicrovm "homebox"
# );
guests = lib.mkIf (!minimal && config.swarselsystems.withMicroVMs) (
{ }
// confLib.mkMicrovm "kavita" { withZfs = true; }
// confLib.mkMicrovm "jellyfin" { withZfs = true; }
// confLib.mkMicrovm "audio" { withZfs = true; }
// confLib.mkMicrovm "postgresql" { withZfs = true; }
// confLib.mkMicrovm "matrix" { withZfs = true; }
// confLib.mkMicrovm "nextcloud" { withZfs = true; }
// confLib.mkMicrovm "immich" { withZfs = true; }
// confLib.mkMicrovm "paperless" { withZfs = true; }
// confLib.mkMicrovm "transmission" { withZfs = true; }
// confLib.mkMicrovm "storage" { withZfs = true; }
// confLib.mkMicrovm "monitoring" { withZfs = true; }
// confLib.mkMicrovm "freshrss" { withZfs = true; }
// confLib.mkMicrovm "kanidm" { withZfs = true; }
// confLib.mkMicrovm "firefly" { withZfs = true; }
// confLib.mkMicrovm "koillection" { withZfs = true; }
// confLib.mkMicrovm "radicale" { withZfs = true; }
// confLib.mkMicrovm "atuin" { withZfs = true; }
// confLib.mkMicrovm "forgejo" { withZfs = true; }
// confLib.mkMicrovm "ankisync" { withZfs = true; }
// confLib.mkMicrovm "homebox" { withZfs = true; }
);
networking.nftables.firewall.zones.untrusted.interfaces = [ "lan" "bmc" ];

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 1;
vcpu = 1;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
ankisync = true;
# ankisync = true;
};
}

View file

@ -36,7 +36,7 @@
};
swarselmodules.server = {
atuin = true;
# atuin = true;
};
}

View file

@ -36,9 +36,9 @@
};
swarselmodules.server = {
navidrome = true;
spotifyd = true;
mpd = true;
# navidrome = true;
# spotifyd = true;
# mpd = true;
};
}

View file

@ -36,8 +36,9 @@
};
swarselmodules.server = {
firefly-iii = true;
nginx = true;
# firefly-iii = true;
# nginx = true;
# acme = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 1;
vcpu = 1;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
forgejo = true;
# forgejo = true;
};
}

View file

@ -36,8 +36,9 @@
};
swarselmodules.server = {
freshrss = true;
nginx = true;
# freshrss = true;
# nginx = true;
# acme = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 1;
vcpu = 1;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
homebox = true;
# homebox = true;
};
}

View file

@ -36,7 +36,7 @@
};
swarselmodules.server = {
immich = true;
# immich = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 3;
vcpu = 1;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
jellyfin = true;
# jellyfin = true;
};
}

View file

@ -36,7 +36,7 @@
};
swarselmodules.server = {
kanidm = true;
# kanidm = true;
};
}

View file

@ -29,6 +29,7 @@
microvm = {
mem = 1024 * 1;
vcpu = 1;
};
swarselprofiles = {
@ -36,7 +37,7 @@
};
swarselmodules.server = {
kavita = true;
# kavita = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 1;
vcpu = 1;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
koillection = true;
# koillection = true;
};
}

View file

@ -36,7 +36,7 @@
};
swarselmodules.server = {
matrix = true;
# matrix = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 3;
vcpu = 2;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
grafana = true;
# grafana = true;
};
}

View file

@ -36,8 +36,9 @@
};
swarselmodules.server = {
nextcloud = true;
nginx = true;
# nextcloud = true;
# nginx = true;
# acme = true;
};
}

View file

@ -36,7 +36,7 @@
};
swarselmodules.server = {
paperless = true;
# paperless = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 1;
vcpu = 1;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
postgresql = true;
# postgresql = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 1;
vcpu = 1;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
radicale = true;
# radicale = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 4;
vcpu = 2;
};
@ -36,8 +36,8 @@
};
swarselmodules.server = {
nfs = true;
syncthing = true;
# nfs = true;
# syncthing = true;
};
}

View file

@ -27,7 +27,7 @@
} // lib.optionalAttrs (!minimal) {
microvm = {
mem = 1024 * 2;
mem = 1024 * 4;
vcpu = 2;
};
@ -36,7 +36,7 @@
};
swarselmodules.server = {
transmission = true;
# transmission = true;
};
}