| #!/bin/bash |
|
|
| set -e |
|
|
| |
| export DATA_DIR="${DATA_DIR:-/tmp/app/data}" |
| export HF_STORAGE_REPO="${HF_STORAGE_REPO:-nxdev-org/open-webui-storage}" |
| export SYNC_INTERVAL="${SYNC_INTERVAL:-300}" |
|
|
| |
| export HF_HOME="/tmp/hf_cache" |
| export HUGGINGFACE_HUB_CACHE="/tmp/hf_cache" |
| export TRANSFORMERS_CACHE="/tmp/hf_cache" |
| export SENTENCE_TRANSFORMERS_HOME="/tmp/hf_cache" |
|
|
| |
| export STATIC_DIR="/tmp/static" |
| export UPLOAD_DIR="/tmp/uploads" |
|
|
| echo "Starting Open WebUI with HF Dataset persistence..." |
| echo "Data directory: $DATA_DIR" |
| echo "HF Repository: $HF_STORAGE_REPO" |
| echo "HF Cache: $HF_HOME" |
|
|
| |
| |
|
|
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| if [ -z "$HF_TOKEN" ]; then |
| echo "Warning: HF_TOKEN not set. Sync functionality will be limited." |
| else |
| echo "HF_TOKEN is set, proceeding with sync..." |
| fi |
|
|
| |
| echo "Syncing data from Hugging Face..." |
| python3 /app/sync_storage.py download |
|
|
| |
| cleanup() { |
| echo "Shutting down gracefully..." |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| exit 0 |
| } |
|
|
| |
| trap cleanup SIGTERM SIGINT |
| |
| |
| background_sync() { |
| if [ -n "$HF_TOKEN" ]; then |
| while true; do |
| sleep $SYNC_INTERVAL |
| echo "Periodic sync to Hugging Face..." |
| python3 /app/sync_storage.py upload |
| done |
| else |
| echo "Skipping background sync - no HF_TOKEN" |
| while true; do |
| sleep 3600 |
| done |
| fi |
| } |
|
|
| |
| background_sync & |
| SYNC_PID=$! |
|
|
| |
| echo "Starting caddy..." |
|
|
| |
| |
| |
| |
| git clone https://github.com/justlovemaki/Gemini-CLI-2-API.git /tmp/Gemini-CLI-2-API |
| cd /tmp/Gemini-CLI-2-API&& npm install && node src/api-server.js & |
|
|
| /app/caddy/caddy run /app/Caddyfile & |
| TASK_PID=$! |
|
|
| |
| wait $TASK_PID |
|
|