diff --git a/hosts/nixos/HandlerOne/backup.nix b/hosts/nixos/HandlerOne/backup.nix new file mode 100644 index 0000000..505ea8c --- /dev/null +++ b/hosts/nixos/HandlerOne/backup.nix @@ -0,0 +1,49 @@ +let + volumePath = "/overseer/services"; + restic-default = { + user = "root"; + timerConfig = { + OnCalendar = "hourly"; + Persistent = true; + }; + paths = [ + # bar-assistant.nix + "${volumePath}/bar-assistant" + "${volumePath}/meilisearch" + + # homebox.nix + "/var/lib/homebox/data" + + # lubelogger.nix + "${volumePath}/lubelogger" + + # trilium.nix + "/var/lib/trilium/backup" + + # grocy + "/var/lib/grocy" + + # actualbudget + "${volumePath}/actualbudget" + ]; + }; +in + { + lib, + config, + ... + }: + lib.mkIf config.user.overseer.enable { + # Restic secrets + sops.secrets."restic/borg-base/url" = {}; + sops.secrets."restic/borg-base/key" = {}; + + services.restic.backups = { + borg-base = + restic-default + // { + repositoryFile = config.sops.secrets."restic/borg-base/url".path; + passwordFile = config.sops.secrets."restic/borg-base/key".path; + }; + }; + } diff --git a/hosts/nixos/HandlerOne/default.nix b/hosts/nixos/HandlerOne/default.nix index 602617e..261da94 100644 --- a/hosts/nixos/HandlerOne/default.nix +++ b/hosts/nixos/HandlerOne/default.nix @@ -14,6 +14,9 @@ # Hardware ./hardware-configuration.nix + # FIXME(TODO): Turn this into it's own backup module + ./backup.nix + # Disks inputs.disko.nixosModules.disko (lib.custom.relativeToRoot "hosts/common/disks/btrfs-disk.nix")