From 3fb6134d236960976ee77b1248695ee0277e54e4 Mon Sep 17 00:00:00 2001 From: hannes Date: Sat, 17 Feb 2024 02:42:35 +0100 Subject: [PATCH] import fix --- backup.nix | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 backup.nix diff --git a/backup.nix b/backup.nix new file mode 100644 index 0000000..0d740ef --- /dev/null +++ b/backup.nix @@ -0,0 +1,30 @@ +{config, pkgs, ... }: + + +let + forgejo-borgbackup = pkgs.writeShellScriptBin "forgejo-borgbackup" '' + #!/bin/sh + set -e + #stop forgejo + systemctl stop forgejo.service + # MySQL-Backup + MYSQL_OPTION_FILE="/etc/nixos/dbauth.cnf" + MYSQL_DATABASE="forgejodb" + mysqldump --defaults-file="${MYSQL_OPTION_FILE}" $MYSQL_DATABASE > /borgbackupcache/forgejobackup.sql + # BorgBackup + export BORG_REPO="ssh://backup@cloud.shibe.pro://mnt/onedrive/Backups/borg" + export BACKUP_NAME="forgejo-$(date +%Y-%m-%d)" + + # Add everything to be backed up + ${pkgs.borgbackup}/bin/borg create --verbose --filter AME --list --stats --show-rc --compression lz4 --exclude-caches \ + $BORG_REPO::$BACKUP_NAME \ + /var/lib/forgejo/repositories/ \ + /var/lib/forgejo/data/ \ + /borgbackupcache/forgejobackup.sql + # Remove DB dump + rm /borgbackupcache/forgejobackup.sql + # Start Forgejo again + systemctl start forgejo.service + # Prune old backups + ${pkgs.borgbackup}/bin/borg prune --list $BORG_REPO --prefix 'forgejo-' --show-rc --keep-daily=7 --keep-weekly=4 --keep-monthly=6 + ''; \ No newline at end of file