45 lines
1020 B
Nix
45 lines
1020 B
Nix
{config, ...}: {
|
|
sops = {
|
|
secrets = {
|
|
borg-key = {
|
|
owner = config.users.users.alex.name;
|
|
};
|
|
};
|
|
};
|
|
|
|
services = {
|
|
borgbackup.jobs.all = rec {
|
|
compression = "auto,zstd";
|
|
encryption = {
|
|
mode = "repokey-blake2";
|
|
passCommand = "cat ${config.sops.secrets.borg-key.path}";
|
|
};
|
|
extraCreateArgs = "--stats --verbose --checkpoint-interval=600 --exclude-caches";
|
|
extraPruneArgs = [
|
|
"--save-space"
|
|
"--stats"
|
|
];
|
|
extraCompactArgs = [
|
|
"--cleanup-commits"
|
|
];
|
|
environment = {
|
|
BORG_RSH = "ssh -i /home/alex/.ssh/id_borg_ed25519";
|
|
BORG_BASE_DIR = "/persist/borg";
|
|
};
|
|
readWritePaths = ["/persist/borg"];
|
|
paths = ["/home/alex" "/persist"];
|
|
startAt = "daily";
|
|
prune.keep = {
|
|
daily = 7;
|
|
weekly = 4;
|
|
monthly = 6;
|
|
};
|
|
exclude = [
|
|
"/home/alex/mounted"
|
|
"/home/alex/.cache"
|
|
"/persist/borg"
|
|
];
|
|
};
|
|
};
|
|
}
|