nixos-config/modules/services/borg.nix

64 lines
2.1 KiB
Nix
Raw Normal View History

{ pkgs, config, ... }:
let
hostname = "violet";
repo = "ssh://dandelion.booping.local:${toString config.services.openssh.ports}/spinners/rootvol/backups/${hostname}";
in
{
services.borgbackup.jobs = {
"violet-minecraft" = {
paths = [
"/home/liv/MinecraftDocker"
];
repo = "${repo}/MinecraftDocker-tulip";
compression = "auto,zstd";
startAt = "daily";
postHook = ''
if [ $exitStatus -eq 2 ]; then
${pkgs.ntfy-sh}/bin/ntfy send https://ntfy.liv.town/${hostname} "borgbackup: ${hostname} backup (violet-minecraft) failed with errors"
else
${pkgs.ntfy-sh}/bin/ntfy send https://ntfy.liv.town/${hostname} "borgbackup: ${hostname} backup (violet-minecraft) completed succesfully with exit status $exitStatus"
fi
'';
};
"violet-lib" = {
paths = [
"/var/lib"
];
repo = "${repo}/var-lib";
compression = "auto,zstd";
startAt = "daily";
postHook = ''
if [ $exitStatus -eq 2 ]; then
${pkgs.ntfy-sh}/bin/ntfy send https://ntfy.liv.town/${hostname} "borgbackup: ${hostname} backup (violet-lib) failed with errors"
else
${pkgs.ntfy-sh}/bin/ntfy send https://ntfy.liv.town/${hostname} "borgbackup: ${hostname} backup (violet-lib) completed succesfully with exit status $exitStatus"
fi
'';
};
# "violet-random" = {
# paths = [
# "/random"
# ];
# exclude = [
# "/random/a"
# "/random/a"
# ];
# encryption = {
# mode = "";
# passCommand = "";
# };
# environment.BORG_RSH = "ssh -i ${config.sops.secrets."ssh_private_key_violet".path}";
# repo = "${repo}/violet/random";
# compression = "auto,zstd";
# startAt = "daily";
# postHook = ''
# if [ $exitStatus -eq 2 ]; then
# ${pkgs.ntfy-sh}/bin/ntfy send https://ntfy.${domain}/nixbox "BorgBackup: nixbox backup failed with errors"
# else
# ${pkgs.ntfy-sh}/bin/ntfy send https://ntfy.${domain}/nixbox "BorgBackup: nixbox backup completed succesfully with exit status $exitStatus"
# fi
# '';
# };
};
}