diff --git a/modules/system/impermanence.nix b/modules/system/impermanence.nix index 9acd420..de7eae4 100644 --- a/modules/system/impermanence.nix +++ b/modules/system/impermanence.nix @@ -6,13 +6,17 @@ }: let cfg = config.custom.impermanence; - - inherit (config.custom) services; in { imports = [ inputs.impermanence.nixosModules.impermanence ]; - options.custom.impermanence.enable = lib.mkEnableOption ""; + options.custom = { + impermanence.enable = lib.mkEnableOption ""; + persist.directories = lib.mkOption { + type = lib.types.listOf lib.types.path; + default = [ ]; + }; + }; config = lib.mkIf cfg.enable { fileSystems."/persist".neededForBoot = true; @@ -25,10 +29,7 @@ in "/var/lib/nixos" "/var/lib/systemd" "/var/log" - - (lib.optionalString services.tailscale.enable "/var/lib/tailscale") ]; - files = [ "/etc/machine-id" "/etc/ssh/ssh_host_ed25519_key" diff --git a/modules/system/services/caddy.nix b/modules/system/services/caddy.nix index c0231a3..c77c034 100644 --- a/modules/system/services/caddy.nix +++ b/modules/system/services/caddy.nix @@ -96,6 +96,8 @@ in ) ); }; + + custom.persist.directories = [ "/var/lib/caddy" ]; } (lib.mkIf tailscaleHostsExist { diff --git a/modules/system/services/gatus.nix b/modules/system/services/gatus.nix index 93cba0c..8a3c633 100644 --- a/modules/system/services/gatus.nix +++ b/modules/system/services/gatus.nix @@ -165,5 +165,7 @@ in cfg.endpoints |> lib.attrValues |> lib.map (entry: mkEndpoint entry); }; }; + + custom.persist.directories = [ "/var/lib/private/gatus" ]; }; } diff --git a/modules/system/services/tailscale.nix b/modules/system/services/tailscale.nix index 32f9361..207dc29 100644 --- a/modules/system/services/tailscale.nix +++ b/modules/system/services/tailscale.nix @@ -41,5 +41,7 @@ in }; systemd.services.tailscaled-set.after = [ "tailscaled-autoconnect.service" ]; + + custom.persist.directories = [ "/var/lib/tailscale" ]; }; }