diff options
Diffstat (limited to 'usecases/common')
-rw-r--r-- | usecases/common/backup-client.nix | 30 | ||||
-rw-r--r-- | usecases/common/backup-client/.keep | 0 |
2 files changed, 30 insertions, 0 deletions
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 @@ | |||
1 | { config, lib, ... }: | ||
2 | |||
3 | with lib; | ||
4 | { | ||
5 | options.services.borgbackup.jobList = mkOption { | ||
6 | default = []; | ||
7 | type = types.listOf types.str; | ||
8 | description = "List of Borgbackup jobs for which we want nice defaults"; | ||
9 | }; | ||
10 | |||
11 | config.services.borgbackup.jobs = let | ||
12 | passFile = name: | ||
13 | "/etc/nixos/usecases/common/backup-client/private/${name}_pass.txt"; | ||
14 | keyFile = name: | ||
15 | "/etc/nixos/usecases/common/backup-client/private/${name}_key"; | ||
16 | in genAttrs config.services.borgbackup.jobList (name: { | ||
17 | compression = mkDefault "auto,zstd"; | ||
18 | encryption = { | ||
19 | mode = mkDefault "repokey"; | ||
20 | passCommand = mkDefault "cat ${passFile name}"; | ||
21 | }; | ||
22 | |||
23 | environment = { | ||
24 | BORG_RSH = mkDefault "ssh -i ${keyFile name}"; | ||
25 | }; | ||
26 | |||
27 | extraCreateArgs = mkDefault "--stats"; | ||
28 | extraPruneArgs = mkDefault "--list --stats"; | ||
29 | }); | ||
30 | } | ||
diff --git a/usecases/common/backup-client/.keep b/usecases/common/backup-client/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/usecases/common/backup-client/.keep | |||