| set -e | |
| echo "[CureMind] Starting FastAPI backend on port 8000..." | |
| cd /home/user/app/server | |
| uvicorn main:app --host 0.0.0.0 --port 8000 & | |
| BACKEND_PID=$! | |
| echo "[CureMind] Polling API health (max 90s)..." | |
| READY=0 | |
| for i in $(seq 1 45); do | |
| if python3 -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')" 2>/dev/null; then | |
| echo "[CureMind] API is ready after ~$((i * 2))s." | |
| READY=1 | |
| break | |
| fi | |
| if ! kill -0 $BACKEND_PID 2>/dev/null; then | |
| echo "[ERROR] FastAPI process crashed. Check your API keys and Pinecone config in Space secrets." | |
| exit 1 | |
| fi | |
| echo "[CureMind] Waiting... ($i/45)" | |
| sleep 2 | |
| done | |
| if [ $READY -eq 0 ]; then | |
| echo "[WARN] API did not respond in 90s — starting Streamlit anyway." | |
| fi | |
| echo "[CureMind] Starting Streamlit frontend on port 7860..." | |
| export CUREMIND_API_URL=http://localhost:8000 | |
| cd /home/user/app/client | |
| exec streamlit run app.py \ | |
| --server.port 7860 \ | |
| --server.address 0.0.0.0 \ | |
| --server.headless true \ | |
| --browser.gatherUsageStats false | |