85 lines
2.1 KiB
Bash
85 lines
2.1 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# 爱鉴花后端服务器部署脚本
|
||
|
|
# 在CentOS服务器上执行
|
||
|
|
|
||
|
|
SERVER_DIR="/data/nodejs/aijianhua"
|
||
|
|
LOG_DIR="$SERVER_DIR/logs"
|
||
|
|
UPLOAD_DIR="$SERVER_DIR/uploads"
|
||
|
|
|
||
|
|
# 颜色输出
|
||
|
|
RED='\033[0;31m'
|
||
|
|
GREEN='\033[0;32m'
|
||
|
|
YELLOW='\033[1;33m'
|
||
|
|
NC='\033[0m' # No Color
|
||
|
|
|
||
|
|
echo -e "${GREEN}🚀 开始部署爱鉴花后端服务...${NC}"
|
||
|
|
|
||
|
|
# 检查Node.js是否安装
|
||
|
|
if ! command -v node &> /dev/null; then
|
||
|
|
echo -e "${RED}❌ Node.js 未安装,请先安装 Node.js${NC}"
|
||
|
|
echo "安装命令: curl -fsSL https://rpm.nodesource.com/setup_18.x | bash - && yum install -y nodejs"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 检查PM2是否安装
|
||
|
|
if ! command -v pm2 &> /dev/null; then
|
||
|
|
echo -e "${YELLOW}⚠️ PM2 未安装,正在安装...${NC}"
|
||
|
|
npm install -g pm2
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo -e "${RED}❌ PM2 安装失败${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo -e "${GREEN}✅ PM2 安装成功${NC}"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 创建必要的目录
|
||
|
|
mkdir -p "$LOG_DIR" "$UPLOAD_DIR"
|
||
|
|
echo -e "${GREEN}✅ 创建日志和上传目录${NC}"
|
||
|
|
|
||
|
|
# 进入项目目录
|
||
|
|
cd "$SERVER_DIR"
|
||
|
|
|
||
|
|
# 安装生产依赖
|
||
|
|
echo -e "${YELLOW}📦 安装生产依赖...${NC}"
|
||
|
|
npm install --production
|
||
|
|
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo -e "${RED}❌ 依赖安装失败${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo -e "${GREEN}✅ 依赖安装完成${NC}"
|
||
|
|
|
||
|
|
# 停止现有服务(如果存在)
|
||
|
|
echo -e "${YELLOW}🛑 停止现有服务...${NC}"
|
||
|
|
pm2 delete aijianhua-backend 2>/dev/null || true
|
||
|
|
|
||
|
|
# 启动服务
|
||
|
|
echo -e "${YELLOW}🚀 启动服务...${NC}"
|
||
|
|
pm2 start ecosystem.config.js
|
||
|
|
|
||
|
|
if [ $? -eq 0 ]; then
|
||
|
|
echo -e "${GREEN}✅ 服务启动成功${NC}"
|
||
|
|
|
||
|
|
# 设置开机自启
|
||
|
|
pm2 startup
|
||
|
|
pm2 save
|
||
|
|
|
||
|
|
echo -e "${GREEN}📊 服务状态:${NC}"
|
||
|
|
pm2 status
|
||
|
|
|
||
|
|
echo -e "${GREEN}🌐 服务信息:${NC}"
|
||
|
|
echo " 服务名称: aijianhua-backend"
|
||
|
|
echo " 运行端口: 3330"
|
||
|
|
echo " 环境: production"
|
||
|
|
echo " API文档: https://wapi.aijianhua.com/api-docs"
|
||
|
|
echo " 健康检查: https://wapi.aijianhua.com/health"
|
||
|
|
|
||
|
|
else
|
||
|
|
echo -e "${RED}❌ 服务启动失败${NC}"
|
||
|
|
echo "查看日志: tail -f $LOG_DIR/error.log"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo -e "${GREEN}🎉 部署完成!${NC}"
|