#!/bin/bash # fumamxCRM 启动脚本(双端口模式) # 前端: 10000, 后端: 10001 set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BACKEND_DIR="$SCRIPT_DIR/backend" FRONTEND_DIR="$SCRIPT_DIR/frontend" LOG_FILE="$SCRIPT_DIR/fumamxCRM.log" # 颜色 GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' echo -e "${GREEN}🚀 启动 fumamxCRM (双端口模式)...${NC}" # 检查并结束现有进程 echo "📋 检查现有进程..." BACKEND_PID=$(lsof -t -i:10001 2>/dev/null || true) FRONTEND_PID=$(lsof -t -i:10000 2>/dev/null || true) if [ -n "$BACKEND_PID" ]; then echo -e "${YELLOW}⚠️ 结束后端进程: $BACKEND_PID${NC}" kill $BACKEND_PID 2>/dev/null || true sleep 1 fi if [ -n "$FRONTEND_PID" ]; then echo -e "${YELLOW}⚠️ 结束前端进程: $FRONTEND_PID${NC}" kill $FRONTEND_PID 2>/dev/null || true sleep 1 fi # 启动后端 echo -e "${GREEN}📡 启动后端 API (端口: 10001)...${NC}" cd "$BACKEND_DIR" nohup python3 -c " import uvicorn from app import app uvicorn.run(app, host='0.0.0.0', port=10001) " >> "$LOG_FILE" 2>&1 & BACKEND_PID=$! echo " 后端 PID: $BACKEND_PID" # 等待后端启动 sleep 3 # 启动前端(用 SPA 服务器支持前端路由) echo -e "${GREEN}🌐 启动前端页面 (端口: 10000)...${NC}" cd "$SCRIPT_DIR" nohup python3 frontend_server.py >> "$LOG_FILE" 2>&1 & FRONTEND_PID=$! echo " 前端 PID: $FRONTEND_PID" # 保存 PID echo "$BACKEND_PID" > "$SCRIPT_DIR/.backend.pid" echo "$FRONTEND_PID" > "$SCRIPT_DIR/.frontend.pid" sleep 2 echo "" echo -e "${GREEN}✓ fumamxCRM 已启动!${NC}" echo "" echo " 前端页面: http://129.211.173.87:10000" echo " 后端 API: http://129.211.173.87:10001" echo " 默认账号: admin / abcd1234" echo "" echo " 📋 日志文件: $LOG_FILE" echo " 🛑 停止服务: bash stop.sh"