diff --git a/deploy/deploy.ps1 b/deploy/deploy.ps1 index fa7d8f6..e86c054 100644 --- a/deploy/deploy.ps1 +++ b/deploy/deploy.ps1 @@ -5,109 +5,88 @@ $DEPLOY_DIR = "/home/ai-auto/auto-deploy-demo" $DOMAIN = "ashai.com.cn" Write-Host "==========================================" -Write-Host " 自动部署脚本 - 快速Demo演示系统" +Write-Host " Auto Deploy Script - Demo System" Write-Host "==========================================" Write-Host "" -Write-Host "[提示] 请确保已安装OpenSSH客户端" -Write-Host "Windows 10/11 可在 '设置 > 应用 > 可选功能' 中安装" +Write-Host "[Tip] Make sure OpenSSH client is installed" +Write-Host "Windows 10/11: Settings > Apps > Optional Features" Write-Host "" -Write-Host "即将开始部署,请准备好输入服务器密码: $SERVER_PASS" +Write-Host "Server password: $SERVER_PASS" Write-Host "" -Read-Host "按Enter键继续..." +Read-Host "Press Enter to continue..." $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连接成功'" +Write-Host "[1/8] Testing SSH connection..." +ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 "$SERVER_USER@$SERVER_IP" "echo 'SSH connected'" if ($LASTEXITCODE -ne 0) { - Write-Host "[错误] 无法连接到服务器" -ForegroundColor Red - Read-Host "按Enter键退出" + Write-Host "[Error] Cannot connect to server" -ForegroundColor Red + Read-Host "Press Enter to exit" 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 "[2/8] Installing Node.js..." +$installNodeCmd = "if ! command -v node &> /dev/null; then echo 'Installing Node.js...'; curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -; sudo yum install -y nodejs; fi; echo 'Node version:' `$(`node -v); echo 'NPM version:' `$(`npm -v)" +ssh "$SERVER_USER@$SERVER_IP" $installNodeCmd 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 "[3/8] Installing PM2..." +$installPm2Cmd = "if ! command -v pm2 &> /dev/null; then sudo npm install -g pm2; fi; echo 'PM2 version:' `$(`pm2 -v)" +ssh "$SERVER_USER@$SERVER_IP" $installPm2Cmd Write-Host "" -Write-Host "[4/8] 创建项目目录..." +Write-Host "[4/8] Creating project directory..." ssh "$SERVER_USER@$SERVER_IP" "mkdir -p $DEPLOY_DIR" Write-Host "" -Write-Host "[5/8] 上传项目文件..." -Write-Host "上传server目录..." +Write-Host "[5/8] Uploading project files..." +Write-Host "Uploading server directory..." scp -r "$projectRoot\server" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" -Write-Host "上传projects目录..." +Write-Host "Uploading projects directory..." scp -r "$projectRoot\projects" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" -Write-Host "上传client/dist目录..." -ssh "$SERVER_USER@$SERVER_IP" "mkdir -p $DEPLOY_DIR/client" +Write-Host "Uploading client/dist directory..." +ssh "$SERVER_USER@$SERVER_IP" "mkdir -p $DEPLOY_DIR/client/dist" scp -r "$projectRoot\client\dist\*" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/client/dist/" -Write-Host "上传配置文件..." +Write-Host "Uploading config files..." 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] 安装项目依赖..." +Write-Host "[6/8] Installing dependencies..." 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 "[7/8] Configuring firewall..." +$firewallCmd = "sudo firewall-cmd --permanent --add-port=8888/tcp; sudo firewall-cmd --permanent --add-port=9000-9100/tcp; sudo firewall-cmd --reload; echo 'Firewall configured'" +ssh "$SERVER_USER@$SERVER_IP" $firewallCmd 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 "[8/8] Starting service..." +$startCmd = "cd $DEPLOY_DIR; pm2 delete all 2>/dev/null; pm2 start server/index.js --name 'auto-deploy-demo'; pm2 save; pm2 startup | tail -n 1 | sudo bash 2>/dev/null; echo 'Service started'" +ssh "$SERVER_USER@$SERVER_IP" $startCmd Write-Host "" Write-Host "==========================================" -Write-Host " 部署完成!" +Write-Host " Deployment Complete!" Write-Host "==========================================" Write-Host "" -Write-Host "访问地址: http://$DOMAIN`:8888" -ForegroundColor Green -Write-Host "或者: http://$SERVER_IP`:8888" -ForegroundColor Green +Write-Host "URL: http://$DOMAIN`:8888" -ForegroundColor Green +Write-Host "Or: http://$SERVER_IP`:8888" -ForegroundColor Green Write-Host "" -Write-Host "默认账号: admin" -Write-Host "默认密码: 1221xian" +Write-Host "Username: admin" +Write-Host "Password: 1221xian" 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 "Useful commands:" +Write-Host " View logs: ssh $SERVER_USER@$SERVER_IP 'pm2 logs auto-deploy-demo'" +Write-Host " Restart: ssh $SERVER_USER@$SERVER_IP 'pm2 restart auto-deploy-demo'" +Write-Host " Stop: ssh $SERVER_USER@$SERVER_IP 'pm2 stop auto-deploy-demo'" Write-Host "" -Read-Host "按Enter键退出" +Read-Host "Press Enter to exit"