aboutsummaryrefslogtreecommitdiffstats
path: root/services/snapper
diff options
context:
space:
mode:
authorene <ene@sils.li>2023-02-17 17:02:32 +0100
committerene <ene@sils.li>2023-02-17 17:02:32 +0100
commitfab34599d813a69c4c0beda5d212441d86633be2 (patch)
treee428af803e14711ab29105dbc3097901fce28cbf /services/snapper
parentFix(system): Rework some btrfs subvolume names and add lazyatime (diff)
downloadnixos-config-fab34599d813a69c4c0beda5d212441d86633be2.zip
Feat(services): Add snapper config for the persistent volume
Diffstat (limited to 'services/snapper')
-rw-r--r--services/snapper/default.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/services/snapper/default.nix b/services/snapper/default.nix
new file mode 100644
index 00000000..547ee3f5
--- /dev/null
+++ b/services/snapper/default.nix
@@ -0,0 +1,47 @@
+# vim: ts=2
+{config, ...}: {
+ services.snapper = {
+ configs = {
+ srv = {
+ subvolume = "/srv";
+ fstype = "btrfs";
+ extraConfig = ''
+ # 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="yes"
+
+
+ # run daily number cleanup
+ NUMBER_CLEANUP="no"
+
+ # limit for number cleanup
+ NUMBER_MIN_AGE="1800"
+ NUMBER_LIMIT="50"
+ NUMBER_LIMIT_IMPORTANT="10"
+
+
+ # create hourly snapshots
+ TIMELINE_CREATE="yes"
+
+ # cleanup hourly snapshots after some time
+ TIMELINE_CLEANUP="yes"
+
+ # limits for timeline cleanup
+ TIMELINE_MIN_AGE="1800"
+ TIMELINE_LIMIT_HOURLY="7"
+ TIMELINE_LIMIT_DAILY="3"
+ TIMELINE_LIMIT_WEEKLY="0"
+ TIMELINE_LIMIT_MONTHLY="0"
+ TIMELINE_LIMIT_YEARLY="0"
+
+
+ # cleanup empty pre-post-pairs
+ EMPTY_PRE_POST_CLEANUP="yes"
+ '';
+ };
+ };
+ };
+}