summary refs log tree commit diff stats
path: root/system/file_system_layouts
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-07-03 15:04:48 +0200
committerSoispha <soispha@vhack.eu>2023-07-04 16:31:26 +0200
commit1c4672d602de2a6022f759996025cb7df0237862 (patch)
tree4a7c996693d167e1885db7046227c6d3acc7ad6f /system/file_system_layouts
parentFix(system/services/nix-sync): Remove slash from cachePath (diff)
downloadnixos-server-1c4672d602de2a6022f759996025cb7df0237862.tar.gz
nixos-server-1c4672d602de2a6022f759996025cb7df0237862.zip
Feat(system/file_system_layout): Add impermanence
Diffstat (limited to '')
-rw-r--r--system/file_system_layouts/default.nix15
-rw-r--r--system/file_system_layouts/impermanence.nix16
2 files changed, 21 insertions, 10 deletions
diff --git a/system/file_system_layouts/default.nix b/system/file_system_layouts/default.nix
index fe7fc3f..d038632 100644
--- a/system/file_system_layouts/default.nix
+++ b/system/file_system_layouts/default.nix
@@ -1,5 +1,4 @@
 {
-  modulesPath,
   config,
   lib,
   ...
@@ -7,6 +6,10 @@
 with lib; let
   cfg = config.system.fileSystemLayouts;
 in {
+  imports = [
+    ./impermanence.nix
+  ];
+
   options.system.fileSystemLayouts = {
     mainDisk = mkOption {
       type = lib.types.path;
@@ -30,20 +33,12 @@ in {
         device = cfg.mainDisk;
         fsType = "btrfs";
         options = ["subvol=storage" "compress-force=zstd"];
+        neededForBoot = true;
       };
       "/boot" = {
         device = cfg.mainDisk;
         options = ["subvol=boot" "compress-force=zstd"];
       };
-
-      "/etc/nixos" = {
-        device = "/srv/nix-config";
-        options = ["bind"];
-      };
-      "/var/lib/postgresql" = {
-        device = "/srv/postgresql";
-        options = ["bind"];
-      };
     };
   };
 }
diff --git a/system/file_system_layouts/impermanence.nix b/system/file_system_layouts/impermanence.nix
new file mode 100644
index 0000000..da38791
--- /dev/null
+++ b/system/file_system_layouts/impermanence.nix
@@ -0,0 +1,16 @@
+{...}: {
+  environment.persistence = {
+    "/srv" = {
+      hideMounts = true;
+      directories = [
+        "/etc/nixos"
+        "/var/log"
+        "/var/lib/postgresql"
+        "/var/lib/acme"
+      ];
+      files = [
+        "/etc/machine-id"
+      ];
+    };
+  };
+}