From 70481fab46f4ef07f0638f9c03a0f6a7f98324de Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Fri, 12 May 2023 11:23:15 -0700 Subject: profiles/backup: configure the backup server It creates the user, ensure sftp is configured correctly, and rsync the backups to rsync.net once a day. --- modules/services/backup/default.nix | 2 -- modules/services/backup/rsync.nix | 57 ------------------------------------- 2 files changed, 59 deletions(-) delete mode 100644 modules/services/backup/rsync.nix (limited to 'modules') diff --git a/modules/services/backup/default.nix b/modules/services/backup/default.nix index c9cce53..3481f3f 100644 --- a/modules/services/backup/default.nix +++ b/modules/services/backup/default.nix @@ -7,8 +7,6 @@ let + (writeText "excludes.txt" (concatStringsSep "\n" cfg.exclude)); in { - imports = [ ./rsync.nix ]; - options.my.services.backup = with lib; { enable = mkEnableOption "Enable backups for this host"; diff --git a/modules/services/backup/rsync.nix b/modules/services/backup/rsync.nix deleted file mode 100644 index d58dfe9..0000000 --- a/modules/services/backup/rsync.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ config, pkgs, lib, ... }: -let - cfg = config.my.services.backup.rsync; - secrets = config.age.secrets; - ssh-key-path = secrets."rsync.net/ssh-key".path; -in -{ - options.my.services.backup.rsync = with lib; { - enable = mkEnableOption "rsync backup service"; - - sourceDir = mkOption { - type = types.path; - example = "/data/slow/backups"; - description = "The directory to synchronize"; - }; - - destination = mkOption { - type = types.str; - example = "de2664@de2664.rsync.net:backups/"; - description = "The destination"; - }; - - timerConfig = mkOption { - default = { OnCalendar = "daily"; }; - example = { - OnCalendar = "00:05"; - RandomizedDelaySec = "5h"; - }; - description = '' - When to run rsync. See man systemd.timer for details. - ''; - }; - }; - - config = lib.mkIf cfg.enable { - systemd = { - timers.rsync-backups = { - description = "synchronize restic repository to rsync.net"; - wantedBy = [ "timers.target" ]; - partOf = [ "rsync-backups.service" ]; - timerConfig = cfg.timerConfig; - }; - services.rsync-backups = { - description = "synchronize restic repository to rsync.net"; - serviceConfig = { - Type = "oneshot"; - }; - script = '' - exec ${pkgs.rsync}/bin/rsync \ - -azq --delete \ - -e '${pkgs.openssh}/bin/ssh -i ${ssh-key-path}' \ - ${cfg.sourceDir} ${cfg.destination} - ''; - }; - }; - }; -} -- cgit 1.4.1