aboutsummaryrefslogtreecommitdiff
path: root/hosts/sagittarius
diff options
context:
space:
mode:
authorIsabella Bastaja <isabella@sorre.xyz>2026-08-18 11:02:24 +0200
committerIsabella Bastaja <isabella@sorre.xyz>2026-08-18 11:10:16 +0200
commitda22d6cee806f90909356f34ce2b4ae4d3ce7e6b (patch)
treeb38764ed0dd00a2ef5cd2e66eac7b334cf6158cb /hosts/sagittarius
parentc3e013ba4e76aebae84aeb0390fcf40c34518be3 (diff)
sagittarius: create backup-headscale service
Diffstat (limited to 'hosts/sagittarius')
-rw-r--r--hosts/sagittarius/headscale.nix18
1 files changed, 17 insertions, 1 deletions
diff --git a/hosts/sagittarius/headscale.nix b/hosts/sagittarius/headscale.nix
index 3887de3..9a09590 100644
--- a/hosts/sagittarius/headscale.nix
+++ b/hosts/sagittarius/headscale.nix
@@ -1,4 +1,4 @@
-{ config, ... }:
+{ pkgs, config, ... }:
let
domain = "headscale.sorre.xyz";
port = 5892;
@@ -59,4 +59,20 @@ in
trustedInterfaces = [ "tailscale0" ];
allowedUDPPorts = [ config.services.tailscale.port ];
};
+
+ systemd.services.backup-headscale = {
+ serviceConfig.Type = "oneshot";
+ conflicts = [ "headscale.service" ];
+ path = [
+ pkgs.gnutar
+ pkgs.systemdMinimal
+ ];
+ enableStrictShellChecks = true;
+ script = ''
+ [ ! -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
+ '';
+ postStop = "systemctl start headscale.service";
+ };
}