$SERVER_IP = "49.232.209.156" $SERVER_USER = "ai-auto" $SERVER_PASS = "ashai@X1an" $DEPLOY_DIR = "/home/ai-auto/auto-deploy-demo" $DOMAIN = "ashai.com.cn" Write-Host "==========================================" Write-Host " 自动部署脚本 - 快速Demo演示系统" Write-Host "==========================================" Write-Host "" Write-Host "[提示] 请确保已安装OpenSSH客户端" Write-Host "Windows 10/11 可在 '设置 > 应用 > 可选功能' 中安装" Write-Host "" Write-Host "即将开始部署,请准备好输入服务器密码: $SERVER_PASS" Write-Host "" Read-Host "按Enter键继续..." $projectRoot = Split-Path -Parent $PSScriptRoot Set-Location $projectRoot Write-Host "" Write-Host "[1/8] 测试SSH连接..." ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 "$SERVER_USER@$SERVER_IP" "echo 'SSH连接成功'" if ($LASTEXITCODE -ne 0) { Write-Host "[错误] 无法连接到服务器" -ForegroundColor Red Read-Host "按Enter键退出" exit 1 } Write-Host "" Write-Host "[2/8] 安装Node.js环境..." ssh "$SERVER_USER@$SERVER_IP" @" if ! command -v node &> /dev/null; then echo '正在安装Node.js...' curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash - sudo yum install -y nodejs fi echo 'Node.js版本:' `$(node -v) echo 'NPM版本:' `$(npm -v) "@ Write-Host "" Write-Host "[3/8] 安装PM2进程管理器..." ssh "$SERVER_USER@$SERVER_IP" @" if ! command -v pm2 &> /dev/null; then sudo npm install -g pm2 fi echo 'PM2版本:' `$(pm2 -v) "@ Write-Host "" Write-Host "[4/8] 创建项目目录..." ssh "$SERVER_USER@$SERVER_IP" "mkdir -p $DEPLOY_DIR" Write-Host "" Write-Host "[5/8] 上传项目文件..." Write-Host "上传server目录..." scp -r "$projectRoot\server" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" Write-Host "上传projects目录..." scp -r "$projectRoot\projects" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" Write-Host "上传client/dist目录..." ssh "$SERVER_USER@$SERVER_IP" "mkdir -p $DEPLOY_DIR/client" scp -r "$projectRoot\client\dist\*" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/client/dist/" Write-Host "上传配置文件..." scp "$projectRoot\package.json" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" scp "$projectRoot\package-lock.json" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" scp "$projectRoot\.env" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" Write-Host "" Write-Host "[6/8] 安装项目依赖..." ssh "$SERVER_USER@$SERVER_IP" "cd $DEPLOY_DIR && npm install --production" Write-Host "" Write-Host "[7/8] 配置防火墙..." ssh "$SERVER_USER@$SERVER_IP" @" sudo firewall-cmd --permanent --add-port=8888/tcp sudo firewall-cmd --permanent --add-port=9000-9100/tcp sudo firewall-cmd --reload echo '防火墙配置完成' "@ Write-Host "" Write-Host "[8/8] 启动服务..." ssh "$SERVER_USER@$SERVER_IP" @" cd $DEPLOY_DIR pm2 delete all 2>/dev/null || true pm2 start server/index.js --name 'auto-deploy-demo' pm2 save pm2 startup | tail -n 1 | sudo bash 2>/dev/null || true echo '服务启动完成' "@ Write-Host "" Write-Host "==========================================" Write-Host " 部署完成!" Write-Host "==========================================" Write-Host "" Write-Host "访问地址: http://$DOMAIN`:8888" -ForegroundColor Green Write-Host "或者: http://$SERVER_IP`:8888" -ForegroundColor Green Write-Host "" Write-Host "默认账号: admin" Write-Host "默认密码: admin123" Write-Host "" Write-Host "常用命令:" Write-Host " 查看日志: ssh $SERVER_USER@$SERVER_IP 'pm2 logs auto-deploy-demo'" Write-Host " 重启服务: ssh $SERVER_USER@$SERVER_IP 'pm2 restart auto-deploy-demo'" Write-Host " 停止服务: ssh $SERVER_USER@$SERVER_IP 'pm2 stop auto-deploy-demo'" Write-Host "" Read-Host "按Enter键退出"