{ 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"; }; }; }; }; }