| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #!/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 ""
|