hosts/ni/services/backup: add Snapper service

This commit is contained in:
Gabriel Arazas 2025-02-08 10:10:16 +08:00
parent b9a4160123
commit 0dfb66c44b
No known key found for this signature in database
GPG Key ID: 62104B43D00AA360

View File

@ -45,7 +45,7 @@ let
pathPrefix = "borg-backup";
in {
options.hosts.ni.services.backup.enable =
lib.mkEnableOption "backup setup with BorgBackup";
lib.mkEnableOption "backup setup with BorgBackup and Snapper";
config = lib.mkIf cfg.enable {
sops.secrets = foodogsquaredLib.sops-nix.getSecrets ./secrets.yaml
@ -90,5 +90,40 @@ in {
}";
};
};
# The filesystem snapshots.
services.snapper = {
snapshotInterval = "hourly";
persistentTimer = true;
configs = {
root = {
SUBVOLUME = "/";
SPACE_LIMIT = "0.25";
FREE_LIMIT = "0.25";
BACKGROUND_COMPARISION = "yes";
NUMBER_CLEANUP = true;
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_LIMIT_HOURLY = 48;
TIMELINE_LIMIT_DAILY = 30;
TIMELINE_LIMIT_WEEKLY = 8;
TIMELINE_LIMIT_MONTHLY = 24;
TIMELINE_LIMIT_QUARTERLY = 10;
TIMELINE_LIMIT_YEARLY = 8;
};
home = {
SUBVOLUME = "/home";
ALLOW_USERS = [ "foo-dogsquared" ];
TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true;
TIMELINE_MIN_AGE = 300;
TIMELINE_LIMIT_HOURLY = 24;
TIMELINE_LIMIT_DAILY = 30;
TIMELINE_LIMIT_WEEKLY = 12;
};
};
};
};
}