{ 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"; }; }; }