This repository has no description
0

Configure Feed

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

1{ config, pkgs, ... }: 2{ 3 systemd.services.borgbackup-job-hetzner.serviceConfig.ReadWritePaths = [ 4 "/var/log/telegraf" 5 ]; 6 7 clan.core.vars.generators.borgbackup = { 8 files."borgbackup.ssh.id25519" = { }; 9 files."borgbackup.ssh.id25519.pub".secret = false; 10 runtimeInputs = with pkgs; [ 11 coreutils 12 openssh 13 ]; 14 script = '' 15 ssh-keygen -t ed25519 -N "" -f $out/borgbackup.ssh.id25519 16 ''; 17 }; 18 19 # Ensure backup directory exists for pg_dump 20 systemd.tmpfiles.rules = [ 21 "d /var/backup 0700 root root -" 22 "d /var/backup/postgresql 0700 root root -" 23 ]; 24 25 services.borgbackup.jobs.hetzner = { 26 paths = [ 27 "/var/backup" 28 "/var/lib/bitwarden_rs" 29 "/var/lib/htgen-cyberlocker" 30 "/var/lib/htgen-paste" 31 "/var/lib/matrix-synapse/media_store/local_content" 32 "/var/lib/radicale" 33 "/home/bot" 34 ]; 35 exclude = [ 36 "*.pyc" 37 "/home/bot/.cache" 38 "/home/bot/.nix-defexpr" 39 "/home/bot/.nix-profile" 40 ]; 41 repo = "u550643@u550643.your-storagebox.de:/./neoprism"; 42 encryption.mode = "none"; 43 compression = "auto,zstd"; 44 startAt = "*-*-* 03:00:00"; 45 environment.BORG_RSH = 46 let 47 knownHostsFile = pkgs.writeText "storagebox-known-hosts" '' 48 [u550643.your-storagebox.de]:23 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIICf9svRenC/PLKIL9nk6K/pxQgoiFC41wTNvoIncOxs 49 ''; 50 in 51 "ssh -oPort=23 -oUserKnownHostsFile=${knownHostsFile} -i ${ 52 config.clan.core.vars.generators.borgbackup.files."borgbackup.ssh.id25519".path 53 }"; 54 55 readWritePaths = [ 56 "/var/backup" 57 "/var/lib/hedgedoc" 58 ]; 59 60 preHook = '' 61 set -x 62 # Dump matrix-synapse PostgreSQL database (14GB, compresses well) 63 ${pkgs.sudo}/bin/sudo -u postgres ${config.services.postgresql.package}/bin/pg_dump \ 64 matrix-synapse | ${pkgs.gzip}/bin/gzip > /var/backup/postgresql/matrix-synapse.sql.gz 65 66 # Dump hedgedoc SQLite database (172MB) safely 67 ${pkgs.sqlite}/bin/sqlite3 /var/lib/hedgedoc/db.sqlite ".backup /var/backup/hedgedoc.sqlite" 68 ''; 69 70 postHook = '' 71 cat > /var/log/telegraf/borgbackup-job-hetzner.service <<EOF 72 task,frequency=daily last_run=$(date +%s)i,state="$([[ $exitStatus == 0 ]] && echo ok || echo fail)" 73 EOF 74 ''; 75 76 prune.keep = { 77 within = "1d"; 78 daily = 7; 79 weekly = 4; 80 monthly = 0; 81 }; 82 }; 83}