#!/bin/bash # Auto Stock Trading System - 전체 시작 스크립트 echo "================================================" echo " Auto Stock Trading System Starting..." echo "================================================" # 색상 정의 GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 프로젝트 루트 디렉토리 PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$PROJECT_ROOT" # 로그 디렉토리 생성 mkdir -p logs echo "" echo "📍 Project Root: $PROJECT_ROOT" echo "" # 1. Python 가상환경 확인 및 생성 echo "🐍 [1/5] Checking Python Virtual Environment..." # Python 3.12 사용 (3.13은 SQLAlchemy와 호환성 문제) SYSTEM_PYTHON="/opt/homebrew/bin/python3.12" if [ ! -d ".venv" ]; then echo "${YELLOW}Creating Python virtual environment...${NC}" $SYSTEM_PYTHON -m venv .venv echo "${GREEN}✓ Virtual environment created${NC}" else echo "${GREEN}✓ Virtual environment found${NC}" fi PYTHON_CMD="$PROJECT_ROOT/.venv/bin/python" PIP_CMD="$PROJECT_ROOT/.venv/bin/pip" # 2. Backend 의존성 확인 echo "" echo "📦 [2/5] Checking Backend Dependencies..." cd "$PROJECT_ROOT/backend" if [ -f "requirements.txt" ]; then $PIP_CMD install -q -r requirements.txt echo "${GREEN}✓ Backend dependencies installed${NC}" fi # 3. MCP Server 의존성 확인 echo "" echo "📦 [3/5] Checking MCP Server Dependencies..." cd "$PROJECT_ROOT/mcp-server" if [ -f "requirements.txt" ]; then $PIP_CMD install -q -r requirements.txt echo "${GREEN}✓ MCP Server dependencies installed${NC}" fi # 4. Frontend 의존성 확인 echo "" echo "📦 [4/5] Checking Frontend Dependencies..." cd "$PROJECT_ROOT/frontend" if [ ! -d "node_modules" ]; then echo "${YELLOW}Installing frontend dependencies...${NC}" npm install echo "${GREEN}✓ Frontend dependencies installed${NC}" else echo "${GREEN}✓ Frontend dependencies already installed${NC}" fi # 5. 서비스 시작 echo "" echo "🚀 [5/5] Starting Services..." echo "" # Backend 시작 echo " └─ Starting Backend Server (Port 8000)..." cd "$PROJECT_ROOT/backend" nohup $PYTHON_CMD -m uvicorn app.main:app --host 0.0.0.0 --port 8000 > "$PROJECT_ROOT/logs/backend.log" 2>&1 & BACKEND_PID=$! echo " PID: $BACKEND_PID" sleep 2 # Backend 상태 확인 if curl -s http://localhost:8000/health > /dev/null 2>&1; then echo " ${GREEN}✓ Backend Server is running${NC}" else echo " ${RED}✗ Backend Server failed to start${NC}" fi # MCP Server 시작 echo "" echo " └─ Starting MCP Server (Port 8001)..." cd "$PROJECT_ROOT/mcp-server" nohup $PYTHON_CMD main.py > "$PROJECT_ROOT/logs/mcp-server.log" 2>&1 & MCP_PID=$! echo " PID: $MCP_PID" sleep 2 # MCP Server 상태 확인 if curl -s http://localhost:8001/ > /dev/null 2>&1; then echo " ${GREEN}✓ MCP Server is running${NC}" else echo " ${RED}✗ MCP Server failed to start${NC}" fi # Frontend 시작 echo "" echo " └─ Starting Frontend Dev Server (Port 3000)..." cd "$PROJECT_ROOT/frontend" nohup npm run dev > "$PROJECT_ROOT/logs/frontend.log" 2>&1 & FRONTEND_PID=$! echo " PID: $FRONTEND_PID" sleep 3 # Frontend 상태 확인 if curl -s http://localhost:3000 > /dev/null 2>&1; then echo " ${GREEN}✓ Frontend Dev Server is running${NC}" else echo " ${YELLOW}⚠ Frontend Dev Server may take a moment to start${NC}" fi # PID 파일 저장 echo "$BACKEND_PID" > "$PROJECT_ROOT/logs/backend.pid" echo "$MCP_PID" > "$PROJECT_ROOT/logs/mcp-server.pid" echo "$FRONTEND_PID" > "$PROJECT_ROOT/logs/frontend.pid" echo "" echo "================================================" echo " ${GREEN}All Services Started Successfully!${NC}" echo "================================================" echo "" echo "📋 Service Status:" echo " • Backend API: http://localhost:8000" echo " • MCP Server: http://localhost:8001" echo " • Frontend UI: http://localhost:3000" echo "" echo "📝 Log Files:" echo " • Backend: logs/backend.log" echo " • MCP Server: logs/mcp-server.log" echo " • Frontend: logs/frontend.log" echo "" echo "🛑 To stop all services, run: ./stop-all.sh" echo ""