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