Add borgbackup support

This commit is contained in:
Andrey Golovizin 2020-03-11 15:40:05 +01:00
parent 2eddcca425
commit 4171e699b4

View file

@ -44,11 +44,19 @@ in
type = types.str; type = types.str;
description = "Data directory."; description = "Data directory.";
}; };
backupDir = mkOption {
default = "/var/backup/strojnadzor";
type = types.str;
description = "Backup directory.";
};
socketPath = mkOption { socketPath = mkOption {
default = "/run/strojnadzor.sock"; default = "/run/strojnadzor.sock";
type = types.str; type = types.str;
description = "UNIX socket path."; description = "UNIX socket path.";
}; };
borgbackup = {
enable = mkEnableOption "backup via borgbackup";
};
}; };
}; };
@ -65,6 +73,7 @@ in
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d '${cfg.stateDir}/db' 0700 strojnadzor strojnadzor - -" "d '${cfg.stateDir}/db' 0700 strojnadzor strojnadzor - -"
"d '${cfg.stateDir}/media' 0755 strojnadzor strojnadzor - -" "d '${cfg.stateDir}/media' 0755 strojnadzor strojnadzor - -"
"d '${cfg.backupDir}/borg' 0700 strojnadzor strojnadzor - -"
]; ];
systemd.sockets.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";
};
}; };
} }