auto-deploy-demo/deploy/deploy.sh

93 lines
2.8 KiB
Bash
Raw Normal View History

2026-02-23 06:31:59 +00:00
#!/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"
2026-02-23 06:31:59 +00:00
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 ""