summary refs log tree commit diff stats
path: root/system/services/snapper/default.nix
blob: cdebf8d5e3e2846dc33c8c570516f8b07d9a2f4a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{...}: {
  services.snapper = {
    configs = {
      srv = {
        SUBVOLUME = "/srv";
        FSTYPE = "btrfs";
        # users and groups allowed to work with config
        ALLOW_GROUPS = ["wheel"];

        # sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots
        # directory
        SYNC_ACL = true;

        # run daily number cleanup
        NUMBER_CLEANUP = false;

        # limit for number cleanup
        NUMBER_MIN_AGE = 1800;
        NUMBER_LIMIT = 50;
        NUMBER_LIMIT_IMPORTANT = 10;

        # create hourly snapshots
        TIMELINE_CREATE = true;

        # cleanup hourly snapshots after some time
        TIMELINE_CLEANUP = true;

        # limits for timeline cleanup
        TIMELINE_MIN_AGE = 1800;
        TIMELINE_LIMIT_HOURLY = 7;
        TIMELINE_LIMIT_DAILY = 3;
        TIMELINE_LIMIT_WEEKLY = 2;
        TIMELINE_LIMIT_MONTHLY = 2;
        TIMELINE_LIMIT_YEARLY = 2;

        # cleanup empty pre-post-pairs
        EMPTY_PRE_POST_CLEANUP = true;
      };
    };
  };
}