iris-ir-platform / start.sh
rajvivan's picture
sync: push iris-ir-platform to HuggingFace Space
2a5d15a
Raw
History Blame Contribute Delete
2.93 kB
#!/usr/bin/env bash
# ================================================================
# FinBot β€” Full Stack Startup Script
# Starts both the FastAPI backend and Next.js frontend together.
# ================================================================
set -e
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo ""
echo "╔══════════════════════════════════════════════════════════╗"
echo "β•‘ IRIS IR Intelligence System β€” Startup β•‘"
echo "β•‘ Emirates NBD Β· Local Demo β•‘"
echo "β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"
echo ""
# ── Backend ─────────────────────────────────────────────────────
echo "β–Ά Starting FastAPI backend (port 8000)…"
cd "$ROOT_DIR/backend"
if [ ! -d ".venv" ]; then
echo " Creating Python virtual environment…"
python3 -m venv .venv
fi
source .venv/bin/activate
PYTHON="$ROOT_DIR/backend/.venv/bin/python"
echo " Installing backend dependencies…"
"$PYTHON" -m pip install -q -r requirements.txt
echo " Launching uvicorn…"
export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0
"$PYTHON" -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload &
BACKEND_PID=$!
# ── Wait for backend ─────────────────────────────────────────────
echo " Waiting for backend…"
for i in {1..15}; do
if curl -sf http://localhost:8000/api/health > /dev/null 2>&1; then
echo " βœ… Backend ready at http://localhost:8000"
break
fi
sleep 1
done
# ── Frontend ─────────────────────────────────────────────────────
echo ""
echo "β–Ά Starting Next.js frontend (port 3000)…"
cd "$ROOT_DIR"
npm run dev &
FRONTEND_PID=$!
echo ""
echo "══════════════════════════════════════════════════════════"
echo " IRIS running:"
echo " Frontend β†’ http://localhost:3000"
echo " Backend β†’ http://localhost:8000"
echo " API docs β†’ http://localhost:8000/api/docs"
echo ""
echo " Press Ctrl+C to stop both servers."
echo "══════════════════════════════════════════════════════════"
# Cleanup on exit
trap "echo ''; echo 'Stopping…'; kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit" INT TERM
wait