Files
aijianhua/scripts/server-deploy.sh

85 lines
2.1 KiB
Bash
Raw Permalink Normal View History

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