146 lines
4.1 KiB
Bash
Executable File
146 lines
4.1 KiB
Bash
Executable File
#!/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 ""
|