diff options
| author | quentin@aristote.fr <quentin@aristote.fr> | 2026-01-04 17:34:53 +0100 |
|---|---|---|
| committer | quentin@aristote.fr <quentin@aristote.fr> | 2026-01-04 17:34:53 +0100 |
| commit | a20c5e4a95fec048e31d251857749fc8660bb793 (patch) | |
| tree | 268a517ebf69024fe43978dc9132aa3f688eb177 /config/backups.nix | |
| parent | 31bd1a0a930af462c4575c55a4e3e92178f42342 (diff) | |
backups: borg over nfs -> restic over sftp
Diffstat (limited to 'config/backups.nix')
| -rw-r--r-- | config/backups.nix | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/config/backups.nix b/config/backups.nix new file mode 100644 index 0000000..14ed8f1 --- /dev/null +++ b/config/backups.nix @@ -0,0 +1,41 @@ +{ lib, pkgs, ... }: +let + host = "ds218.aristote.mesh"; + path = "/hephaistos"; + sshpass = "${pkgs.sshpass}/bin/sshpass -f /etc/restic/sftp.key"; +in +{ + programs.ssh.extraConfig = '' + Host ${host} + User hephaistos + ServerAliveInternal 60 + ServerAliveCountMax 240 + ''; + + services.restic.backups.srv = { + extraOptions = [ + "sftp.command='${sshpass} ssh ${host} -s sftp'" + ]; + passwordFile = "/etc/restic/srv.key"; + paths = [ + "/srv" + ]; + repository = "sftp:${host}:${path}"; + timerConfig = { + OnCalendar = "12:00"; + RandomizedDelaySec = "1h"; + Persistent = true; + }; + pruneOpts = [ "--keep-daily 7" ]; + initialize = true; + }; + systemd.services.restic-backups-srv = lib.mkMerge [ + { + personal.monitor = true; + } + (pkgs.lib.personal.services.checkNetwork { + hosts = [ "ds218.aristote.mesh" ]; + restart = false; + }) + ]; +} |
