#!/bin/bash
# LM Studio Web - Startup Script
# Lance le serveur web (frontend) et le serveur MCP (backend image generation)
set -e # Exit on any error
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
BLUE='\033[0;34m'
echo -e "${BLUE}╔════════════════════════════════════════════════╗${NC}"
echo -e "${BLUE}║ LM Studio Web Chat - Démarrage ║${NC}"
echo -e "${BLUE}╚════════════════════════════════════════════════╝${NC}"
# 1. Check ComfyUI
echo -e "\n${YELLOW}[1/3] Vérification de ComfyUI...${NC}"
if lsof -Pi :8188 -sTCP:LISTEN -t >/dev/null 2>&1; then
echo -e " ${GREEN}✓ ComfyUI est en cours d'exécution sur le port 8188${NC}"
else
echo -e " ${RED}✗ ComfyUI n'est PAS en cours d'exécution${NC}"
echo -e " ${YELLOW}→ Veuillez démarrer ComfyUI d'abord :${NC}"
echo -e " ${YELLOW} cd /chemin/vers/ComfyUI && python main.py${NC}"
echo -e " ${YELLOW} (ComfyUI doit écouter sur http://127.0.0.1:8188)${NC}"
exit 1
fi
# 2. Start Web Server (frontend)
echo -e "\n${YELLOW}[2/3] Démarrage du serveur web (frontend)...${NC}"
cd "$(dirname "$0")"
if lsof -Pi :8084 -sTCP:LISTEN -t >/dev/null 2>&1; then
echo -e " ${YELLOW}⚠ Le port 8084 est déjà occupé${NC}"
echo -e " ${YELLOW}→ Le serveur web semble déjà en cours d'exécution${NC}"
else
python3 -m http.server 8084 > server.log 2>&1 &
SERVER_PID=$!
echo $SERVER_PID > .web_server.pid
sleep 1
if ps -p $SERVER_PID > /dev/null; then
echo -e " ${GREEN}✓ Serveur web démarré sur http://localhost:8084${NC}"
echo -e " ${GREEN} PID: $SERVER_PID${NC}"
else
echo -e " ${RED}✗ Échec du démarrage du serveur web${NC}"
cat server.log
exit 1
fi
fi
# 3. Start MCP Server (backend)
echo -e "\n${YELLOW}[3/3] Démarrage du serveur MCP (backend image)...${NC}"
cd backend
if lsof -Pi :8085 -sTCP:LISTEN -t >/dev/null 2>&1; then
echo -e " ${YELLOW}⚠ Le port 8085 est déjà occupé${NC}"
echo -e " ${YELLOW}→ Le serveur MCP semble déjà en cours d'exécution${NC}"
else
uvicorn mcp_server:app --reload --port 8085 > mcp_server.log 2>&1 &
MCP_PID=$!
echo $MCP_PID > .mcp_server.pid
sleep 2
if ps -p $MCP_PID > /dev/null; then
echo -e " ${GREEN}✓ Serveur MCP démarré sur http://localhost:8085${NC}"
echo -e " ${GREEN} PID: $MCP_PID${NC}"
else
echo -e " ${RED}✗ Échec du démarrage du serveur MCP${NC}"
cat mcp_server.log
exit 1
fi
fi
# Summary
echo -e "\n${GREEN}╔════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║ Tous les services sont démarrés ! ║${NC}"
echo -e "${GREEN}╚════════════════════════════════════════════════╝${NC}"
echo ""
echo "🌐 Interface web: http://localhost:8084"
echo "🔧 MCP API: http://localhost:8085"
echo ""
echo "Pour arrêter les serveurs:"
echo " ${YELLOW}./stop.sh${NC} ou ${YELLOW}pkill -f 'start.sh'${NC}"
echo ""
echo "📝 Logs:"
echo " • Serveur web: $(pwd)/server.log"
echo " • Serveur MCP: $(pwd)/backend/mcp_server.log"
echo ""