diff --git a/module.nix b/module.nix index 29c0aed..f299172 100644 --- a/module.nix +++ b/module.nix @@ -44,11 +44,19 @@ in type = types.str; description = "Data directory."; }; + backupDir = mkOption { + default = "/var/backup/strojnadzor"; + type = types.str; + description = "Backup directory."; + }; socketPath = mkOption { default = "/run/strojnadzor.sock"; type = types.str; description = "UNIX socket path."; }; + borgbackup = { + enable = mkEnableOption "backup via borgbackup"; + }; }; }; @@ -65,6 +73,7 @@ in systemd.tmpfiles.rules = [ "d '${cfg.stateDir}/db' 0700 strojnadzor strojnadzor - -" "d '${cfg.stateDir}/media' 0755 strojnadzor strojnadzor - -" + "d '${cfg.backupDir}/borg' 0700 strojnadzor strojnadzor - -" ]; systemd.sockets.strojnadzor = { @@ -133,5 +142,15 @@ in }; }; }; + + services.borgbackup.jobs.strojnadzor = mkIf cfg.borgbackup.enable { + paths = [ cfg.stateDir ]; + repo = "${cfg.backupDir}/borg"; + compression = "auto,lzma"; + encryption.mode = "none"; + startAt = "hourly"; + user = "strojnadzor"; + group = "strojnadzor"; + }; }; }