auto-deploy-demo/deploy/deploy.ps1

93 lines
3.7 KiB
PowerShell
Raw Normal View History

2026-02-23 06:31:59 +00:00
$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"
2026-02-23 06:31:59 +00:00
Write-Host "=========================================="
Write-Host ""
Write-Host "[Tip] Make sure OpenSSH client is installed"
Write-Host "Windows 10/11: Settings > Apps > Optional Features"
2026-02-23 06:31:59 +00:00
Write-Host ""
Write-Host "Server password: $SERVER_PASS"
2026-02-23 06:31:59 +00:00
Write-Host ""
Read-Host "Press Enter to continue..."
2026-02-23 06:31:59 +00:00
$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'"
2026-02-23 06:31:59 +00:00
if ($LASTEXITCODE -ne 0) {
Write-Host "[Error] Cannot connect to server" -ForegroundColor Red
Read-Host "Press Enter to exit"
2026-02-23 06:31:59 +00:00
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
2026-02-23 06:31:59 +00:00
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
2026-02-23 06:31:59 +00:00
Write-Host ""
Write-Host "[4/8] Creating project directory..."
2026-02-23 06:31:59 +00:00
ssh "$SERVER_USER@$SERVER_IP" "mkdir -p $DEPLOY_DIR"
Write-Host ""
Write-Host "[5/8] Uploading project files..."
Write-Host "Uploading server directory..."
2026-02-23 06:31:59 +00:00
scp -r "$projectRoot\server" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/"
Write-Host "Uploading projects directory..."
2026-02-23 06:31:59 +00:00
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"
2026-02-23 06:31:59 +00:00
scp -r "$projectRoot\client\dist\*" "$SERVER_USER@$SERVER_IP`:$DEPLOY_DIR/client/dist/"
Write-Host "Uploading config files..."
2026-02-23 06:31:59 +00:00
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..."
2026-02-23 06:31:59 +00:00
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
2026-02-23 06:31:59 +00:00
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
2026-02-23 06:31:59 +00:00
Write-Host ""
Write-Host "=========================================="
Write-Host " Deployment Complete!"
2026-02-23 06:31:59 +00:00
Write-Host "=========================================="
Write-Host ""
Write-Host "URL: http://$DOMAIN`:8888" -ForegroundColor Green
Write-Host "Or: http://$SERVER_IP`:8888" -ForegroundColor Green
2026-02-23 06:31:59 +00:00
Write-Host ""
Write-Host "Username: admin"
Write-Host "Password: 1221xian"
2026-02-23 06:31:59 +00:00
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'"
2026-02-23 06:31:59 +00:00
Write-Host ""
Read-Host "Press Enter to exit"