智慧水务管理系统 - 精河县供水工程综合管理平台

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #!/bin/bash
  2. # CRM 系统部署脚本
  3. set -e
  4. echo "=========================================="
  5. echo " 中小企业轻量级 CRM 系统 - 部署脚本"
  6. echo "=========================================="
  7. echo ""
  8. # 颜色定义
  9. GREEN='\033[0;32m'
  10. RED='\033[0;31m'
  11. YELLOW='\033[1;33m'
  12. NC='\033[0m'
  13. # 获取脚本所在目录
  14. SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
  15. cd "$SCRIPT_DIR"
  16. echo "📁 项目目录:$SCRIPT_DIR"
  17. echo ""
  18. # 检查 Node.js
  19. echo "🔍 检查 Node.js..."
  20. if ! command -v node &> /dev/null; then
  21. echo -e "${RED}❌ Node.js 未安装${NC}"
  22. exit 1
  23. fi
  24. echo -e "${GREEN}✅ Node.js $(node -v) 已安装${NC}"
  25. echo ""
  26. # 检查 PM2
  27. echo "🔍 检查 PM2..."
  28. if ! command -v pm2 &> /dev/null; then
  29. echo "正在安装 PM2..."
  30. npm install -g pm2
  31. fi
  32. echo -e "${GREEN}✅ PM2 $(pm2 -v) 已安装${NC}"
  33. echo ""
  34. # 安装依赖
  35. echo "📦 安装项目依赖..."
  36. npm install --production
  37. echo -e "${GREEN}✅ 依赖安装完成${NC}"
  38. echo ""
  39. # 配置环境变量
  40. echo "⚙️ 配置环境变量..."
  41. if [ ! -f .env ]; then
  42. cat > .env << EOF
  43. PORT=3002
  44. NODE_ENV=production
  45. EOF
  46. echo -e "${GREEN}✅ 已创建 .env 文件${NC}"
  47. else
  48. echo -e "${YELLOW}⚠️ .env 文件已存在${NC}"
  49. fi
  50. echo ""
  51. # 创建数据目录
  52. echo "📁 创建数据目录..."
  53. mkdir -p ./src/data ./logs
  54. chmod 755 ./src/data ./logs
  55. echo -e "${GREEN}✅ 目录已创建${NC}"
  56. echo ""
  57. # 停止旧版本
  58. echo "🛑 停止旧版本服务..."
  59. pm2 stop crm-system 2>/dev/null || true
  60. pm2 delete crm-system 2>/dev/null || true
  61. echo -e "${GREEN}✅ 旧版本已停止${NC}"
  62. echo ""
  63. # 启动服务
  64. echo "🚀 启动服务..."
  65. pm2 start ecosystem.config.js --env production
  66. sleep 3
  67. echo -e "${GREEN}✅ 服务已启动${NC}"
  68. echo ""
  69. # 保存 PM2 配置
  70. echo "💾 保存 PM2 配置..."
  71. pm2 save
  72. echo -e "${GREEN}✅ PM2 配置已保存${NC}"
  73. echo ""
  74. # 显示状态
  75. echo ""
  76. echo "=========================================="
  77. echo " 部署完成!"
  78. echo "=========================================="
  79. echo ""
  80. pm2 status crm-system
  81. echo ""
  82. echo "📍 访问地址:http://localhost:3002"
  83. echo "📋 查看日志:pm2 logs crm-system"
  84. echo "🛑 停止服务:pm2 stop crm-system"
  85. echo "🔄 重启服务:pm2 restart crm-system"
  86. echo ""
  87. echo -e "${GREEN}🎉 部署成功!${NC}"
  88. echo ""