start.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/bash
  2. # 游铛铛客户端后端启动脚本
  3. # 设置脚本遇到错误时退出
  4. set -e
  5. # 颜色输出
  6. RED='\033[0;31m'
  7. GREEN='\033[0;32m'
  8. YELLOW='\033[1;33m'
  9. NC='\033[0m' # No Color
  10. echo -e "${GREEN}游铛铛客户端后端启动脚本${NC}"
  11. # 检查Python是否安装
  12. if ! command -v python3 &> /dev/null; then
  13. echo -e "${RED}错误:未找到Python3,请先安装Python3${NC}"
  14. exit 1
  15. fi
  16. # 检查是否在backend-client目录
  17. if [ ! -f "app/main.py" ]; then
  18. echo -e "${RED}错误:请在backend-client目录下运行此脚本${NC}"
  19. exit 1
  20. fi
  21. # 检查依赖是否已安装
  22. if [ ! -d "venv" ] && [ ! -d ".venv" ]; then
  23. echo -e "${YELLOW}警告:未找到虚拟环境,建议先创建虚拟环境并安装依赖${NC}"
  24. echo -e "${YELLOW}运行:python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt${NC}"
  25. fi
  26. # 解析命令行参数
  27. MODE="dev"
  28. if [ "$1" = "prod" ] || [ "$1" = "production" ]; then
  29. MODE="prod"
  30. elif [ "$1" = "dev" ] || [ "$1" = "development" ]; then
  31. MODE="dev"
  32. fi
  33. echo -e "${GREEN}启动模式:$MODE${NC}"
  34. if [ "$MODE" = "dev" ]; then
  35. echo -e "${GREEN}启动客户端开发服务器...${NC}"
  36. echo -e "${YELLOW}API文档:http://localhost:9000/docs${NC}"
  37. uvicorn app.main:app --reload --host 0.0.0.0 --port 9000
  38. else
  39. echo -e "${GREEN}启动客户端生产服务器...${NC}"
  40. echo -e "${YELLOW}API文档:http://localhost:9000/docs${NC}"
  41. uvicorn app.main:app --host 0.0.0.0 --port 9000 --workers 4
  42. fi