- `backend/.env.production`:生产环境变量配置 - `backend/ecosystem.config.js`:PM2生态系统配置文件 - `scripts/nginx-aijianhua.conf`:Nginx配置文件 - `scripts/server-deploy.sh`:服务器部署脚本 - `scripts/sync-to-server.sh`:代码同步脚本 - `docs/生产环境部署指南.md`:生产环境部署指南文档 同时移除了`package.json`中不再使用的依赖项:- `redis`- `socket.io` - `sqlite3`这些更改将有助于简化生产环境的部署流程,并确保服务能够稳定运行。```
62 lines
1.6 KiB
Bash
62 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
# 爱鉴花后端服务同步脚本
|
|
# 将本地代码同步到CentOS服务器
|
|
|
|
SERVER="www.jiebanke.com"
|
|
SERVER_USER="root"
|
|
SERVER_DIR="/data/nodejs/aijianhua"
|
|
LOCAL_DIR="e:/vue/aijianhua/backend"
|
|
|
|
# 需要排除的文件和目录
|
|
exclude_list=(
|
|
"--exclude=.env"
|
|
"--exclude=.env.development"
|
|
"--exclude=.env.example"
|
|
"--exclude=node_modules/"
|
|
"--exclude=uploads/"
|
|
"--exclude=database.sqlite"
|
|
"--exclude=*.log"
|
|
"--exclude=.git/"
|
|
"--exclude=.idea/"
|
|
"--exclude=*.bat"
|
|
"--exclude=*.sh"
|
|
)
|
|
|
|
echo "🚀 开始同步爱鉴花后端代码到服务器..."
|
|
echo "📁 服务器: $SERVER"
|
|
echo "📂 目标目录: $SERVER_DIR"
|
|
echo "📦 本地目录: $LOCAL_DIR"
|
|
echo ""
|
|
|
|
# 检查rsync是否安装
|
|
if ! command -v rsync &> /dev/null; then
|
|
echo "❌ rsync 未安装,请先安装 rsync"
|
|
echo "Ubuntu/Debian: sudo apt-get install rsync"
|
|
echo "CentOS/RHEL: sudo yum install rsync"
|
|
echo "macOS: brew install rsync"
|
|
exit 1
|
|
fi
|
|
|
|
# 执行同步
|
|
rsync -avz --delete \
|
|
"${exclude_list[@]}" \
|
|
-e "ssh -p 22" \
|
|
"$LOCAL_DIR/" \
|
|
"$SERVER_USER@$SERVER:$SERVER_DIR/"
|
|
|
|
# 检查同步结果
|
|
if [ $? -eq 0 ]; then
|
|
echo ""
|
|
echo "✅ 同步完成!"
|
|
echo "📋 下一步操作:"
|
|
echo " 1. 登录服务器: ssh $SERVER_USER@$SERVER"
|
|
echo " 2. 进入目录: cd $SERVER_DIR"
|
|
echo " 3. 安装依赖: npm install --production"
|
|
echo " 4. 启动服务: pm2 start ecosystem.config.js"
|
|
echo " 5. 保存配置: pm2 save"
|
|
else
|
|
echo ""
|
|
echo "❌ 同步失败,请检查网络连接和服务器配置"
|
|
exit 1
|
|
fi |