Download sync_data.sh from elmerzole/ow: direct link, hf CLI and curl.
- Browser
- Download file 1.64 kB
-
https://huggingface.co/spaces/elmerzole/ow/resolve/main/sync_data.sh
- Command line
-
hf download hf://spaces/elmerzole/ow/sync_data.sh
-
curl -L -o sync_data.sh https://huggingface.co/spaces/elmerzole/ow/resolve/main/sync_data.sh
1.64 kB
| set -euo pipefail | |
| export GIT_CONFIG_NOSYSTEM=1 | |
| export HOME=/home/user | |
| REPO_URL="https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPO}.git" | |
| DB_PATH="/app/db/webui.db" | |
| ENCRYPTED_DB="webui.db.enc" | |
| TEMP_REPO="/app/db/temp_repo" | |
| echo "[sync] Configuring Open-WebUI persistence via GitHub + OpenSSL" | |
| mkdir -p /app/db | |
| if [ ! -d "$TEMP_REPO/.git" ]; then | |
| echo "[sync] Cloning repo ${GITHUB_REPO}..." | |
| git clone "$REPO_URL" "$TEMP_REPO" | |
| else | |
| echo "[sync] Repo already cloned, pulling latest..." | |
| cd "$TEMP_REPO" && git fetch --all && git reset --hard origin/main && cd - | |
| fi | |
| if [ -f "$TEMP_REPO/$ENCRYPTED_DB" ]; then | |
| echo "[sync] Found encrypted DB, decrypting..." | |
| openssl enc -d -aes-256-cbc -pbkdf2 -iter 100000 \ | |
| -in "$TEMP_REPO/$ENCRYPTED_DB" \ | |
| -out "$DB_PATH" \ | |
| -k "$ENCRYPTION_KEY" | |
| else | |
| echo "[sync] No DB found in repo, creating empty DB..." | |
| sqlite3 "$DB_PATH" "VACUUM;" | |
| fi | |
| ( | |
| while true; do | |
| echo "[sync] Sleeping 60s before next push..." | |
| sleep 60 | |
| if [ -f "$DB_PATH" ]; then | |
| echo "[sync] Encrypting and pushing DB..." | |
| openssl enc -aes-256-cbc -pbkdf2 -iter 100000 \ | |
| -in "$DB_PATH" \ | |
| -out "$TEMP_REPO/$ENCRYPTED_DB" \ | |
| -k "$ENCRYPTION_KEY" | |
| cd "$TEMP_REPO" | |
| git config user.email "openwebui@hf.space" | |
| git config user.name "OpenWebUI Backup Bot" | |
| git add "$ENCRYPTED_DB" | |
| git commit -m "Automated backup $(date -u +%Y%m%dT%H%M%SZ)" || echo "[sync] No changes to commit" | |
| git push origin main || echo "[sync] Push failed" | |
| cd - | |
| fi | |
| done | |
| ) & | |
| exec ./start.sh |