52 lines
1.1 KiB
Nix
52 lines
1.1 KiB
Nix
{ lib, config, ... }:
|
|
let
|
|
enabled = config.mod.restic.enable;
|
|
in
|
|
{
|
|
options = {
|
|
mod.restic = {
|
|
enable = lib.mkEnableOption "Enable restic";
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf enabled {
|
|
fileSystems."/home/alex/backup" = {
|
|
device = "/dev/disk/by-uuid/34601701-65e6-4b2c-ac4d-8bef3dfd743f";
|
|
fsType = "ext4";
|
|
options = [ "nofail" ];
|
|
};
|
|
|
|
services = {
|
|
restic.backups = {
|
|
"sync-to-external" = {
|
|
initialize = true;
|
|
|
|
user = "alex";
|
|
passwordFile = config.age.secrets.restic-password.path;
|
|
|
|
paths = [ "/home/alex/sync" ];
|
|
repository = "/home/alex/backup";
|
|
|
|
timerConfig = {
|
|
OnCalendar = "*-*-* 0/12:00:00"; # Every 12th hour, i.e. twice a day
|
|
Persistent = true;
|
|
};
|
|
|
|
pruneOpts = [
|
|
"--keep-daily 1"
|
|
"--keep-weekly 7"
|
|
"--keep-yearly 12"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
age = {
|
|
secrets = {
|
|
"restic-password".file = ../../../../secrets/backwards/restic-password.age;
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|