#!/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