backend-start.sh 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/bin/bash
  2. # Tolan后端服务启动脚本
  3. # 独立启动后端WebSocket服务器
  4. set -e
  5. # 颜色定义
  6. RED='\033[0;31m'
  7. GREEN='\033[0;32m'
  8. YELLOW='\033[1;33m'
  9. BLUE='\033[0;34m'
  10. NC='\033[0m' # No Color
  11. # 脚本目录和项目根目录
  12. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  13. PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
  14. BACKEND_DIR="$PROJECT_ROOT/backend"
  15. echo -e "${BLUE}Tolan后端服务启动脚本${NC}"
  16. echo "==============================="
  17. # 检查后端目录是否存在
  18. if [ ! -d "$BACKEND_DIR" ]; then
  19. echo -e "${RED}错误: 后端目录不存在: $BACKEND_DIR${NC}"
  20. exit 1
  21. fi
  22. # 检查run.py文件是否存在
  23. if [ ! -f "$BACKEND_DIR/run.py" ]; then
  24. echo -e "${RED}错误: 启动文件不存在: $BACKEND_DIR/run.py${NC}"
  25. exit 1
  26. fi
  27. # 检查SSL证书文件
  28. SSL_DIR="$PROJECT_ROOT/ssl"
  29. SSL_CERT_FILE="$SSL_DIR/tolan.crt"
  30. SSL_KEY_FILE="$SSL_DIR/tolan.key"
  31. if [ ! -f "$SSL_CERT_FILE" ]; then
  32. echo -e "${YELLOW}警告: SSL证书文件不存在: $SSL_CERT_FILE${NC}"
  33. echo -e "${YELLOW}建议运行 scripts/generate-ssl.sh 生成SSL证书${NC}"
  34. fi
  35. if [ ! -f "$SSL_KEY_FILE" ]; then
  36. echo -e "${YELLOW}警告: SSL私钥文件不存在: $SSL_KEY_FILE${NC}"
  37. echo -e "${YELLOW}建议运行 scripts/generate-ssl.sh 生成SSL证书${NC}"
  38. fi
  39. # 检查Python环境
  40. echo -e "${BLUE}检查Python环境...${NC}"
  41. if ! command -v python &> /dev/null; then
  42. echo -e "${RED}错误: 未找到Python${NC}"
  43. exit 1
  44. fi
  45. echo "Python版本: $(python --version)"
  46. # 切换到后端目录
  47. echo -e "${BLUE}切换到后端目录: $BACKEND_DIR${NC}"
  48. cd "$BACKEND_DIR"
  49. # 设置环境变量
  50. echo -e "${BLUE}设置环境变量...${NC}"
  51. export WS_HOST="0.0.0.0"
  52. export WS_PORT="8765"
  53. export WSS_PORT="8766"
  54. export SSL_ENABLED="true"
  55. export SSL_CERT_FILE="$SSL_CERT_FILE"
  56. export SSL_KEY_FILE="$SSL_KEY_FILE"
  57. export LOG_LEVEL="DEBUG"
  58. # 显示配置信息
  59. echo -e "${GREEN}服务配置信息:${NC}"
  60. echo " WebSocket主机: $WS_HOST"
  61. echo " WebSocket端口: $WS_PORT"
  62. echo " WebSocket SSL端口: $WSS_PORT"
  63. echo " SSL启用: $SSL_ENABLED"
  64. echo " SSL证书文件: $SSL_CERT_FILE"
  65. echo " SSL私钥文件: $SSL_KEY_FILE"
  66. echo " 日志级别: $LOG_LEVEL"
  67. echo ""
  68. # 启动后端服务
  69. echo -e "${GREEN}启动后端WebSocket服务器...${NC}"
  70. echo -e "${YELLOW}按 Ctrl+C 停止服务${NC}"
  71. echo ""
  72. python run.py