98 lines
2.0 KiB
Bash
98 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
# Government Backend 部署脚本
|
|
# 用于自动化部署 government-backend 服务
|
|
|
|
set -e
|
|
|
|
echo "🚀 开始部署 Government Backend..."
|
|
|
|
# 1. 检查环境
|
|
echo "📋 检查环境..."
|
|
if ! command -v node &> /dev/null; then
|
|
echo "❌ Node.js 未安装"
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v npm &> /dev/null; then
|
|
echo "❌ npm 未安装"
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v pm2 &> /dev/null; then
|
|
echo "📦 安装 PM2..."
|
|
npm install -g pm2
|
|
fi
|
|
|
|
# 2. 进入项目目录
|
|
PROJECT_DIR="/var/www/government-backend"
|
|
if [ ! -d "$PROJECT_DIR" ]; then
|
|
echo "❌ 项目目录不存在: $PROJECT_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
cd $PROJECT_DIR
|
|
|
|
# 3. 更新代码
|
|
echo "📥 更新代码..."
|
|
git pull origin main
|
|
|
|
# 4. 安装依赖
|
|
echo "📦 安装依赖..."
|
|
npm install --production
|
|
|
|
# 5. 创建日志目录
|
|
echo "📁 创建日志目录..."
|
|
mkdir -p logs
|
|
|
|
# 6. 检查配置文件
|
|
if [ ! -f ".env" ]; then
|
|
echo "⚠️ .env 文件不存在,创建默认配置..."
|
|
cat > .env << EOF
|
|
NODE_ENV=production
|
|
PORT=5352
|
|
DB_DIALECT=mysql
|
|
DB_HOST=129.211.213.226
|
|
DB_PORT=9527
|
|
DB_DATABASE=ningxia_zhengfu
|
|
DB_USER=root
|
|
DB_PASSWORD=aiotAiot123!
|
|
JWT_SECRET=government_super_secret_jwt_key_2024_very_long_and_secure
|
|
LOG_LEVEL=info
|
|
CORS_ORIGIN=*
|
|
UPLOAD_PATH=./uploads
|
|
MAX_FILE_SIZE=10485760
|
|
REDIS_HOST=localhost
|
|
REDIS_PORT=6379
|
|
REDIS_PASSWORD=
|
|
EOF
|
|
fi
|
|
|
|
# 7. 停止现有进程
|
|
echo "🛑 停止现有进程..."
|
|
pm2 stop government-backend 2>/dev/null || true
|
|
pm2 delete government-backend 2>/dev/null || true
|
|
|
|
# 8. 启动服务
|
|
echo "🚀 启动服务..."
|
|
pm2 start ecosystem.config.js --env production
|
|
|
|
# 9. 保存PM2配置
|
|
echo "💾 保存PM2配置..."
|
|
pm2 save
|
|
|
|
# 10. 设置开机自启
|
|
echo "🔄 设置开机自启..."
|
|
pm2 startup
|
|
|
|
# 11. 检查服务状态
|
|
echo "✅ 检查服务状态..."
|
|
sleep 3
|
|
pm2 status
|
|
|
|
echo ""
|
|
echo "🎉 部署完成!"
|
|
echo "📊 服务状态: pm2 status"
|
|
echo "📝 查看日志: pm2 logs government-backend"
|
|
echo "🔍 监控面板: pm2 monit"
|
|
echo "🌐 服务地址: http://localhost:5352" |