| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #!/bin/bash
- # SaaS 平台部署脚本
- # 使用方法:在服务器上执行 bash deploy.sh
-
- set -e
-
- echo "🚀 开始部署 SaaS 多租户平台..."
-
- # 配置
- DEPLOY_DIR="/opt/saas-platform"
- BACKUP_DIR="/opt/saas-platform-backup-$(date +%Y%m%d-%H%M%S)"
-
- # 1. 备份旧版本(如果存在)
- if [ -d "$DEPLOY_DIR" ]; then
- echo "📦 备份旧版本..."
- cp -r "$DEPLOY_DIR" "$BACKUP_DIR"
- echo "✅ 备份完成:$BACKUP_DIR"
- fi
-
- # 2. 创建部署目录
- mkdir -p "$DEPLOY_DIR"
- cd "$DEPLOY_DIR"
-
- # 3. 解压新版本
- echo "📦 解压新版本..."
- tar -xzf saas-platform.tar.gz --strip-components=1
- echo "✅ 解压完成"
-
- # 4. 安装依赖
- echo "📦 安装 npm 依赖..."
- cd "$DEPLOY_DIR"
- npm install --production
- echo "✅ 依赖安装完成"
-
- # 5. 初始化数据库
- echo "🗄️ 初始化数据库..."
- npm run init-db
- echo "✅ 数据库初始化完成"
-
- # 6. 配置 systemd 服务
- echo "⚙️ 配置 systemd 服务..."
- cat > /etc/systemd/system/saas-platform.service << EOF
- [Unit]
- Description=SaaS 多租户平台
- After=network.target
-
- [Service]
- Type=simple
- User=root
- WorkingDirectory=$DEPLOY_DIR
- ExecStart=/usr/bin/node src/server.js
- Restart=always
- RestartSec=10
- Environment=NODE_ENV=production
-
- [Install]
- WantedBy=multi-user.target
- EOF
-
- # 7. 启动服务
- echo "🚀 启动服务..."
- systemctl daemon-reload
- systemctl enable saas-platform
- systemctl restart saas-platform
-
- # 8. 检查状态
- echo ""
- echo "==========================================="
- systemctl status saas-platform --no-pager
- echo "==========================================="
- echo ""
- echo "✅ 部署完成!"
- echo "📍 服务地址:http://localhost:3000"
- echo "📍 日志查看:journalctl -u saas-platform -f"
- echo ""
|