nixos-config/modules/services/borg.nix

61 lines
1.8 KiB
Nix
Raw Normal View History

2025-07-01 20:29:55 +02:00
{
pkgs,
config,
username,
...
}:
let
hostname = "violet";
2025-07-01 20:29:55 +02:00
baseRepo = "ssh://liv@dandelion:9123/spinners/rootvol/backups/${hostname}";
in
{
services.borgbackup.jobs = {
"violet-minecraft" = {
paths = [
"/home/liv/MinecraftDocker"
];
repo = "ssh://liv@dandelion:9123/spinners/rootvol/backups/violet/MinecraftDocker-tulip";
2025-07-01 16:47:08 +02:00
encryption.mode = "none";
2025-07-01 20:29:55 +02:00
compression = "auto,zstd,10";
startAt = [ "3:00" ];
postHook = ''
if [ $exitStatus -eq 2 ]; then
${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${hostname} "borgbackup: ${hostname} backup (violet-minecraft) failed with errors"
else
${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${hostname} "borgbackup: ${hostname} backup (violet-minecraft) completed succesfully with exit status $exitStatus"
fi
'';
2025-07-01 20:29:55 +02:00
user = "${username}";
2025-07-08 22:51:16 +02:00
extraCreateArgs = [
"--stats"
];
environment = {
BORG_RSH = "ssh -p 9123 -i /home/liv/.ssh/id_ed25519";
};
};
"violet-lib" = {
paths = [
"/var/lib"
];
2025-07-01 20:29:55 +02:00
repo = "${baseRepo}/var-lib";
2025-07-01 16:47:08 +02:00
encryption.mode = "none";
compression = "auto,zstd";
startAt = "daily";
postHook = ''
if [ $exitStatus -eq 2 ]; then
${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${hostname} "borgbackup: ${hostname} backup (violet-lib) failed with errors"
else
${pkgs.ntfy-sh}/bin/ntfy send https://notify.liv.town/${hostname} "borgbackup: ${hostname} backup (violet-lib) completed succesfully with exit status $exitStatus"
fi
'';
# user = "${username}";
2025-07-08 22:51:16 +02:00
extraCreateArgs = [
"--stats"
];
environment = {
BORG_RSH = "ssh -p 9123 -i /home/liv/.ssh/id_ed25519";
};
};
};
}