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

deploy.sh 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/bin/bash
  2. # SaaS 平台部署脚本
  3. # 使用方法:在服务器上执行 bash deploy.sh
  4. set -e
  5. echo "🚀 开始部署 SaaS 多租户平台..."
  6. # 配置
  7. DEPLOY_DIR="/opt/saas-platform"
  8. BACKUP_DIR="/opt/saas-platform-backup-$(date +%Y%m%d-%H%M%S)"
  9. # 1. 备份旧版本(如果存在)
  10. if [ -d "$DEPLOY_DIR" ]; then
  11. echo "📦 备份旧版本..."
  12. cp -r "$DEPLOY_DIR" "$BACKUP_DIR"
  13. echo "✅ 备份完成:$BACKUP_DIR"
  14. fi
  15. # 2. 创建部署目录
  16. mkdir -p "$DEPLOY_DIR"
  17. cd "$DEPLOY_DIR"
  18. # 3. 解压新版本
  19. echo "📦 解压新版本..."
  20. tar -xzf saas-platform.tar.gz --strip-components=1
  21. echo "✅ 解压完成"
  22. # 4. 安装依赖
  23. echo "📦 安装 npm 依赖..."
  24. cd "$DEPLOY_DIR"
  25. npm install --production
  26. echo "✅ 依赖安装完成"
  27. # 5. 初始化数据库
  28. echo "🗄️ 初始化数据库..."
  29. npm run init-db
  30. echo "✅ 数据库初始化完成"
  31. # 6. 配置 systemd 服务
  32. echo "⚙️ 配置 systemd 服务..."
  33. cat > /etc/systemd/system/saas-platform.service << EOF
  34. [Unit]
  35. Description=SaaS 多租户平台
  36. After=network.target
  37. [Service]
  38. Type=simple
  39. User=root
  40. WorkingDirectory=$DEPLOY_DIR
  41. ExecStart=/usr/bin/node src/server.js
  42. Restart=always
  43. RestartSec=10
  44. Environment=NODE_ENV=production
  45. [Install]
  46. WantedBy=multi-user.target
  47. EOF
  48. # 7. 启动服务
  49. echo "🚀 启动服务..."
  50. systemctl daemon-reload
  51. systemctl enable saas-platform
  52. systemctl restart saas-platform
  53. # 8. 检查状态
  54. echo ""
  55. echo "==========================================="
  56. systemctl status saas-platform --no-pager
  57. echo "==========================================="
  58. echo ""
  59. echo "✅ 部署完成!"
  60. echo "📍 服务地址:http://localhost:3000"
  61. echo "📍 日志查看:journalctl -u saas-platform -f"
  62. echo ""