This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / machines / prism / backup.nix
1.3 kB 50 lines
1{ config, pkgs, ... }: 2{ 3 systemd.services.borgbackup-job-hetzner.serviceConfig.ReadWritePaths = [ "/var/log/telegraf" ]; 4 5 clan.core.vars.generators.borgbackup = { 6 files."borgbackup.ssh.id25519" = { }; 7 files."borgbackup.ssh.id25519.pub".secret = false; 8 runtimeInputs = with pkgs; [ 9 coreutils 10 openssh 11 ]; 12 script = '' 13 exit 1 # Manual migration required from facts to vars 14 ssh-keygen -t ed25519 -N "" -f $out/borgbackup.ssh.id25519 15 ''; 16 }; 17 18 services.borgbackup.jobs.hetzner = { 19 paths = [ 20 "/var/backup" 21 ]; 22 exclude = [ 23 "*.pyc" 24 ]; 25 repo = "u364341@u364341.your-storagebox.de:/./hetzner"; 26 encryption.mode = "none"; 27 compression = "auto,zstd"; 28 startAt = "*-*-* 02:00:00"; 29 # TODO: change backup key 30 environment.BORG_RSH = "ssh -oPort=23 -i ${ 31 config.clan.core.vars.generators.borgbackup.files."borgbackup.ssh.id25519".path 32 }"; 33 preHook = '' 34 set -x 35 ''; 36 37 postHook = '' 38 cat > /var/log/telegraf/borgbackup-job-hetzner.service <<EOF 39 task,frequency=daily last_run=$(date +%s)i,state="$([[ $exitStatus == 0 ]] && echo ok || echo fail)" 40 EOF 41 ''; 42 43 prune.keep = { 44 within = "1d"; # Keep all archives from the last day 45 daily = 7; 46 weekly = 4; 47 monthly = 0; 48 }; 49 }; 50}