From 03a5599963db045e1460314c086b8b1ee440996b Mon Sep 17 00:00:00 2001 From: Lucy Hochkamp Date: Sun, 1 Oct 2023 14:04:38 +0200 Subject: [PATCH] gatebridge backup via borg --- hosts/ds9/default.nix | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/hosts/ds9/default.nix b/hosts/ds9/default.nix index 2226c984..2b99edda 100644 --- a/hosts/ds9/default.nix +++ b/hosts/ds9/default.nix @@ -75,17 +75,27 @@ in configurations."ds9-offsite" = { location = { source_directories = [ "/backups" "/data" "/persistent" ]; - repositories = [ "root@gatebridge:/backup/ds9-offsite" ]; + repositories = [ "ssh://root@gatebridge/media/backup/ds9" ]; + exclude_if_present = [ ".nobackup" ]; + }; + #upload_rate_limit = "4000"; + storage = { + encryption_passcommand = "${pkgs.coreutils}/bin/cat ${config.age.secrets.borgmaticEncryptionKey.path}"; + compression = "auto,zstd,10"; + ssh_command = "ssh -o GlobalKnownHostsFile=${config.age.secrets.gatebridgeHostKeys.path} -i ${config.age.secrets.ds9OffsiteBackupSSH.path}"; + }; + hooks = { + before_actions = [ "${pkgs.curl}/bin/curl -fss -m 10 --retry 5 -o /dev/null $(${pkgs.coreutils}/bin/cat ${config.age.secrets.ds9SyncoidHealthCheckUrl.path})/start" ]; + after_actions = [ "${pkgs.curl}/bin/curl -fss -m 10 --retry 5 -o /dev/null $(${pkgs.coreutils}/bin/cat ${config.age.secrets.ds9SyncoidHealthCheckUrl.path})" ]; + on_error = [ "${pkgs.curl}/bin/curl -fss -m 10 --retry 5 -o /dev/null $(${pkgs.coreutils}/bin/cat ${config.age.secrets.ds9SyncoidHealthCheckUrl.path})/fail" ]; + # postgresql_databases = [{ name = "all"; pg_dump_command = "${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/pg_dumpall"; pg_restore_command = "${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/pg_restore"; }]; + }; + retention = { + keep_daily = 7; + keep_weekly = 4; + keep_monthly = 12; + keep_yearly = 10; }; - exclude_if_present = [ ".nobackup" ]; - encryption_passcommand = "cat ${config.age.secrets.borgmaticEncryptionKey.path}"; - compression = "auto,zstd,10"; - upload_rate_limit = "4000"; - ssh_command = "ssh -o GlobalKnownHostsFile=${config.age.secrets.gatebridgeHostKeys.path} -i ${config.age.secrets.ds9OffsiteBackupSSH.path}"; - before_actions = [ "${pkgs.curl}/bin/curl -fss -m 10 --retry 5 -o /dev/null $(cat ${config.age.secrets.ds9SyncoidHealthCheckUrl.path})/start" ]; - after_actions = [ "${pkgs.curl}/bin/curl -fss -m 10 --retry 5 -o /dev/null $(cat ${config.age.secrets.ds9SyncoidHealthCheckUrl.path})" ]; - on_error = [ "${pkgs.curl}/bin/curl -fss -m 10 --retry 5 -o /dev/null $(cat ${config.age.secrets.ds9SyncoidHealthCheckUrl.path})/fail" ]; - postgresql_databases = [ "all" ]; }; };