Spaces:
Runtime error
Runtime error
| # ElevenClip AI — Full AMD Droplet Setup Script | |
| # Run once after fresh boot: bash /root/setup_droplet.sh | |
| set -e | |
| LOG=/tmp/elevnclip_setup.log | |
| exec > >(tee -a "$LOG") 2>&1 | |
| echo "=== ElevenClip AI Droplet Setup $(date) ===" | |
| # ── 1. Update repo ──────────────────────────────────────────────────────────── | |
| echo "[1/5] Pulling latest code..." | |
| cd /root/ElevenClip-AI | |
| git pull origin master | |
| # ── 2. Python venv + pip install ───────────────────────────────────────────── | |
| echo "[2/5] Installing Python dependencies..." | |
| if [ ! -f /root/venv/bin/activate ]; then | |
| python3 -m venv /root/venv | |
| fi | |
| source /root/venv/bin/activate | |
| pip install --upgrade pip -q | |
| pip install -r backend/requirements.txt -q | |
| echo "PACKAGES_DONE" | |
| # ── 3. Start vLLM inside Docker container ──────────────────────────────────── | |
| echo "[3/5] Starting vLLM with Qwen2.5-VL-7B-Instruct..." | |
| docker start rocm 2>/dev/null || true | |
| sleep 3 | |
| # Kill any stale vllm process | |
| docker exec rocm bash -c "pkill -f 'vllm serve' 2>/dev/null || true" | |
| sleep 2 | |
| # Start vLLM detached | |
| docker exec -d rocm bash -c ' | |
| vllm serve Qwen/Qwen2.5-VL-7B-Instruct \ | |
| --port 8000 \ | |
| --dtype float16 \ | |
| --trust-remote-code \ | |
| --max-model-len 4096 \ | |
| --gpu-memory-utilization 0.7 \ | |
| --limit-mm-per-prompt "image=3" \ | |
| > /tmp/vllm.log 2>&1 | |
| ' | |
| echo "vLLM started in background (downloading model, may take 5-15 min)" | |
| # ── 4. Start FastAPI backend on port 8080 ──────────────────────────────────── | |
| echo "[4/5] Starting FastAPI backend on :8080..." | |
| pkill -f "uvicorn backend.main" 2>/dev/null || true | |
| sleep 1 | |
| cd /root/ElevenClip-AI | |
| VLLM_BASE_URL=http://localhost:8000/v1 \ | |
| VLLM_MODEL=Qwen/Qwen2.5-VL-7B-Instruct \ | |
| WORK_DIR=/tmp/elevnclip \ | |
| NEXT_PUBLIC_API_URL=http://localhost:8080 \ | |
| nohup /root/venv/bin/uvicorn backend.main:app \ | |
| --host 0.0.0.0 \ | |
| --port 8080 \ | |
| --workers 1 \ | |
| --log-level info \ | |
| > /tmp/fastapi.log 2>&1 & | |
| echo "FastAPI PID: $!" | |
| echo "FASTAPI_STARTED" | |
| # ── 5. Poll vLLM health ─────────────────────────────────────────────────────── | |
| echo "[5/5] Waiting for vLLM to load model..." | |
| for i in $(seq 1 180); do | |
| if curl -sf http://localhost:8000/health > /dev/null 2>&1; then | |
| echo "vLLM READY after $((i * 5))s!" | |
| echo "VLLM_READY" | |
| break | |
| fi | |
| if [ $((i % 12)) -eq 0 ]; then | |
| echo " Still loading... $((i * 5))s elapsed" | |
| docker exec rocm bash -c "tail -3 /tmp/vllm.log 2>/dev/null" | |
| fi | |
| sleep 5 | |
| done | |
| echo "" | |
| echo "=== Setup complete! ===" | |
| echo " FastAPI: http://129.212.178.101:8080" | |
| echo " vLLM API: http://129.212.178.101:8000/v1" | |
| echo " Logs: /tmp/fastapi.log | docker exec rocm cat /tmp/vllm.log" | |