From 10f257ccdb585aa16889f4e94e16901c711340be Mon Sep 17 00:00:00 2001 From: Ahwx Date: Tue, 1 Jul 2025 16:30:14 +0200 Subject: [PATCH] feat: write a bunch of backup tasts for violet --- modules/services/borg.nix | 63 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 modules/services/borg.nix diff --git a/modules/services/borg.nix b/modules/services/borg.nix new file mode 100644 index 0000000..b318cec --- /dev/null +++ b/modules/services/borg.nix @@ -0,0 +1,63 @@ +{ 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 + # ''; + # }; + }; +}