#!/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 ""