#!/usr/bin/env bash set -e BOLD="\033[1m" GREEN="\033[0;32m" YELLOW="\033[1;33m" RED="\033[0;31m" RESET="\033[0m" echo -e "${BOLD}SupplementEvidence Engine — Setup${RESET}" echo "======================================" # ── 1. Check Docker ───────────────────────────────────────────────────────── echo -e "\n${BOLD}[1/4] Verificando Docker...${RESET}" if ! command -v docker &>/dev/null; then echo -e "${RED}✗ Docker no está instalado. Instálalo desde https://www.docker.com${RESET}" exit 1 fi echo -e "${GREEN}✓ Docker disponible${RESET}" # ── 2. Start Memgraph + Qdrant ─────────────────────────────────────────────── echo -e "\n${BOLD}[2/4] Levantando Memgraph y Qdrant...${RESET}" cd "$(dirname "$0")/.." docker compose up -d echo -e "${GREEN}✓ Memgraph corriendo en bolt://localhost:7687${RESET}" echo -e "${GREEN}✓ Memgraph Lab UI en http://localhost:3000${RESET}" echo -e "${GREEN}✓ Qdrant corriendo en http://localhost:6333${RESET}" # Wait for Memgraph to be ready echo -e "\n Esperando a Memgraph..." for i in {1..20}; do if docker exec suplementos-memgraph mg_client --username "" --password "" --execute "RETURN 1" &>/dev/null 2>&1; then echo -e "${GREEN}✓ Memgraph listo${RESET}" break fi sleep 2 if [ $i -eq 20 ]; then echo -e "${YELLOW}⚠ Memgraph tardando en iniciar — continúa, se conectará cuando esté listo${RESET}" fi done # ── 3. Check Ollama ────────────────────────────────────────────────────────── echo -e "\n${BOLD}[3/4] Verificando Ollama...${RESET}" if ! command -v ollama &>/dev/null; then echo -e "${RED}✗ Ollama no está instalado.${RESET}" echo -e " Instálalo desde: ${BOLD}https://ollama.ai${RESET}" exit 1 fi if ! curl -s http://192.168.68.67:11434/api/tags &>/dev/null; then echo -e "${YELLOW}⚠ Ollama no está corriendo. Iniciando...${RESET}" ollama serve &>/dev/null & sleep 3 fi echo -e "${GREEN}✓ Ollama disponible en http://192.168.68.67:11434${RESET}" # ── 4. Pull Ollama models ──────────────────────────────────────────────────── echo -e "\n${BOLD}[4/4] Descargando modelos de Ollama...${RESET}" pull_model() { local model=$1 echo -e "\n Verificando ${BOLD}${model}${RESET}..." if ollama list 2>/dev/null | grep -q "^${model}"; then echo -e "${GREEN} ✓ ${model} ya está disponible${RESET}" else echo -e "${YELLOW} ↓ Descargando ${model} (puede tardar varios minutos)...${RESET}" ollama pull "$model" echo -e "${GREEN} ✓ ${model} descargado${RESET}" fi } pull_model "mxbai-embed-large" pull_model "qwen3:8b" # ── Done ───────────────────────────────────────────────────────────────────── echo -e "\n${GREEN}${BOLD}✓ Infraestructura lista${RESET}" echo "" echo -e " Memgraph Lab: ${BOLD}http://localhost:3000${RESET}" echo -e " Qdrant UI: ${BOLD}http://localhost:6333/dashboard${RESET}" echo -e " Ollama: ${BOLD}http://localhost:11434${RESET}" echo "" echo -e " Siguiente: ${BOLD}cd dashboard && npm run dev${RESET}"