old
 1{
 2  config,
 3  lib,
 4  ...
 5}: {
 6  services.restic.backups."${config.modules.currentHost}-backup" = {
 7    initialize = true;
 8    passwordFile = config.sops.secrets.restic-backup-password.path;
 9    rcloneConfigFile = config.sops.templates."rclone-restic-backup.conf".path;
10    repository = "rclone:Backup:/Backups/${config.modules.currentHost}-backup/";
11    paths =
12      (lib.mapAttrsToList (n: v: "/var/lib/authelia-${n}") config.services.authelia.instances)
13      ++ [
14        config.services.artalk.workdir
15        "/var/lib/fail2ban"
16        config.services.freshrss.dataDir
17        "/var/lib/goatcounter"
18        "/var/lib/gotosocial"
19        config.services.grafana.dataDir
20        "/var/lib/${config.services.victoriametrics.stateDir}"
21      ];
22    exclude = [
23      "tmp"
24      ".git"
25      "cache"
26      ".cache"
27      "*_cache"
28    ];
29    timerConfig = {
30      OnCalendar = "04:00";
31      RandomizedDelaySec = "1h";
32    };
33    pruneOpts = [
34      "--keep-daily 3"
35      "--keep-weekly 3"
36      "--keep-monthly 3"
37      "--keep-yearly 3"
38    ];
39  };
40
41  sops.templates."rclone-restic-backup.conf".content = ''
42    [Backup]
43    type = onedrive
44    drive_id = 52CE3DAB18B4C557
45    drive_type = personal
46    token = ${config.sops.placeholder.rclone-restic-backup-token}
47  '';
48}