feat: updated pool names

This commit is contained in:
Leyla Becker 2025-11-12 19:27:12 -06:00
parent ac0f1ce2e6
commit 1eb66d1c31
63 changed files with 81 additions and 78 deletions

View file

@ -20,7 +20,7 @@
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.ollama.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."/var/lib/private/ollama" = {
enable = true;
owner.name = config.services.ollama.user;

View file

@ -29,7 +29,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.actual.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${dataDirectory}" = {
owner.name = "actual";
group.name = "actual";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.bazarr.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${bazarr_data_directory}" = {
owner.name = "bazarr";
group.name = "bazarr";

View file

@ -25,7 +25,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.crab-hole.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${workingDirectory}" = {
owner.name = "crab-hole";
group.name = "crab-hole";

View file

@ -25,7 +25,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.fail2ban.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${dataFolder}" = {
owner.name = "fail2ban";
group.name = "fail2ban";

View file

@ -14,7 +14,7 @@
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.flaresolverr.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."/var/lib/flaresolverr" = {
owner.name = "flaresolverr";
group.name = "flaresolverr";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.forgejo.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${stateDir}" = {
owner.name = "forgejo";
group.name = "forgejo";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.home-assistant.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${configDir}" = {
owner.name = "hass";
group.name = "hass";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.immich.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${mediaLocation}" = {
owner.name = "immich";
group.name = "immich";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.jackett.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${jackett_data_directory}" = {
owner.name = "jackett";
group.name = "jackett";

View file

@ -30,7 +30,7 @@ in {
})
(lib.mkIf config.services.jellyfin.impermanence.enable {
storage.impermanence.datasets = {
"persist/system/root" = {
"persist/replicate/system/root" = {
directories = {
"${jellyfin_data_directory}" = {
enable = true;

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.lidarr.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${lidarr_data_directory}" = {
owner.name = "lidarr";
group.name = "lidarr";

View file

@ -74,7 +74,7 @@ in {
);
}
# (lib.mkIf config.host.impermanence.enable {
# environment.persistence."/persist/system/root" = {
# environment.persistence."/persist/replicate/system/root" = {
# enable = true;
# hideMounts = true;
# directories = [

View file

@ -21,7 +21,7 @@
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.panoramax.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."/var/lib/panoramax" = {
owner.name = "panoramax";
group.name = "panoramax";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.paperless.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${dataDir}" = {
owner.name = "paperless";
group.name = "paperless";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.postgresql.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${dataDir}" = {
owner.name = "postgres";
group.name = "postgres";

View file

@ -27,7 +27,7 @@ in {
lib.mkIf config.services.qbittorrent.impermanence.enable
{
storage.impermanence.datasets = {
"persist/system/root" = {
"persist/replicate/system/root" = {
directories."${qbittorent_profile_directory}" = {
owner.name = "qbittorrent";
group.name = "qbittorrent";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.radarr.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${radarr_data_directory}" = {
owner.name = "radarr";
group.name = "radarr";

View file

@ -16,7 +16,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.reverseProxy.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${dataDir}" = {
owner.name = "acme";
group.name = "acme";

View file

@ -24,7 +24,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.sonarr.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${sonarr_data_directory}" = {
owner.name = "sonarr";
group.name = "sonarr";

View file

@ -48,7 +48,7 @@
systemd.services."wyoming-faster-whisper-en".serviceConfig.ProcSubset = lib.mkForce "all";
}
(lib.mkIf config.host.impermanence.enable {
environment.persistence."/persist/system/root" = {
environment.persistence."/persist/replicate/system/root" = {
enable = true;
hideMounts = true;
directories = [

View file

@ -32,7 +32,7 @@
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.openssh.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
files = builtins.listToAttrs (
lib.lists.flatten (
builtins.map (hostKey: [

View file

@ -72,8 +72,8 @@ in {
"var-lib-private-permissions" = {
deps = ["specialfs"];
text = ''
mkdir -p /persist/system/root/var/lib/private
chmod 0700 /persist/system/root/var/lib/private
mkdir -p /persist/replicate/system/root/var/lib/private
chmod 0700 /persist/replicate/system/root/var/lib/private
'';
};
};

View file

@ -10,7 +10,7 @@
lib.mkIf config.storage.zfs.enable (lib.mkMerge [
{
storage.zfs.datasets = {
"persist/system/nix" = {
"persist/local/nix" = {
type = "zfs_fs";
mount = {
enable = true;
@ -22,15 +22,12 @@
atime = "off";
relatime = "off";
};
"persist/system/var/log" = {
"persist/replicate/system/var/log" = {
type = "zfs_fs";
mount = {
enable = true;
mountPoint = "/var/log";
};
snapshot = {
autoSnapshot = false;
};
};
};
}
@ -53,11 +50,11 @@
})
(lib.mkIf config.storage.impermanence.enable {
boot.initrd.postResumeCommands = lib.mkAfter ''
zfs rollback -r rpool/local/system/root@blank
zfs rollback -r rpool/ephemeral/system/root@blank
'';
storage.zfs.datasets = {
"local/system/root" = {
"ephemeral/system/root" = {
type = "zfs_fs";
mount = {
enable = true;
@ -70,10 +67,13 @@
};
storage.impermanence.datasets = {
"persist/system/root" = {
"persist/replicate/system/root" = {
mount = {
enable = true;
mountPoint = "/persist/system/root";
mountPoint = "/persist/replicate/system/root";
};
snapshot = {
autoSnapshot = true;
};
directories = {
"/var/lib/nixos".enable = true;
@ -83,10 +83,13 @@
"/etc/machine-id".enable = true;
};
};
"persist/home" = {
"persist/replicate/home" = {
mount = {
enable = true;
mountPoint = "/persist/home";
mountPoint = "/persist/replicate/home";
};
snapshot = {
autoSnapshot = true;
};
};
};

View file

@ -170,7 +170,7 @@ in {
};
cache = lib.mkOption {
type = lib.types.listOf deviceType;
default = {};
default = [];
};
};
@ -264,7 +264,7 @@ in {
members = builtins.map (device: hashDisk device.device) vdev;
})
config.storage.zfs.pool.vdevs;
cache = builtins.map (device: hashDisk device.device) (builtins.attrValues config.storage.zfs.pool.cache);
cache = builtins.map (device: hashDisk device.device) config.storage.zfs.pool.cache;
};
};

View file

@ -36,7 +36,7 @@ in {
})
config.services.syncthing.settings.folders;
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories = {
"${mountDir}" = {
enable = true;

View file

@ -22,7 +22,7 @@ in {
# TODO: placeholder to configure a unique dataset for this service
})
(lib.mkIf config.services.tailscale.impermanence.enable {
storage.impermanence.datasets."persist/system/root" = {
storage.impermanence.datasets."persist/replicate/system/root" = {
directories."${tailscale_data_directory}" = {
enable = true;
owner.name = "root";

View file

@ -405,7 +405,7 @@ in {
# sops age key needs to be available to pre persist for user generation
storage.zfs.datasets = lib.mkMerge [
{
"local/system/sops" = {
"persist/local/system/sops" = {
type = "zfs_fs";
mount = {
enable = true;
@ -417,7 +417,7 @@ in {
}
(lib.mkMerge (
builtins.map (user: {
"local/home/${user.name}" = {
"ephemeral/home/${user.name}" = {
type = "zfs_fs";
mount = {
enable = true;
@ -432,7 +432,7 @@ in {
# Post resume commands to rollback user home datasets to blank snapshots
boot.initrd.postResumeCommands = lib.mkAfter (
lib.strings.concatLines (builtins.map (user: "zfs rollback -r rpool/local/home/${user.name}@blank")
lib.strings.concatLines (builtins.map (user: "zfs rollback -r rpool/ephemeral/home/${user.name}@blank")
normalUsers)
);
@ -440,7 +440,7 @@ in {
systemd = {
tmpfiles.rules =
builtins.map (
user: "d /persist/home/${user.name} 700 ${user.name} ${user.name} -"
user: "d /persist/replicate/home/${user.name} 700 ${user.name} ${user.name} -"
)
normalUsers;
};