Files
nxxmdata/government-backend/deploy.sh
2025-10-17 17:29:11 +08:00

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"