31 lines
949 B
Nix
31 lines
949 B
Nix
{ config, pkgs, lib, ... }:
|
|
{
|
|
services.restic.backups = let
|
|
localJob = name: paths: {
|
|
inherit paths;
|
|
repository = "/mnt/feal-syn1/backup/defiant/${name}";
|
|
passwordFile = config.sops.secrets."restic/${name}".path;
|
|
initialize = true;
|
|
pruneOpts = [
|
|
"--keep-daily 3"
|
|
"--keep-weekly 4"
|
|
"--keep-monthly 3"
|
|
];
|
|
};
|
|
in {
|
|
postgres = (localJob "postgres" [ "/tank/backup/postgresql" ]) // {
|
|
timerConfig.OnCalendar = "05:15"; # 2h after postgresqlBackup
|
|
};
|
|
|
|
gitea = (localJob "gitea" [ "/tank/services/gitea" ]);
|
|
matrix-synapse = (localJob "matrix-synapse" [ "/var/lib/matrix-synapse" ]);
|
|
vaultwarden = (localJob "vaultwarden" [ "/var/lib/bitwarden_rs" ]);
|
|
};
|
|
|
|
# TODO: home-assistant, pihole
|
|
sops.secrets."restic/postgres" = { };
|
|
sops.secrets."restic/gitea" = { };
|
|
sops.secrets."restic/matrix-synapse" = { };
|
|
sops.secrets."restic/vaultwarden" = { };
|
|
}
|