rice/programs/borg.nix

50 lines
1.1 KiB
Nix
Raw Normal View History

2022-09-13 16:07:13 +00:00
{
config,
pkgs,
...
}: let
2022-08-22 18:32:26 +00:00
host = "11967@prio.ch-s011.rsync.net";
in {
age.secrets.borgpassword.file = ../secrets/borgpassword.age;
services.borgbackup = {
jobs.backup = {
paths = ["/persist"];
2023-04-24 13:08:51 +00:00
exclude = ["/persist/system/var/log"];
2022-08-22 18:32:26 +00:00
repo = "${host}:${config.networking.hostName}";
encryption = {
mode = "repokey";
passCommand = "cat ${config.age.secrets.borgpassword.path}";
};
startAt = "daily";
persistentTimer = true;
2022-08-22 18:32:26 +00:00
environment.BORG_RSH = "ssh -i /home/buffet/.ssh/id_borg";
extraArgs = "--remote-path borg1";
prune.keep = {
within = "1d";
daily = 7;
weekly = 4;
monthly = -1;
};
};
};
systemd.services = {
borgbackup-job-backup = {
after = ["ensure-online.service"];
requires = ["ensure-online.service"];
};
ensure-online = {
description = "waiting for Network";
after = ["network-online.target"];
requires = ["network-online.target"];
serviceConfig = {
ExecStart = "${pkgs.networkmanager}/bin/nm-online -q --timeout=300";
Type = "oneshot";
};
};
};
2022-08-22 18:32:26 +00:00
}