feat: updated pool names
This commit is contained in:
parent
ac0f1ce2e6
commit
1eb66d1c31
63 changed files with 81 additions and 78 deletions
|
|
@ -4,7 +4,7 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
config = lib.mkIf (config.impermanence.enable) {
|
config = lib.mkIf (config.impermanence.enable) {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"desktop"
|
"desktop"
|
||||||
"downloads"
|
"downloads"
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ in {
|
||||||
# If impermanence is not enabled for this user but system impermanence is enabled,
|
# If impermanence is not enabled for this user but system impermanence is enabled,
|
||||||
# persist the entire home directory as fallback
|
# persist the entire home directory as fallback
|
||||||
(lib.mkIf (osConfig.storage.impermanence.enable && !cfg.enable && cfg.fallbackPersistence.enable) {
|
(lib.mkIf (osConfig.storage.impermanence.enable && !cfg.enable && cfg.fallbackPersistence.enable) {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = ["."];
|
directories = ["."];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
(lib.mkIf config.impermanence.enable {
|
(lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
files = lib.lists.flatten (
|
files = lib.lists.flatten (
|
||||||
builtins.map (hostKey: [".ssh/${hostKey.path}" ".ssh/${hostKey.path}.pub"]) config.programs.openssh.hostKeys
|
builtins.map (hostKey: [".ssh/${hostKey.path}" ".ssh/${hostKey.path}.pub"]) config.programs.openssh.hostKeys
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
config = lib.mkIf (config.programs.anki.enable && config.impermanence.enable) {
|
config = lib.mkIf (config.programs.anki.enable && config.impermanence.enable) {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
".local/share/Anki2"
|
".local/share/Anki2"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/Bitwarden"
|
"${config.xdg.configHome}/Bitwarden"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/bruno/"
|
"${config.xdg.configHome}/bruno/"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/calibre"
|
"${config.xdg.configHome}/calibre"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.dataHome}/DaVinciResolve"
|
"${config.xdg.dataHome}/DaVinciResolve"
|
||||||
"${config.xdg.configHome}/blackmagic"
|
"${config.xdg.configHome}/blackmagic"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.dataHome}/DBeaverData/"
|
"${config.xdg.dataHome}/DBeaverData/"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/discord/"
|
"${config.xdg.configHome}/discord/"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
config = lib.mkIf (config.programs.firefox.enable && config.impermanence.enable) {
|
config = lib.mkIf (config.programs.firefox.enable && config.impermanence.enable) {
|
||||||
home.persistence."/persist/home" = lib.mkMerge (
|
home.persistence."/persist/replicate/home" = lib.mkMerge (
|
||||||
(
|
(
|
||||||
lib.attrsets.mapAttrsToList
|
lib.attrsets.mapAttrsToList
|
||||||
(profile: _: buildProfilePersistence profile)
|
(profile: _: buildProfilePersistence profile)
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/FreeCAD"
|
"${config.xdg.configHome}/FreeCAD"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/GIMP"
|
"${config.xdg.configHome}/GIMP"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
# configuration
|
# configuration
|
||||||
"${config.xdg.configHome}/JetBrains/"
|
"${config.xdg.configHome}/JetBrains/"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/inkscape"
|
"${config.xdg.configHome}/inkscape"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ in {
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/kdenliverc"
|
"${config.xdg.configHome}/kdenliverc"
|
||||||
"${config.xdg.dataHome}/kdenlive"
|
"${config.xdg.dataHome}/kdenlive"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/kritarc"
|
"${config.xdg.configHome}/kritarc"
|
||||||
"${config.xdg.dataHome}/krita"
|
"${config.xdg.dataHome}/krita"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/libreoffice"
|
"${config.xdg.configHome}/libreoffice"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
".MakeMKV"
|
".MakeMKV"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ in {
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
mkIf config.impermanence.enable {
|
mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/mapillary-uploader"
|
"${config.xdg.configHome}/mapillary-uploader"
|
||||||
"${config.xdg.dataHome}/mapillary-uploader"
|
"${config.xdg.dataHome}/mapillary-uploader"
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
config = lib.mkIf config.programs.obs-studio.enable (lib.mkMerge [
|
config = lib.mkIf config.programs.obs-studio.enable (lib.mkMerge [
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/obs-studio"
|
"${config.xdg.configHome}/obs-studio"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
config = lib.mkIf config.programs.obsidian.enable (lib.mkMerge [
|
config = lib.mkIf config.programs.obsidian.enable (lib.mkMerge [
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/obsidian"
|
"${config.xdg.configHome}/obsidian"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ in {
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/olympus"
|
"${config.xdg.configHome}/olympus"
|
||||||
"${config.xdg.dataHome}/olympus"
|
"${config.xdg.dataHome}/olympus"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/OpenRGB"
|
"${config.xdg.configHome}/OpenRGB"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/MusicBrainz"
|
"${config.xdg.configHome}/MusicBrainz"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/ProStudioMasters"
|
"${config.xdg.configHome}/ProStudioMasters"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/protonvpn"
|
"${config.xdg.configHome}/protonvpn"
|
||||||
"${config.xdg.configHome}/Proton"
|
"${config.xdg.configHome}/Proton"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/qBittorrent"
|
"${config.xdg.configHome}/qBittorrent"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/qFlipper"
|
"${config.xdg.configHome}/qFlipper"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/Signal"
|
"${config.xdg.configHome}/Signal"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
{
|
{
|
||||||
directory = "${config.xdg.dataHome}/Steam";
|
directory = "${config.xdg.dataHome}/Steam";
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.dataHome}/torbrowser"
|
"${config.xdg.dataHome}/torbrowser"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/chromium"
|
"${config.xdg.configHome}/chromium"
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
"${config.xdg.configHome}/via"
|
"${config.xdg.configHome}/via"
|
||||||
"${config.xdg.dataHome}/via"
|
"${config.xdg.dataHome}/via"
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
lib.mkIf config.impermanence.enable {
|
lib.mkIf config.impermanence.enable {
|
||||||
home.persistence."/persist/home" = {
|
home.persistence."/persist/replicate/home" = {
|
||||||
directories = [
|
directories = [
|
||||||
{
|
{
|
||||||
directory = ".vmware";
|
directory = ".vmware";
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.ollama.impermanence.enable {
|
(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" = {
|
directories."/var/lib/private/ollama" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
owner.name = config.services.ollama.user;
|
owner.name = config.services.ollama.user;
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.actual.impermanence.enable {
|
(lib.mkIf config.services.actual.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${dataDirectory}" = {
|
directories."${dataDirectory}" = {
|
||||||
owner.name = "actual";
|
owner.name = "actual";
|
||||||
group.name = "actual";
|
group.name = "actual";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.bazarr.impermanence.enable {
|
(lib.mkIf config.services.bazarr.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${bazarr_data_directory}" = {
|
directories."${bazarr_data_directory}" = {
|
||||||
owner.name = "bazarr";
|
owner.name = "bazarr";
|
||||||
group.name = "bazarr";
|
group.name = "bazarr";
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.crab-hole.impermanence.enable {
|
(lib.mkIf config.services.crab-hole.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${workingDirectory}" = {
|
directories."${workingDirectory}" = {
|
||||||
owner.name = "crab-hole";
|
owner.name = "crab-hole";
|
||||||
group.name = "crab-hole";
|
group.name = "crab-hole";
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.fail2ban.impermanence.enable {
|
(lib.mkIf config.services.fail2ban.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${dataFolder}" = {
|
directories."${dataFolder}" = {
|
||||||
owner.name = "fail2ban";
|
owner.name = "fail2ban";
|
||||||
group.name = "fail2ban";
|
group.name = "fail2ban";
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.flaresolverr.impermanence.enable {
|
(lib.mkIf config.services.flaresolverr.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."/var/lib/flaresolverr" = {
|
directories."/var/lib/flaresolverr" = {
|
||||||
owner.name = "flaresolverr";
|
owner.name = "flaresolverr";
|
||||||
group.name = "flaresolverr";
|
group.name = "flaresolverr";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.forgejo.impermanence.enable {
|
(lib.mkIf config.services.forgejo.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${stateDir}" = {
|
directories."${stateDir}" = {
|
||||||
owner.name = "forgejo";
|
owner.name = "forgejo";
|
||||||
group.name = "forgejo";
|
group.name = "forgejo";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.home-assistant.impermanence.enable {
|
(lib.mkIf config.services.home-assistant.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${configDir}" = {
|
directories."${configDir}" = {
|
||||||
owner.name = "hass";
|
owner.name = "hass";
|
||||||
group.name = "hass";
|
group.name = "hass";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.immich.impermanence.enable {
|
(lib.mkIf config.services.immich.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${mediaLocation}" = {
|
directories."${mediaLocation}" = {
|
||||||
owner.name = "immich";
|
owner.name = "immich";
|
||||||
group.name = "immich";
|
group.name = "immich";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.jackett.impermanence.enable {
|
(lib.mkIf config.services.jackett.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${jackett_data_directory}" = {
|
directories."${jackett_data_directory}" = {
|
||||||
owner.name = "jackett";
|
owner.name = "jackett";
|
||||||
group.name = "jackett";
|
group.name = "jackett";
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ in {
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.jellyfin.impermanence.enable {
|
(lib.mkIf config.services.jellyfin.impermanence.enable {
|
||||||
storage.impermanence.datasets = {
|
storage.impermanence.datasets = {
|
||||||
"persist/system/root" = {
|
"persist/replicate/system/root" = {
|
||||||
directories = {
|
directories = {
|
||||||
"${jellyfin_data_directory}" = {
|
"${jellyfin_data_directory}" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.lidarr.impermanence.enable {
|
(lib.mkIf config.services.lidarr.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${lidarr_data_directory}" = {
|
directories."${lidarr_data_directory}" = {
|
||||||
owner.name = "lidarr";
|
owner.name = "lidarr";
|
||||||
group.name = "lidarr";
|
group.name = "lidarr";
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ in {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
# (lib.mkIf config.host.impermanence.enable {
|
# (lib.mkIf config.host.impermanence.enable {
|
||||||
# environment.persistence."/persist/system/root" = {
|
# environment.persistence."/persist/replicate/system/root" = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# hideMounts = true;
|
# hideMounts = true;
|
||||||
# directories = [
|
# directories = [
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.panoramax.impermanence.enable {
|
(lib.mkIf config.services.panoramax.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."/var/lib/panoramax" = {
|
directories."/var/lib/panoramax" = {
|
||||||
owner.name = "panoramax";
|
owner.name = "panoramax";
|
||||||
group.name = "panoramax";
|
group.name = "panoramax";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.paperless.impermanence.enable {
|
(lib.mkIf config.services.paperless.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${dataDir}" = {
|
directories."${dataDir}" = {
|
||||||
owner.name = "paperless";
|
owner.name = "paperless";
|
||||||
group.name = "paperless";
|
group.name = "paperless";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.postgresql.impermanence.enable {
|
(lib.mkIf config.services.postgresql.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${dataDir}" = {
|
directories."${dataDir}" = {
|
||||||
owner.name = "postgres";
|
owner.name = "postgres";
|
||||||
group.name = "postgres";
|
group.name = "postgres";
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ in {
|
||||||
lib.mkIf config.services.qbittorrent.impermanence.enable
|
lib.mkIf config.services.qbittorrent.impermanence.enable
|
||||||
{
|
{
|
||||||
storage.impermanence.datasets = {
|
storage.impermanence.datasets = {
|
||||||
"persist/system/root" = {
|
"persist/replicate/system/root" = {
|
||||||
directories."${qbittorent_profile_directory}" = {
|
directories."${qbittorent_profile_directory}" = {
|
||||||
owner.name = "qbittorrent";
|
owner.name = "qbittorrent";
|
||||||
group.name = "qbittorrent";
|
group.name = "qbittorrent";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.radarr.impermanence.enable {
|
(lib.mkIf config.services.radarr.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${radarr_data_directory}" = {
|
directories."${radarr_data_directory}" = {
|
||||||
owner.name = "radarr";
|
owner.name = "radarr";
|
||||||
group.name = "radarr";
|
group.name = "radarr";
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.reverseProxy.impermanence.enable {
|
(lib.mkIf config.services.reverseProxy.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${dataDir}" = {
|
directories."${dataDir}" = {
|
||||||
owner.name = "acme";
|
owner.name = "acme";
|
||||||
group.name = "acme";
|
group.name = "acme";
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.sonarr.impermanence.enable {
|
(lib.mkIf config.services.sonarr.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${sonarr_data_directory}" = {
|
directories."${sonarr_data_directory}" = {
|
||||||
owner.name = "sonarr";
|
owner.name = "sonarr";
|
||||||
group.name = "sonarr";
|
group.name = "sonarr";
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@
|
||||||
systemd.services."wyoming-faster-whisper-en".serviceConfig.ProcSubset = lib.mkForce "all";
|
systemd.services."wyoming-faster-whisper-en".serviceConfig.ProcSubset = lib.mkForce "all";
|
||||||
}
|
}
|
||||||
(lib.mkIf config.host.impermanence.enable {
|
(lib.mkIf config.host.impermanence.enable {
|
||||||
environment.persistence."/persist/system/root" = {
|
environment.persistence."/persist/replicate/system/root" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hideMounts = true;
|
hideMounts = true;
|
||||||
directories = [
|
directories = [
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.openssh.impermanence.enable {
|
(lib.mkIf config.services.openssh.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
files = builtins.listToAttrs (
|
files = builtins.listToAttrs (
|
||||||
lib.lists.flatten (
|
lib.lists.flatten (
|
||||||
builtins.map (hostKey: [
|
builtins.map (hostKey: [
|
||||||
|
|
|
||||||
|
|
@ -72,8 +72,8 @@ in {
|
||||||
"var-lib-private-permissions" = {
|
"var-lib-private-permissions" = {
|
||||||
deps = ["specialfs"];
|
deps = ["specialfs"];
|
||||||
text = ''
|
text = ''
|
||||||
mkdir -p /persist/system/root/var/lib/private
|
mkdir -p /persist/replicate/system/root/var/lib/private
|
||||||
chmod 0700 /persist/system/root/var/lib/private
|
chmod 0700 /persist/replicate/system/root/var/lib/private
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
lib.mkIf config.storage.zfs.enable (lib.mkMerge [
|
lib.mkIf config.storage.zfs.enable (lib.mkMerge [
|
||||||
{
|
{
|
||||||
storage.zfs.datasets = {
|
storage.zfs.datasets = {
|
||||||
"persist/system/nix" = {
|
"persist/local/nix" = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
mount = {
|
mount = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -22,15 +22,12 @@
|
||||||
atime = "off";
|
atime = "off";
|
||||||
relatime = "off";
|
relatime = "off";
|
||||||
};
|
};
|
||||||
"persist/system/var/log" = {
|
"persist/replicate/system/var/log" = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
mount = {
|
mount = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mountPoint = "/var/log";
|
mountPoint = "/var/log";
|
||||||
};
|
};
|
||||||
snapshot = {
|
|
||||||
autoSnapshot = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -53,11 +50,11 @@
|
||||||
})
|
})
|
||||||
(lib.mkIf config.storage.impermanence.enable {
|
(lib.mkIf config.storage.impermanence.enable {
|
||||||
boot.initrd.postResumeCommands = lib.mkAfter ''
|
boot.initrd.postResumeCommands = lib.mkAfter ''
|
||||||
zfs rollback -r rpool/local/system/root@blank
|
zfs rollback -r rpool/ephemeral/system/root@blank
|
||||||
'';
|
'';
|
||||||
|
|
||||||
storage.zfs.datasets = {
|
storage.zfs.datasets = {
|
||||||
"local/system/root" = {
|
"ephemeral/system/root" = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
mount = {
|
mount = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -70,10 +67,13 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
storage.impermanence.datasets = {
|
storage.impermanence.datasets = {
|
||||||
"persist/system/root" = {
|
"persist/replicate/system/root" = {
|
||||||
mount = {
|
mount = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mountPoint = "/persist/system/root";
|
mountPoint = "/persist/replicate/system/root";
|
||||||
|
};
|
||||||
|
snapshot = {
|
||||||
|
autoSnapshot = true;
|
||||||
};
|
};
|
||||||
directories = {
|
directories = {
|
||||||
"/var/lib/nixos".enable = true;
|
"/var/lib/nixos".enable = true;
|
||||||
|
|
@ -83,10 +83,13 @@
|
||||||
"/etc/machine-id".enable = true;
|
"/etc/machine-id".enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"persist/home" = {
|
"persist/replicate/home" = {
|
||||||
mount = {
|
mount = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mountPoint = "/persist/home";
|
mountPoint = "/persist/replicate/home";
|
||||||
|
};
|
||||||
|
snapshot = {
|
||||||
|
autoSnapshot = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,7 @@ in {
|
||||||
};
|
};
|
||||||
cache = lib.mkOption {
|
cache = lib.mkOption {
|
||||||
type = lib.types.listOf deviceType;
|
type = lib.types.listOf deviceType;
|
||||||
default = {};
|
default = [];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -264,7 +264,7 @@ in {
|
||||||
members = builtins.map (device: hashDisk device.device) vdev;
|
members = builtins.map (device: hashDisk device.device) vdev;
|
||||||
})
|
})
|
||||||
config.storage.zfs.pool.vdevs;
|
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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ in {
|
||||||
})
|
})
|
||||||
config.services.syncthing.settings.folders;
|
config.services.syncthing.settings.folders;
|
||||||
|
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories = {
|
directories = {
|
||||||
"${mountDir}" = {
|
"${mountDir}" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ in {
|
||||||
# TODO: placeholder to configure a unique dataset for this service
|
# TODO: placeholder to configure a unique dataset for this service
|
||||||
})
|
})
|
||||||
(lib.mkIf config.services.tailscale.impermanence.enable {
|
(lib.mkIf config.services.tailscale.impermanence.enable {
|
||||||
storage.impermanence.datasets."persist/system/root" = {
|
storage.impermanence.datasets."persist/replicate/system/root" = {
|
||||||
directories."${tailscale_data_directory}" = {
|
directories."${tailscale_data_directory}" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
owner.name = "root";
|
owner.name = "root";
|
||||||
|
|
|
||||||
|
|
@ -405,7 +405,7 @@ in {
|
||||||
# sops age key needs to be available to pre persist for user generation
|
# sops age key needs to be available to pre persist for user generation
|
||||||
storage.zfs.datasets = lib.mkMerge [
|
storage.zfs.datasets = lib.mkMerge [
|
||||||
{
|
{
|
||||||
"local/system/sops" = {
|
"persist/local/system/sops" = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
mount = {
|
mount = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -417,7 +417,7 @@ in {
|
||||||
}
|
}
|
||||||
(lib.mkMerge (
|
(lib.mkMerge (
|
||||||
builtins.map (user: {
|
builtins.map (user: {
|
||||||
"local/home/${user.name}" = {
|
"ephemeral/home/${user.name}" = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
mount = {
|
mount = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -432,7 +432,7 @@ in {
|
||||||
|
|
||||||
# Post resume commands to rollback user home datasets to blank snapshots
|
# Post resume commands to rollback user home datasets to blank snapshots
|
||||||
boot.initrd.postResumeCommands = lib.mkAfter (
|
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)
|
normalUsers)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -440,7 +440,7 @@ in {
|
||||||
systemd = {
|
systemd = {
|
||||||
tmpfiles.rules =
|
tmpfiles.rules =
|
||||||
builtins.map (
|
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;
|
normalUsers;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue