mermet: sanoid: enable hourly
[sourcephile-nix.git] / hosts / mermet / sanoid.nix
index a6472c520df13ea9f06920fdcafee6bad67fe741..f814e3d4cbac9fa3f860b051c68320134437a002 100644 (file)
@@ -1,60 +1,63 @@
-{ pkgs, lib, config, inputs, ... }:
+{ config, ... }:
 let
   inherit (builtins) readFile;
   inherit (config.users) users groups;
 in
 {
-users.users.backup = {
-  isSystemUser = true;
-  shell = users.root.shell;
-  group = groups.disk.name;
-  openssh.authorizedKeys.keys = [
-    (readFile (inputs.secrets + "/hosts/losurdo/ssh/backup.ssh-ed25519.pub"))
-  ] ++ users."julm".openssh.authorizedKeys.keys;
-};
-systemd.tmpfiles.rules = [
-  "z /dev/zfs 0660 - ${groups."disk".name}  -"
-];
-system.activationScripts.backup = ''
-  # This one should not be necessary
-  /run/booted-system/sw/bin/zfs allow -u ${users.backup.name} bookmark,hold,send rpool
-  /run/booted-system/sw/bin/zfs allow -u ${users.backup.name} receive,create,mount,rollback rpool/backup
-'';
-
-systemd.services.sanoid.serviceConfig.SupplementaryGroups = [ groups."disk".name ];
-services.sanoid = {
-  enable = true;
-  templates = {
-    snap = {
-      autosnap = true;
-      autoprune = true;
-      yearly = 0;
-      monthly = 3;
-      daily = 31;
-      hourly = 0;
-      frequently = 0;
-    };
-    prune = {
-      autosnap = false;
-      autoprune = true;
-      yearly = 0;
-      monthly = 3;
-      daily = 31;
-      hourly = 24;
-      frequently = 0;
-    };
+  users.users.backup = {
+    isSystemUser = true;
+    shell = users.root.shell;
+    group = groups.disk.name;
+    openssh.authorizedKeys.keys = [
+      (readFile ../losurdo/syncoid/sshKey.pub)
+    ] ++ users."julm".openssh.authorizedKeys.keys;
   };
-  extraArgs = [
-    "--verbose"
-    #"--debug"
+  systemd.tmpfiles.rules = [
+    "z /dev/zfs 0660 - ${groups."disk".name}  -"
   ];
-  datasets = {
-    "rpool/backup/losurdo/var/postgresql" = {
-      use_template = [ "prune" ];
+  system.activationScripts.backup = ''
+    # This one should not be necessary
+    /run/booted-system/sw/bin/zfs allow -u ${users.backup.name} bookmark,hold,send rpool
+    /run/booted-system/sw/bin/zfs allow -u ${users.backup.name} receive,create,mount,rollback rpool/backup
+  '';
+
+  systemd.services.sanoid.serviceConfig.SupplementaryGroups = [ groups."disk".name ];
+  services.sanoid = {
+    enable = true;
+    templates = {
+      snap = {
+        autosnap = true;
+        autoprune = true;
+        yearly = 0;
+        monthly = 3;
+        daily = 31;
+        hourly = 24;
+        frequently = 0;
+      };
+      prune = {
+        autosnap = false;
+        autoprune = true;
+        yearly = 0;
+        monthly = 3;
+        daily = 31;
+        hourly = 24;
+        frequently = 0;
+      };
     };
-    "rpool/backup/losurdo/var/cryptpad" = {
-      use_template = [ "prune" ];
+    extraArgs = [
+      "--verbose"
+      #"--debug"
+    ];
+    datasets = {
+      "rpool/var/lib" = {
+        use_template = [ "snap" ];
+      };
+      "rpool/backup/losurdo/var/postgresql" = {
+        use_template = [ "prune" ];
+      };
+      "rpool/backup/losurdo/var/cryptpad" = {
+        use_template = [ "prune" ];
+      };
     };
   };
-};
 }