#!/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