tipitaka / webapp /tipitaka-api /startup.sh
dhammawatthumpra's picture
Fix write permissions crash on Hugging Face Spaces by configuring paths before downloading and adding a writability check on /data
e99cf6e
Raw
History Blame Contribute Delete
1.4 kB
#!/bin/bash
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