Spaces:
Running
Running
Fix write permissions crash on Hugging Face Spaces by configuring paths before downloading and adding a writability check on /data
e99cf6e | set -e | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββ" | |
| echo " Tipitaka Webapp β Starting up" | |
| echo "βββββββββββββββββββββββββββββββββββββββββββββββ" | |
| # ββ 1. Export paths for the API (Support HF Persistent Storage at /data) ββ | |
| if [ -d "/data" ] && [ -w "/data" ]; then | |
| echo "β Persistent storage found at /data and is writable. Using it." | |
| export DATA_DIR="/data" | |
| else | |
| echo "β Using container storage /app/data." | |
| export DATA_DIR="/app/data" | |
| fi | |
| export DATABASE_PATH="$DATA_DIR/tipitaka_mcu.db" | |
| export QDRANT_PATH="$DATA_DIR/qdrant_storage" | |
| export SNAPSHOT_DIR="$DATA_DIR/snapshots" | |
| export SERVE_STATIC="true" | |
| export STATIC_DIR="/app/web/dist" | |
| # ββ 2. Download database + vector assets ββ | |
| echo "" | |
| echo "β Downloading assets from HF bucket..." | |
| cd /app/api | |
| python download_assets.py | |
| # ββ 3. Clean up stale Qdrant lock (from previous session crash/restart) ββ | |
| echo "β Cleaning up Qdrant lock..." | |
| rm -f "$QDRANT_PATH/.lock" 2>/dev/null || true | |
| # ββ 4. Start uvicorn ββ | |
| echo "" | |
| echo "β Starting API server on port 7860..." | |
| echo "" | |
| cd /app/api | |
| exec uvicorn app.main:app \ | |
| --host 0.0.0.0 \ | |
| --port 7860 \ | |
| --log-level info | |