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