diff --git a/modules/backup/rsync.nix b/modules/backup/rsync.nix index 8716ff1..5e5cd84 100644 --- a/modules/backup/rsync.nix +++ b/modules/backup/rsync.nix @@ -5,7 +5,6 @@ let cfg = config.phoebe.backup.rsync; cdir = config.phoebe.backup.directory; plib = config.phoebe.lib; - user = "backup"; port = builtins.head config.services.openssh.ports; scripts = (import ../../pkgs/default.nix { inherit pkgs; }).backup-scripts; @@ -157,7 +156,7 @@ in user = mkOption { type = types.str; - default = user; + default = config.phoebe.backup.user.name; description = "User to perform backups as."; }; @@ -176,7 +175,12 @@ in #### Implementation config = mkIf cfg.enable { - phoebe.backup.user.enable = cfg.user == user; + # Create user/group if necessary: + phoebe.backup.user.enable = + let user = config.phoebe.backup.user.name; + group = config.phoebe.backup.user.group; + in cfg.user == user || cfg.group == group; + systemd.services = toSystemd service; systemd.timers = toSystemd timer; }; diff --git a/test/backup/rsync/default.nix b/test/backup/rsync/default.nix index 96c3213..43c1025 100644 --- a/test/backup/rsync/default.nix +++ b/test/backup/rsync/default.nix @@ -20,6 +20,7 @@ pkgs.nixosTest { phoebe.backup.rsync = { enable = true; + user = "root"; schedules = [ { host = "localhost"; directory = "/tmp/backup";