summaryrefslogtreecommitdiff
path: root/os/srv/backup.nix
diff options
context:
space:
mode:
Diffstat (limited to 'os/srv/backup.nix')
-rw-r--r--os/srv/backup.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/os/srv/backup.nix b/os/srv/backup.nix
new file mode 100644
index 0000000..dad9b66
--- /dev/null
+++ b/os/srv/backup.nix
@@ -0,0 +1,34 @@
+{ config, lib, ... }:
+let
+ cfg = config.os.srv.backup;
+in
+{
+ options.os.srv.backup.enable = lib.mkEnableOption "enables backups";
+ config = lib.mkIf cfg.enable {
+ services.sanoid = {
+ enable = true;
+ templates.production = {
+ hourly = 36;
+ daily = 30;
+ monthly = 3;
+ };
+ datasets."zroot/rpool/appdata/databases".useTemplate = [ "production" ];
+ datasets."ztank/vault".useTemplates = [ "production" ];
+ };
+ services.syncoid = {
+ enable = true;
+ commands = {
+ "sync-db" = {
+ source = "zroot/rpool/appdata/databases";
+ target = "ztank/backups/nvme/databases";
+ sendOptions = "w";
+ };
+ "sync-configs" = {
+ source = "zroot/rpool/appdata/configs";
+ target = "ztank/backups/nvme/configs";
+ sendOptions = "w";
+ };
+ };
+ };
+ };
+}