122 lines
3.6 KiB
Bash
122 lines
3.6 KiB
Bash
#!/bin/bash
|
|
# 一键启动所有服务
|
|
|
|
echo "========================================="
|
|
echo "启动 ValueFrontier 全栈服务"
|
|
echo "========================================="
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 1. 检查 MCP 服务器
|
|
echo -e "${YELLOW}[1/4] 检查 MCP 服务器 (端口 8900)...${NC}"
|
|
if lsof -Pi :8900 -sTCP:LISTEN -t >/dev/null ; then
|
|
echo -e "${GREEN}✓ MCP 服务器已运行${NC}"
|
|
else
|
|
echo -e "${YELLOW}启动 MCP 服务器...${NC}"
|
|
cd /home/ubuntu/vf_react
|
|
python3 mcp_server.py > mcp_server.log 2>&1 &
|
|
sleep 3
|
|
if lsof -Pi :8900 -sTCP:LISTEN -t >/dev/null ; then
|
|
echo -e "${GREEN}✓ MCP 服务器启动成功${NC}"
|
|
else
|
|
echo -e "${RED}✗ MCP 服务器启动失败,请检查日志${NC}"
|
|
fi
|
|
fi
|
|
|
|
# 2. 检查 Flask 主应用
|
|
echo -e "${YELLOW}[2/4] 检查 Flask 主应用 (端口 5001)...${NC}"
|
|
if lsof -Pi :5001 -sTCP:LISTEN -t >/dev/null ; then
|
|
echo -e "${GREEN}✓ Flask 应用已运行${NC}"
|
|
else
|
|
echo -e "${YELLOW}启动 Flask 应用...${NC}"
|
|
cd /home/ubuntu/vf_react
|
|
python3 app.py > flask_app.log 2>&1 &
|
|
sleep 5
|
|
if lsof -Pi :5001 -sTCP:LISTEN -t >/dev/null ; then
|
|
echo -e "${GREEN}✓ Flask 应用启动成功${NC}"
|
|
else
|
|
echo -e "${RED}✗ Flask 应用启动失败,请检查日志${NC}"
|
|
fi
|
|
fi
|
|
|
|
# 3. 检查 Next.js AgentChat
|
|
echo -e "${YELLOW}[3/4] 检查 AgentChat (端口 3000)...${NC}"
|
|
if lsof -Pi :3000 -sTCP:LISTEN -t >/dev/null ; then
|
|
echo -e "${GREEN}✓ AgentChat 已运行${NC}"
|
|
else
|
|
echo -e "${YELLOW}启动 AgentChat...${NC}"
|
|
cd /home/ubuntu/vf_react/src/views/AgentChat/neuratalk
|
|
|
|
# 检查是否已安装依赖
|
|
if [ ! -d "node_modules" ]; then
|
|
echo -e "${YELLOW}安装依赖...${NC}"
|
|
npm install
|
|
fi
|
|
|
|
# 检查环境配置
|
|
if [ ! -f ".env.local" ]; then
|
|
echo -e "${YELLOW}创建环境配置...${NC}"
|
|
cat > .env.local << EOL
|
|
NEXT_PUBLIC_API_URL=http://localhost:5001
|
|
NEXT_PUBLIC_MAIN_APP_URL=https://valuefrontier.cn
|
|
SESSION_COOKIE_NAME=session
|
|
PORT=3000
|
|
MCP_SERVER_URL=http://localhost:8900
|
|
EOL
|
|
fi
|
|
|
|
# 启动 Next.js
|
|
npm run dev > agentchat.log 2>&1 &
|
|
sleep 5
|
|
if lsof -Pi :3000 -sTCP:LISTEN -t >/dev/null ; then
|
|
echo -e "${GREEN}✓ AgentChat 启动成功${NC}"
|
|
else
|
|
echo -e "${RED}✗ AgentChat 启动失败,请检查日志${NC}"
|
|
fi
|
|
fi
|
|
|
|
# 4. 验证服务
|
|
echo -e "${YELLOW}[4/4] 验证服务状态...${NC}"
|
|
echo ""
|
|
echo "服务状态检查:"
|
|
echo "----------------------------------------"
|
|
|
|
# MCP 工具列表
|
|
echo -n "MCP 工具接口: "
|
|
if curl -s http://localhost:8900/tools > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✓ 正常${NC}"
|
|
else
|
|
echo -e "${RED}✗ 异常${NC}"
|
|
fi
|
|
|
|
# Flask Session
|
|
echo -n "Flask 认证接口: "
|
|
if curl -s http://localhost:5001/api/auth/session > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✓ 正常${NC}"
|
|
else
|
|
echo -e "${RED}✗ 异常${NC}"
|
|
fi
|
|
|
|
# Next.js
|
|
echo -n "AgentChat 应用: "
|
|
if curl -s http://localhost:3000/ai-chat > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✓ 正常${NC}"
|
|
else
|
|
echo -e "${RED}✗ 异常${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "========================================="
|
|
echo -e "${GREEN}访问地址:${NC}"
|
|
echo "- 本地测试: http://localhost:3000/ai-chat"
|
|
echo "- 生产环境: https://valuefrontier.cn/ai-chat"
|
|
echo ""
|
|
echo -e "${YELLOW}查看日志:${NC}"
|
|
echo "- MCP: tail -f mcp_server.log"
|
|
echo "- Flask: tail -f flask_app.log"
|
|
echo "- AgentChat: tail -f src/views/AgentChat/neuratalk/agentchat.log"
|
|
echo "=========================================" |