1
0
Fork 0

initial commit

Signed-off-by: Jason Hall <imjasonh@gmail.com>
This commit is contained in:
Jason Hall 2026-05-07 20:02:59 -04:00
commit 4dc1b58f2f
20 changed files with 1398 additions and 0 deletions

30
scripts/restore.sh Executable file
View file

@ -0,0 +1,30 @@
#!/bin/bash
# Restore a Forgejo backup tarball from GCS over the live data dir.
# Run on the VM via SSH. Stops the stack, restores, restarts.
#
# Usage: sudo ./restore.sh forgejo-20260507T033000Z.tar.gz
set -euo pipefail
if [[ $# -ne 1 ]]; then
echo "Usage: $0 <backup-filename>" >&2
echo " e.g. $0 forgejo-20260507T033000Z.tar.gz" >&2
exit 1
fi
BACKUP=$1
BUCKET=$(curl -sf -H "Metadata-Flavor: Google" \
"http://metadata.google.internal/computeMetadata/v1/project/project-id")-forgejo-backups
read -r -p "About to restore '$BACKUP' from gs://$BUCKET/ over /mnt/disks/forgejo-data/forgejo. Continue? [y/N] " ans
[[ "$ans" == "y" || "$ans" == "Y" ]] || exit 1
systemctl stop forgejo-stack.service
docker run --rm -v /tmp:/tmp google/cloud-sdk:slim \
gsutil cp "gs://${BUCKET}/${BACKUP}" /tmp/
rm -rf /mnt/disks/forgejo-data/forgejo
tar xzf "/tmp/${BACKUP}" -C /mnt/disks/forgejo-data/
rm "/tmp/${BACKUP}"
systemctl start forgejo-stack.service
echo "Restore complete. Check 'docker logs forgejo' for migration output."