From ba451dc28096fd5587f3f0c205ad27b12d4cd2a0 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sun, 7 Feb 2021 12:32:40 +0100 Subject: usecases/backup-client: init --- usecases/common/backup-client.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 usecases/common/backup-client.nix (limited to 'usecases/common/backup-client.nix') diff --git a/usecases/common/backup-client.nix b/usecases/common/backup-client.nix new file mode 100644 index 0000000..39e4ca1 --- /dev/null +++ b/usecases/common/backup-client.nix @@ -0,0 +1,30 @@ +{ config, lib, ... }: + +with lib; +{ + options.services.borgbackup.jobList = mkOption { + default = []; + type = types.listOf types.str; + description = "List of Borgbackup jobs for which we want nice defaults"; + }; + + config.services.borgbackup.jobs = let + passFile = name: + "/etc/nixos/usecases/common/backup-client/private/${name}_pass.txt"; + keyFile = name: + "/etc/nixos/usecases/common/backup-client/private/${name}_key"; + in genAttrs config.services.borgbackup.jobList (name: { + compression = mkDefault "auto,zstd"; + encryption = { + mode = mkDefault "repokey"; + passCommand = mkDefault "cat ${passFile name}"; + }; + + environment = { + BORG_RSH = mkDefault "ssh -i ${keyFile name}"; + }; + + extraCreateArgs = mkDefault "--stats"; + extraPruneArgs = mkDefault "--list --stats"; + }); +} -- cgit v1.2.3