Spaces:
Running
Running
Upload backup.sh with huggingface_hub
Browse files
backup.sh
CHANGED
|
@@ -1,38 +1,7 @@
|
|
| 1 |
#!/bin/sh
|
| 2 |
-
#
|
| 3 |
-
#
|
| 4 |
-
|
| 5 |
set -eu
|
| 6 |
|
| 7 |
-
|
| 8 |
-
REPO_ID="tkgray/open-webui-backups"
|
| 9 |
-
FILE_IN_REPO="backups/webui.db"
|
| 10 |
-
|
| 11 |
-
if [ ! -f "$DB_PATH" ]; then
|
| 12 |
-
echo "[backup] $DB_PATH does not exist yet — skipping."
|
| 13 |
-
exit 0
|
| 14 |
-
fi
|
| 15 |
-
|
| 16 |
-
if [ -z "${HF_TOKEN:-}" ]; then
|
| 17 |
-
echo "[backup] HF_TOKEN not set — skipping."
|
| 18 |
-
exit 0
|
| 19 |
-
fi
|
| 20 |
-
|
| 21 |
-
echo "[backup] Uploading $DB_PATH to $REPO_ID:$FILE_IN_REPO ..."
|
| 22 |
-
python3 -c "
|
| 23 |
-
from huggingface_hub import HfApi
|
| 24 |
-
import os, sys
|
| 25 |
-
api = HfApi(token=os.environ['HF_TOKEN'])
|
| 26 |
-
try:
|
| 27 |
-
api.upload_file(
|
| 28 |
-
path_or_fileobj='$DB_PATH',
|
| 29 |
-
path_in_repo='$FILE_IN_REPO',
|
| 30 |
-
repo_id='$REPO_ID',
|
| 31 |
-
repo_type='dataset',
|
| 32 |
-
token=os.environ['HF_TOKEN']
|
| 33 |
-
)
|
| 34 |
-
print('[backup] Upload OK')
|
| 35 |
-
except Exception as e:
|
| 36 |
-
print(f'[backup] Upload FAILED: {e}', file=sys.stderr)
|
| 37 |
-
sys.exit(1)
|
| 38 |
-
"
|
|
|
|
| 1 |
#!/bin/sh
|
| 2 |
+
# Snapshot Open WebUI user data (DB + vector store + uploads) to the HF backups
|
| 3 |
+
# dataset. The real work lives in backup.py (consistent SQLite snapshot, plus a
|
| 4 |
+
# deterministic archive so an unchanged payload does not create an hourly commit).
|
| 5 |
set -eu
|
| 6 |
|
| 7 |
+
exec python3 /backup.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|