dotfiles/host/montalin/backup.nix
2020-10-26 19:30:26 +00:00

32 lines
797 B
Nix

{ config, pkgs, ... }:
let
mountService = "var-backup-disk.mount";
backupDisk = "/var/backup/disk";
repo = "${backupDisk}/montalin";
in {
services.borgbackup.jobs = {
data = {
exclude = [ backupDisk "/var/tmp" "/var/cache" ];
paths = [ "/etc" "/home" "/root" "/var" "/secrets" ];
preHook = "systemctl start ${mountService}";
postHook = "systemctl stop ${mountService}";
readWritePaths = [ backupDisk ];
prune.keep = {
within = "14d";
weekly = 4;
monthly = 6;
yearly = -1;
};
removableDevice = true;
encryption = {
mode = "authenticated";
passphrase = "";
};
repo = repo;
startAt = "07:00";
environment.BORG_BASE_DIR = "${repo}/borg-base-dir";
};
};
}