aboutsummaryrefslogtreecommitdiff
path: root/hosts/sagittarius
diff options
context:
space:
mode:
authorIsabella Bastaja <isabella@sorre.xyz>2026-08-18 11:33:47 +0200
committerIsabella Bastaja <isabella@sorre.xyz>2026-08-18 11:36:31 +0200
commitce38133328292ce9e44442a8021049fc8a322e95 (patch)
treebc30781abf3780b434c5b90291f163b34887ccef /hosts/sagittarius
parentda22d6cee806f90909356f34ce2b4ae4d3ce7e6b (diff)
headscale backup: only keep last five backups
Diffstat (limited to 'hosts/sagittarius')
-rw-r--r--hosts/sagittarius/headscale.nix8
1 files changed, 8 insertions, 0 deletions
diff --git a/hosts/sagittarius/headscale.nix b/hosts/sagittarius/headscale.nix
index 9a09590..05c5e5e 100644
--- a/hosts/sagittarius/headscale.nix
+++ b/hosts/sagittarius/headscale.nix
@@ -69,9 +69,17 @@ in
];
enableStrictShellChecks = true;
script = ''
+ #!/usr/bin/env bash
+ set -euo pipefail
+
[ ! -d /var/lib/backup/headscale ] && mkdir -p /var/lib/backup/headscale
TIMESTAMP="$(date +%Y%m%d%H%M%S)"
tar cvf "/var/lib/backup/headscale/$TIMESTAMP.backup.tar" /var/lib/headscale
+
+ find /var/lib/backup/headscale -type f -name '*.backup.tar' -print0 |
+ sort --zero-terminated --reverse |
+ tail --zero-terminated --lines=+6 |
+ xargs --null --no-run-if-empty rm --
'';
postStop = "systemctl start headscale.service";
};