手动部署文档

TDuck 部署文档

本文档详细介绍了 TDuck 项目的部署步骤。在开始之前,请确保已满足以下环境要求。

1. 环境要求

  • 操作系统: Linux (推荐 CentOS 7+ 或 Ubuntu 18.04+)
  • Java: JDK 1.8+
  • 数据库: MySQL 5.7+
  • 缓存: Redis (版本无特殊要求)
  • 反向代理: Nginx

2. 数据库准备

  1. 创建数据库: 登录 MySQL,创建一个名为 tduck-x 的数据库,并设置字符集为 utf8mb4

    CREATE DATABASE `tduck-x` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
  2. 导入初始化数据: 按顺序执行以下 SQL 文件(位于 tduck-x-platform/doc 目录下):

    • tduck-x.sql (核心表结构及数据)

3. 后端部署 (tduck-api)

  1. 获取部署包: 准备好 tduck-api.jar 包。

  2. 准备运行环境: 在服务器创建部署目录,例如 /application/tduck

  3. 启动后端: 将 tduck-api.jar 和配置文件 application-custom.yml 放在同一目录下,执行以下命令启动:

    # --spring.profiles.active=custom 会自动加载当前目录下的 application-custom.yml
    nohup java -jar tduck-api.jar --spring.profiles.active=custom > tduck.log 2>&1 &
    

    默认启动端口为 8996

4. 前端部署

  1. 获取部署包: 准备好前端打包后的静态资源包(通常是一个 dist 目录或压缩包)。
  2. 上传并解压: 将静态资源上传至服务器目录,例如 /usr/share/nginx/html/tduck

5. Nginx 配置

修改 Nginx 配置文件,参考以下配置实现前后端联调:

server {
    listen       80;
    server_name  your_domain.com; # 替换为你的域名或IP

    # 1. 静态资源配置
    location / {
        root   /usr/share/nginx/html/tduck; # 指向前端解压后的目录
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

    # 2. 后端接口转发
    location /tduck-api/ {
        proxy_pass http://127.0.0.1:8996/tduck-api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 3. 文件存储转发 (如果使用了本地文件存储)
    location /file/ {
        alias /application/static/upload/; # 对应后端配置的文件存储路径
    }
}

修改完成后,重启 Nginx:

nginx -s reload

6. 验证部署

  1. 访问 http://your_domain.com,应能看到前端登录页面。
  2. 查看后端日志 tduck.log 确认启动正常。

附录:可选 - 源码编译打包命令

如果您需要从源码重新打包,可以参考以下命令:

A. 后端打包 (Maven)

tduck-x-platform 根目录下执行:

mvn clean package -DskipTests

生成的包位于 tduck-api/target/tduck-api.jar

B. 前端打包 (pnpm)

tduck-x-front 根目录下执行:

pnpm install
pnpm build

生成的资源位于 dist 目录。