Files
João Henrique b541f502ba feat: initial commit - Jhonny Editor
- Adicionado estrutura completa do projeto
- Configurado MCP server para Premiere Pro
- Adicionado documentação e skills
- Configurado Gitignore para o projeto
2026-09-08 09:59:31 -04:00

111 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
set -e
# Doza Assist - Deploy (Graphify + Servidor)
# Sobe um nivel: o script vive em admin/, o projeto e a pasta pai
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
cd "$PROJECT_DIR"
echo "============================================================"
echo " Doza Assist :: Deploy - Graphify + Servidor"
echo " Pasta: $(pwd)"
echo "============================================================"
echo
# 1) Resolve quem executa o graphify (preferencia: uv, depois graphify no PATH)
if command -v uv >/dev/null 2>&1; then
RUN="uv tool run --from graphifyy graphify"
elif command -v graphify >/dev/null 2>&1; then
RUN="graphify"
else
echo "graphify nao encontrado. Instalando via pip..."
python3 -m pip install -q --upgrade graphifyy
RUN="graphify"
fi
# 2) Roda o graphify SEMPRE (deep + update; code-only se nao houver API key)
ARGS="--mode deep --update"
if [ -n "$GEMINI_API_KEY" ] || [ -n "$GOOGLE_API_KEY" ] || [ -n "$MOONSHOT_API_KEY" ] \
|| [ -n "$ANTHROPIC_API_KEY" ] || [ -n "$OPENAI_API_KEY" ] || [ -n "$DEEPSEEK_API_KEY" ]; then
:
else
echo "AVISO: nenhuma LLM API key detectada. Usando --code-only (codigo apenas;"
echo " docs/imagens serao ignorados). Para extracao semantica completa,"
echo " defina GEMINI_API_KEY ou GOOGLE_API_KEY."
ARGS="--mode deep --update --code-only"
fi
echo
echo "Executando graphify (DEEP + UPDATE)..."
echo
$RUN "." $ARGS || echo "[AVISO] graphify falhou; o deploy continua mesmo assim."
# 2.5) Reindexar o RAG (doza.code_chunks) - so roda se rag/.env estiver
# preenchido; requer o tunel SSH do banco aberto (ver rag/SETUP.md).
# Best-effort: nunca trava o deploy.
echo
echo "Reindexando RAG..."
PORT=55435
export RAG_DB_PORT=$PORT
export RAG_DB_HOST=127.0.0.1
bash "$PROJECT_DIR/rag/ensure_tunnel.sh" || true
RAG_VENV_PY="$PROJECT_DIR/code/.venv/bin/python3"
if [ ! -x "$RAG_VENV_PY" ]; then
RAG_VENV_PY="python3"
fi
if [ -f "$PROJECT_DIR/rag/.env" ] && grep -q '^RAG_DB_PASSWORD=.\+' "$PROJECT_DIR/rag/.env"; then
"$RAG_VENV_PY" -m pip install -q -r "$PROJECT_DIR/rag/requirements.txt" 2>/dev/null || true
"$RAG_VENV_PY" "$PROJECT_DIR/rag/index_code.py" || echo "[AVISO] indexacao RAG falhou (tunel/banco indisponivel?); deploy continua."
else
echo "[INFO] rag/.env sem RAG_DB_PASSWORD preenchida; pulando indexacao RAG."
fi
# 3) Derrubar qualquer instancia antiga do servidor
echo
echo "Parando instancias anteriores do servidor..."
lsof -ti:5050 | xargs kill -9 2>/dev/null || true
pkill -f "python.*app.py" 2>/dev/null || true
sleep 1
true
# 4) Levantar o servidor Doza Assist
APP_DIR="$PROJECT_DIR/code"
cd "$APP_DIR"
# Ensure Homebrew binaries (ffmpeg, etc.) are on PATH
if [ -d "/opt/homebrew/bin" ]; then
export PATH="/opt/homebrew/bin:$PATH"
elif [ -d "/usr/local/bin" ]; then
export PATH="/usr/local/bin:$PATH"
fi
VENV_PY="$APP_DIR/.venv/bin/python3"
if [ ! -x "$VENV_PY" ]; then
echo "ERRO: ambiente Python do macOS nao encontrado:"
echo " $VENV_PY"
echo
echo "Execute primeiro: admin/install.command"
exit 1
fi
echo
echo "============================================================"
echo " Levantando o servidor Doza Assist..."
echo " http://localhost:5050"
echo "============================================================"
echo
# Abre o navegador padrao assim que o servidor responder (nao trava o boot)
(
for _ in $(seq 1 30); do
if curl -s -o /dev/null "http://localhost:5050"; then
open "http://localhost:5050"
break
fi
sleep 1
done
) &
"$VENV_PY" app.py