From 5e993d9dd97ae7d1765168fabef66974f200914b Mon Sep 17 00:00:00 2001 From: Keith Solomon Date: Sun, 30 Nov 2025 22:32:57 -0600 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix:=20Update=20forge=20script.?= =?UTF-8?q?=20add=20backup=20script?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + assets/files/gitea/forge | 8 ++++++- assets/files/gitea/forge-b2-backup.sh | 30 +++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 assets/files/gitea/forge-b2-backup.sh diff --git a/.gitignore b/.gitignore index 7635b37..656e89e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ node_modules/ .DS_Store .env codex.txt +notes/ diff --git a/assets/files/gitea/forge b/assets/files/gitea/forge index 1476355..94d3105 100644 --- a/assets/files/gitea/forge +++ b/assets/files/gitea/forge @@ -88,9 +88,15 @@ cmd_runner_logs() { cmd_backup() { ensure_dirs + local ts dump dest + + ts=$(date +%Y%m%d-%H%M%S) + dump="$GITEA_DIR/gitea/gitea-dump-$ts.zip" + dest="$BACKUP_DIR/gitea-dump-$ts.zip" + echo "Running Gitea dump inside container: $GITEA_CONTAINER_NAME" # Gitea dump will write gitea-dump-*.zip under /data which is mounted to $GITEA_DIR/gitea - docker exec -u 1000 "$GITEA_CONTAINER_NAME" gitea dump -c /data/gitea/conf/app.ini + docker exec -u 1000 "$GITEA_CONTAINER_NAME" gitea dump -c /data/gitea/conf/app.ini --file /data/gitea-dump-$ts.zip echo "Locating latest dump..." local dump diff --git a/assets/files/gitea/forge-b2-backup.sh b/assets/files/gitea/forge-b2-backup.sh new file mode 100644 index 0000000..11d69b2 --- /dev/null +++ b/assets/files/gitea/forge-b2-backup.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Paths — adjust if your layout changes +GITEA_DIR="/gitea/gitea" +BACKUP_DIR="/gitea-backups" +CONTAINER="gitea" + +mkdir -p "$BACKUP_DIR" + +ts="$(date +%Y%m%d-%H%M%S)" +dump_file="gitea-dump-$ts.zip" + +echo "[backup] Starting backup: $dump_file" + +# Run dump INSIDE container +docker exec -u 1000 "$CONTAINER" sh -lc \ + "gitea dump -c /data/gitea/conf/app.ini --file /data/$dump_file" + +# Move dump from container-mounted volume to backup dir +mv "$GITEA_DIR/$dump_file" "$BACKUP_DIR/$dump_file" + +echo "[backup] Dump created at $BACKUP_DIR/$dump_file" + +# Optional: Upload to Backblaze B2 via rclone +# Make sure you configured a remote named 'b2' +rclone copy "$BACKUP_DIR/$dump_file" b2:soloforge-backups + +echo "[backup] Uploaded $dump_file to Backblaze B2" +echo "[backup] All done."