$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 " Auto Deploy Script - Demo System" Write-Host "==========================================" Write-Host "" Write-Host "[Tip] Make sure OpenSSH client is installed" Write-Host "Windows 10/11: Settings > Apps > Optional Features" Write-Host "" Write-Host "Server password: $SERVER_PASS" Write-Host "" Read-Host "Press Enter to continue..." $projectRoot = Split-Path -Parent $PSScriptRoot Set-Location $projectRoot Write-Host "" 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 "[Error] Cannot connect to server" -ForegroundColor Red Read-Host "Press Enter to exit" exit 1 } Write-Host "" 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] 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] Creating project directory..." ssh "$SERVER_USER@$SERVER_IP" "mkdir -p $DEPLOY_DIR" Write-Host "" Write-Host "[5/8] Uploading project files..." Write-Host "Uploading server directory..." scp -r "$projectRoot\server" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" Write-Host "Uploading projects directory..." scp -r "$projectRoot\projects" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/" 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 "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] Installing dependencies..." ssh "$SERVER_USER@$SERVER_IP" "cd $DEPLOY_DIR && npm install --production" Write-Host "" 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] 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 " Deployment Complete!" Write-Host "==========================================" Write-Host "" Write-Host "URL: http://$DOMAIN`:8888" -ForegroundColor Green Write-Host "Or: http://$SERVER_IP`:8888" -ForegroundColor Green Write-Host "" Write-Host "Username: admin" Write-Host "Password: 1221xian" Write-Host "" 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 "Press Enter to exit"