#!/bin/bash # deploy_integrado.sh - Deploy completo (API + Frontend) set -e echo "╔══════════════════════════════════════════════════════════════╗" echo "║ PARA.AI RAG - DEPLOY INTEGRADO ║" echo "╚══════════════════════════════════════════════════════════════╝" echo "" # Verificar dependências echo "1️⃣ Verificando dependências..." command -v python3 >/dev/null 2>&1 || { echo "❌ Python3 não encontrado!"; exit 1; } command -v pip >/dev/null 2>&1 || { echo "❌ pip não encontrado!"; exit 1; } echo " ✅ Python OK" echo "" # Instalar dependências echo "2️⃣ Instalando dependências..." pip install -q -r requirements.txt echo " ✅ Dependências instaladas" echo "" # Iniciar API em background echo "3️⃣ Iniciando API FastAPI..." cd ../para_ai_rag_cluster 2>/dev/null || { echo " ⚠️ Pasta para_ai_rag_cluster não encontrada" echo " Pulando inicialização da API..." } if [ -f "app.py" ]; then python3 -u app.py > /tmp/para_ai_api.log 2>&1 & API_PID=$! echo " ✅ API iniciada (PID: $API_PID)" echo " 📋 Logs em: /tmp/para_ai_api.log" # Aguardar API iniciar echo " ⏳ Aguardando API responder..." sleep 5 # Testar conexão if curl -s http://localhost:7860/ > /dev/null 2>&1; then echo " ✅ API respondendo!" else echo " ⚠️ API pode não estar pronta ainda" echo " (Normal se setup ainda rodando)" fi cd - > /dev/null else echo " ⚠️ app.py não encontrado, pulando..." fi echo "" # Iniciar Gradio echo "4️⃣ Iniciando Interface Gradio..." echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "🐝 Interface estará disponível em:" echo " → http://localhost:7861" echo "" echo "📊 API estará em:" echo " → http://localhost:7860" echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Executar Gradio (bloqueia aqui) python3 app_gradio.py # Cleanup (só chega aqui se Ctrl+C) echo "" echo "🛑 Encerrando..." if [ ! -z "$API_PID" ]; then kill $API_PID 2>/dev/null || true echo " ✅ API encerrada" fi echo "✅ Shutdown completo!"