1{
2 config,
3 lib,
4 ...
5}: {
6 options = {
7 mySnippets.restic = lib.mkOption {
8 type = lib.types.attrs;
9 description = "Default restic backup settings shared across backup jobs.";
10
11 default = {
12 extraBackupArgs = [
13 "--cleanup-cache"
14 "--compression auto"
15 "--no-scan"
16 ];
17
18 inhibitsSleep = true;
19 initialize = true;
20 passwordFile = config.age.secrets.resticPassword.path;
21
22 pruneOpts = [
23 "--keep-daily 7"
24 "--keep-weekly 4"
25 "--keep-monthly 3"
26 ];
27
28 rcloneConfigFile = config.age.secrets.rclone.path;
29
30 timerConfig = {
31 OnCalendar = "*-*-* 02:00:00";
32 #OnCalendar = "*-*-* 02,14:00:00";
33 #OnCalendar = "*-*-* 03:14:00";
34 Persistent = true;
35 RandomizedDelaySec = "10m";
36 };
37 };
38 };
39 };
40}