Spaces:
Runtime error
Runtime error
| set -e | |
| echo "=== ElevenClip AI ===" | |
| rocm-smi --showproductname 2>/dev/null | grep -v "^$" || echo "(no ROCm — CPU mode)" | |
| # ── 1. Next.js standalone on :3000 ────────────────────────────────────────── | |
| echo "[1/3] Next.js on :3000..." | |
| cd /app/frontend/.next/standalone | |
| HOSTNAME=0.0.0.0 PORT=3000 node server.js & | |
| NEXTJS_PID=$! | |
| # ── 2. FastAPI on :8080 ────────────────────────────────────────────────────── | |
| # vLLM starts on-demand via vllm_manager.py when the first job arrives. | |
| echo "[2/3] FastAPI on :8080 (vLLM starts on first job)..." | |
| export PYTHONPATH=/app/backend:/app | |
| export VLLM_ON_DEMAND=true | |
| export VLLM_PORT=8000 | |
| export VLLM_IDLE_TIMEOUT=300 | |
| cd /app && uvicorn backend.main:app \ | |
| --host 0.0.0.0 \ | |
| --port 8080 \ | |
| --workers 1 \ | |
| --log-level info & | |
| FASTAPI_PID=$! | |
| # ── 3. nginx on :7860 ──────────────────────────────────────────────────────── | |
| # Proxies /api /ws /downloads → FastAPI :8080 | / → Next.js :3000 | |
| echo "[3/3] nginx reverse proxy on :7860..." | |
| rm -f /etc/nginx/sites-enabled/default /etc/nginx/conf.d/default.conf | |
| cp /app/nginx.conf /etc/nginx/conf.d/elevnclip.conf | |
| nginx -t | |
| nginx -g "daemon off;" & | |
| NGINX_PID=$! | |
| # ── Cleanup ────────────────────────────────────────────────────────────────── | |
| trap "kill $NGINX_PID $FASTAPI_PID $NEXTJS_PID 2>/dev/null; exit" SIGTERM SIGINT | |
| wait -n "$NGINX_PID" "$FASTAPI_PID" "$NEXTJS_PID" | |