#!/bin/bash # ETest-LIMS 手动部署脚本(非 Docker 方式) # 适用于:前端用系统 Nginx,后端用 Docker set -e echo "========================================" echo "ETest-LIMS 手动部署脚本" echo "========================================" echo "" # 配置 BACKEND_DIR="/opt/ETest-Vue-FastAPI/ruoyi-fastapi-backend" FRONTEND_DIR="/opt/ETest-Vue-FastAPI/ruoyi-fastapi-frontend" NGINX_ROOT="/var/www/etest-lims" # 检查是否为 root if [ "$EUID" -ne 0 ]; then echo "[!] 请使用 root 权限运行: sudo ./deploy-manual.sh" exit 1 fi echo "[*] 开始部署..." echo "" # 步骤 1:安装依赖 echo "========================================" echo "Step 1: 安装系统依赖" echo "========================================" apt-get update apt-get install -y nginx docker.io docker-compose nodejs npm echo "[OK] 依赖安装完成" echo "" # 步骤 2:构建前端 echo "========================================" echo "Step 2: 构建前端" echo "========================================" cd $FRONTEND_DIR # 安装依赖 npm install # 构建生产包 npm run build # 复制到 Nginx 目录 mkdir -p $NGINX_ROOT cp -r dist/* $NGINX_ROOT/ echo "[OK] 前端构建完成" echo "" # 步骤 3:配置 Nginx echo "========================================" echo "Step 3: 配置 Nginx" echo "========================================" # 备份原配置 cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak 2>/dev/null || true # 复制新配置 cp /opt/ETest-Vue-FastAPI/nginx-manual.conf /etc/nginx/sites-available/etest-lims # 启用配置 ln -sf /etc/nginx/sites-available/etest-lims /etc/nginx/sites-enabled/ rm -f /etc/nginx/sites-enabled/default 2>/dev/null || true # 测试配置 nginx -t # 重启 Nginx systemctl restart nginx systemctl enable nginx echo "[OK] Nginx 配置完成" echo "" # 步骤 4:启动后端(Docker) echo "========================================" echo "Step 4: 启动后端服务" echo "========================================" cd /opt/ETest-Vue-FastAPI # 只启动 MySQL、Redis 和后端 docker-compose -f docker-compose-aliyun.yml up -d mysql redis backend echo "[OK] 后端服务启动完成" echo "" # 步骤 5:验证部署 echo "========================================" echo "Step 5: 验证部署" echo "========================================" sleep 5 # 检查服务状态 echo "[*] Docker 容器状态:" docker-compose -f docker-compose-aliyun.yml ps echo "" echo "[*] Nginx 状态:" systemctl status nginx --no-pager | head -5 echo "" echo "========================================" echo "部署完成!" echo "========================================" echo "" echo "访问地址:" echo " - 前端: http://$(curl -s ifconfig.me)" echo " - 后端 API: http://$(curl -s ifconfig.me):9099" echo " - API 文档: http://$(curl -s ifconfig.me):9099/docs" echo "" echo "文件位置:" echo " - 前端文件: $NGINX_ROOT" echo " - Nginx 配置: /etc/nginx/sites-available/etest-lims" echo " - 后端代码: $BACKEND_DIR" echo "" echo "常用命令:" echo " - 查看后端日志: docker-compose -f docker-compose-aliyun.yml logs -f backend" echo " - 重启后端: docker-compose -f docker-compose-aliyun.yml restart backend" echo " - 重启 Nginx: systemctl restart nginx" echo " - 查看 Nginx 日志: tail -f /var/log/nginx/access.log" echo ""