#!/bin/bash set -e 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" echo "==========================================" echo " 自动部署脚本 - 快速Demo演示系统" echo "==========================================" echo "" echo "[1/7] 检查服务器连接..." sshpass -p "$SERVER_PASS" ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "echo '服务器连接成功'" echo "" echo "[2/7] 安装Node.js环境..." sshpass -p "$SERVER_PASS" ssh $SERVER_USER@$SERVER_IP << 'EOF' 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)" EOF echo "" echo "[3/7] 安装PM2进程管理器..." sshpass -p "$SERVER_PASS" ssh $SERVER_USER@$SERVER_IP << 'EOF' if ! command -v pm2 &> /dev/null; then sudo npm install -g pm2 fi echo "PM2版本: $(pm2 -v)" EOF echo "" echo "[4/7] 创建项目目录并传输文件..." sshpass -p "$SERVER_PASS" ssh $SERVER_USER@$SERVER_IP "mkdir -p $DEPLOY_DIR" sshpass -p "$SERVER_PASS" scp -r ../server $SERVER_USER@$SERVER_IP:$DEPLOY_DIR/ sshpass -p "$SERVER_PASS" scp -r ../projects $SERVER_USER@$SERVER_IP:$DEPLOY_DIR/ sshpass -p "$SERVER_PASS" scp -r ../client/dist $SERVER_USER@$SERVER_IP:$DEPLOY_DIR/client/ sshpass -p "$SERVER_PASS" scp ../package.json $SERVER_USER@$SERVER_IP:$DEPLOY_DIR/ sshpass -p "$SERVER_PASS" scp ../package-lock.json $SERVER_USER@$SERVER_IP:$DEPLOY_DIR/ sshpass -p "$SERVER_PASS" scp ../.env $SERVER_USER@$SERVER_IP:$DEPLOY_DIR/ echo "" echo "[5/7] 安装项目依赖..." sshpass -p "$SERVER_PASS" ssh $SERVER_USER@$SERVER_IP << EOF cd $DEPLOY_DIR npm install --production EOF echo "" echo "[6/7] 配置防火墙..." sshpass -p "$SERVER_PASS" ssh $SERVER_USER@$SERVER_IP << 'EOF' sudo firewall-cmd --permanent --add-port=8888/tcp sudo firewall-cmd --permanent --add-port=9000-9100/tcp sudo firewall-cmd --reload echo "防火墙配置完成" EOF echo "" echo "[7/7] 启动服务..." sshpass -p "$SERVER_PASS" ssh $SERVER_USER@$SERVER_IP << EOF 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 || true EOF echo "" echo "==========================================" echo " 部署完成!" echo "==========================================" echo "" echo "访问地址: http://$DOMAIN:8888" echo "或者: http://$SERVER_IP:8888" echo "" echo "默认账号: admin" echo "默认密码: 1221xian" echo "" echo "常用命令:" echo " 查看日志: ssh $SERVER_USER@$SERVER_IP 'pm2 logs auto-deploy-demo'" echo " 重启服务: ssh $SERVER_USER@$SERVER_IP 'pm2 restart auto-deploy-demo'" echo " 停止服务: ssh $SERVER_USER@$SERVER_IP 'pm2 stop auto-deploy-demo'" echo ""