aboutsummaryrefslogtreecommitdiff
path: root/nix/machines/vm-synology/backups.nix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--nix/machines/vm-synology/backups.nix40
1 files changed, 40 insertions, 0 deletions
diff --git a/nix/machines/vm-synology/backups.nix b/nix/machines/vm-synology/backups.nix
new file mode 100644
index 0000000..69dcb6e
--- /dev/null
+++ b/nix/machines/vm-synology/backups.nix
@@ -0,0 +1,40 @@
+{
+ pkgs,
+ config,
+ ...
+}:
+let
+ environmentFile = toString (
+ pkgs.writeText "restic-gcs-env" ''
+ GOOGLE_PROJECT_ID=fcuny-backups-464518
+ GOOGLE_APPLICATION_CREDENTIALS=${config.age.secrets.restic_gcs_credentials.path}
+ ''
+ );
+in
+{
+ # https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/backup/restic.nix
+ services.restic.backups.git = {
+ passwordFile = config.age.secrets.restic_password.path;
+ environmentFile = environmentFile;
+ repository = "gs:fcuny-backup:/vm-synology";
+ initialize = true;
+ paths = [ "/var/lib/gitolite" ];
+ exclude = [
+ "/var/lib/gitolite/.bash_history"
+ "/var/lib/gitolite/.ssh"
+ "/var/lib/gitolite/.viminfo"
+ ];
+ extraBackupArgs = [
+ "--exclude-caches"
+ "--compression=max"
+ ];
+ timerConfig = {
+ OnCalendar = "daily";
+ };
+ pruneOpts = [
+ "--keep-daily 7"
+ "--keep-weekly 4"
+ "--keep-monthly 3"
+ ];
+ };
+}