modules/backup: set borg remote path and repo globally

This commit is contained in:
Infinidoge 2024-04-14 09:25:18 -04:00
parent 33bcfd3123
commit 3dc9346801
Signed by: Infinidoge
SSH key fingerprint: SHA256:oAMyvotlNFraMmZmr+p6AxnNfW/GioTs1pOn3V4tQ7A

View file

@ -21,10 +21,12 @@ let
excludes excludes
); );
BORG_REMOTE_PATH = "/usr/local/bin/borg1/borg1";
commonArgs = { commonArgs = {
environment = { environment = {
BORG_RSH = "ssh -i ${config.secrets.borg-ssh-key}"; BORG_RSH = "ssh -i ${config.secrets.borg-ssh-key}";
BORG_REMOTE_PATH = "/usr/local/bin/borg1/borg1"; inherit BORG_REMOTE_PATH;
}; };
extraCreateArgs = "--verbose --stats --checkpoint-interval 600"; extraCreateArgs = "--verbose --stats --checkpoint-interval 600";
compression = "auto,zstd,3"; compression = "auto,zstd,3";
@ -36,15 +38,22 @@ let
passCommand = "cat ${config.secrets.borg-password}"; passCommand = "cat ${config.secrets.borg-password}";
}; };
}; };
repo = "rsync.net:backups/hosts";
in in
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
borgbackup borgbackup
]; ];
environment.variables = {
inherit BORG_REMOTE_PATH;
BORG_REPO = repo;
};
services.borgbackup.jobs."persist" = commonArgs // rec { services.borgbackup.jobs."persist" = commonArgs // rec {
paths = "/persist"; paths = "/persist";
repo = "rsync.net:backups/hosts/${config.networking.hostName}"; inherit repo;
exclude = map (append paths) excludes'; exclude = map (append paths) excludes';
startAt = "daily"; startAt = "daily";
prune.keep = { prune.keep = {