postio / var /docker /backup.sh
Leon4gr45's picture
Upload var/docker/backup.sh with huggingface_hub
62be9ec verified
Raw
History Blame Contribute Delete
1.54 kB
#!/bin/bash
BACKUP_DIR="/tmp/backup_repo"
echo "Backup daemon started..."
# Configure git globally so commits succeed
git config --global user.email "backup-bot@huggingface.space"
git config --global user.name "Hugging Face Backup Bot"
while true; do
# Wait for 30 minutes first (or sleep on startup so the app is up first)
echo "Backup daemon sleeping for 30 minutes..."
sleep 1800
if [ -n "$GITHUB_PAT" ] && [ -n "$GITHUB_REPO" ] && [ -n "$GITHUB_BRANCH" ]; then
echo "Running pg_dump..."
mkdir -p /tmp/backup_temp
su - postgres -c "pg_dump -d postiz-db-local -F p" > /tmp/backup_temp/backup.sql || {
echo "pg_dump failed."
continue
}
echo "Cloning git backup repo..."
rm -rf "$BACKUP_DIR"
git clone "https://${GITHUB_PAT}@github.com/${GITHUB_REPO}.git" "$BACKUP_DIR" || {
echo "Failed to clone backup repo."
continue
}
cd "$BACKUP_DIR"
# Ensure branch exists
git checkout "$GITHUB_BRANCH" || git checkout -b "$GITHUB_BRANCH" || true
cp /tmp/backup_temp/backup.sql "$BACKUP_DIR/backup.sql"
# Check if there are changes to push
if [ -n "$(git status --porcelain)" ]; then
echo "Database changes detected. Committing and pushing..."
git add backup.sql
git commit -m "Auto-backup $(date -uIs)"
git push origin "$GITHUB_BRANCH" || echo "Git push failed."
else
echo "No database changes detected."
fi
else
echo "GitHub backup configuration variables missing. Skipping this backup cycle."
fi
done