gotify / backup.sh
elmerzole's picture
Create backup.sh
39230ec verified
raw
history blame contribute delete
941 Bytes
#!/usr/bin/env bash
set -euo pipefail
TMPDIR=/tmp/gotify_backup
mkdir -p $TMPDIR
ENCFILE="$TMPDIR/$BACKUP_FILE"
if [ -z "${GITHUB_TOKEN:-}" ]; then
echo "[backup] ERROR: GITHUB_TOKEN not set"
exit 1
fi
if [ -f "$GOTIFY_DATABASE_PATH" ]; then
echo "[backup] Encrypting DB..."
openssl enc -aes-256-cbc -pbkdf2 -iter 100000 \
-in "$GOTIFY_DATABASE_PATH" \
-out "$ENCFILE" \
-k "$ENCRYPTION_KEY"
echo "[backup] Cloning repo..."
rm -rf $TMPDIR/repo
git clone "https://${GITHUB_TOKEN}@${GITHUB_REPO#https://}" $TMPDIR/repo
cp "$ENCFILE" "$TMPDIR/repo/$BACKUP_FILE"
cd $TMPDIR/repo
git config user.email "gotify@hf.space"
git config user.name "Gotify Backup Bot"
git add "$BACKUP_FILE"
git commit -m "Automated backup $(date -u +%Y%m%dT%H%M%SZ)" || echo "No changes to commit"
git push origin main
echo "[backup] Backup pushed to GitHub"
else
echo "[backup] No DB found at $GOTIFY_DATABASE_PATH"
fi