From 9736a86d9e1227e839f744a05656d2f674ef116a Mon Sep 17 00:00:00 2001 From: blake Date: Sun, 23 Aug 2026 10:42:16 -0500 Subject: [PATCH] add more borg options for dbs and offsite --- hosts/nixos/vaniville/configuration.nix | 1 + modules/homelab/system/backups/default.nix | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/hosts/nixos/vaniville/configuration.nix b/hosts/nixos/vaniville/configuration.nix index 430bdf1..13d7ae7 100644 --- a/hosts/nixos/vaniville/configuration.nix +++ b/hosts/nixos/vaniville/configuration.nix @@ -44,6 +44,7 @@ in { }; backups = { enable = true; + databases = false; backup_repo = "/var/lib/backups/homelab"; offsite_dir = "/lifeboat/vaniville/homelab"; }; diff --git a/modules/homelab/system/backups/default.nix b/modules/homelab/system/backups/default.nix index 935fb0e..31d07cc 100644 --- a/modules/homelab/system/backups/default.nix +++ b/modules/homelab/system/backups/default.nix @@ -26,11 +26,21 @@ in { default = {}; description = "backup jobs, nested attribute sets should be = paths []"; }; + databases = lib.mkOption { + type = lib.types.bool; + default = true; + description = "if databases are present, runs dumps"; + }; backup_repo = lib.mkOption { type = lib.types.path; default = "/holocron/archives/homelab"; description = "path to take daily backups to with borg!"; }; + offsite = lib.mkOption { + type = lib.types.bool; + default = true; + description = "bool to control weather or not the repo is backed up offsite"; + }; offsite_user = lib.mkOption { type = lib.types.str; default = "lifeboat"; @@ -59,11 +69,11 @@ in { group = "archives"; encryption.mode = "repokey-blake2"; encryption.passCommand = "cat ${sec."borg_passwd".path}"; - preHook = '' + preHook = lib.mkIf cfg.databases '' systemctl start mysql-backup.service systemctl start $(systemctl list-unit-files 'postgresqlBackup-*.service' --no-legend --no-pager | cut -d' ' -f1) ''; - postHook = '' + postHook = lib.mkIf cfg.offsite'' ${pkgs.sshpass}/bin/sshpass -f ${sec."lifeboat_rsync".path} \ ${pkgs.rsync}/bin/rsync -aHAX --partial --numeric-ids --info=progress2,name1,stats2 --delete \ -e "ssh -o StrictHostKeyChecking=no" \