#!/bin/bash # CRM 系统 - 远程服务器部署脚本 set -e SERVER_IP="42.121.167.63" SERVER_USER="root" SERVER_PASS="Yunmei126!" REMOTE_DIR="/opt/crm" echo "==========================================" echo " CRM 系统 - 远程服务器部署" echo "==========================================" echo "" echo "📍 服务器:${SERVER_USER}@${SERVER_IP}" echo "📁 目标目录:${REMOTE_DIR}" echo "" # 检查 sshpass if ! command -v sshpass &> /dev/null; then echo "⚠️ 正在安装 sshpass..." apt-get install -y sshpass || yum install -y sshpass || { echo "❌ 无法安装 sshpass,请手动安装或使用密钥认证" exit 1 } fi # 测试连接 echo "🔍 测试服务器连接..." if sshpass -p "${SERVER_PASS}" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${SERVER_USER}@${SERVER_IP} "echo '连接成功'" 2>/dev/null; then echo -e "✅ 服务器连接成功\n" else echo -e "❌ 服务器连接失败\n" exit 1 fi # 创建远程目录 echo "📁 创建远程目录..." sshpass -p "${SERVER_PASS}" ssh -o StrictHostKeyChecking=no ${SERVER_USER}@${SERVER_IP} "mkdir -p ${REMOTE_DIR}" echo -e "✅ 目录已创建\n" # 上传项目文件 echo "📦 上传项目文件..." sshpass -p "${SERVER_PASS}" scp -o StrictHostKeyChecking=no -r /root/.openclaw/workspace/中小企业需要轻量级-crm-系统/* ${SERVER_USER}@${SERVER_IP}:${REMOTE_DIR}/ echo -e "✅ 文件已上传\n" # 执行远程部署 echo "🚀 执行远程部署..." sshpass -p "${SERVER_PASS}" ssh -o StrictHostKeyChecking=no ${SERVER_USER}@${SERVER_IP} << 'ENDSSH' cd /opt/crm # 检查 Node.js if ! command -v node &> /dev/null; then echo "📦 安装 Node.js..." curl -fsSL https://deb.nodesource.com/setup_18.x | bash - apt-get install -y nodejs fi # 安装 PM2 if ! command -v pm2 &> /dev/null; then echo "📦 安装 PM2..." npm install -g pm2 fi # 安装依赖 echo "📦 安装项目依赖..." npm install --production # 配置环境变量 echo "⚙️ 配置环境变量..." cat > .env << EOF PORT=3002 NODE_ENV=production EOF # 创建目录 mkdir -p src/data logs # 停止旧服务 echo "🛑 停止旧服务..." pm2 stop crm-system 2>/dev/null || true pm2 delete crm-system 2>/dev/null || true # 启动服务 echo "🚀 启动服务..." pm2 start ecosystem.config.js --env production # 保存配置 echo "💾 保存 PM2 配置..." pm2 save # 设置开机自启 pm2 startup 2>/dev/null || true echo "" echo "==========================================" echo " 部署完成!" echo "==========================================" echo "" pm2 status crm-system echo "" echo "📍 访问地址:http://${SERVER_IP}:3002" echo "📋 查看日志:pm2 logs crm-system" echo "" ENDSSH echo "" echo "✅ 部署完成!" echo "" echo "🌐 访问地址:http://${SERVER_IP}:3002" echo ""