Skip to content

Latest commit

 

History

History
129 lines (90 loc) · 3.2 KB

File metadata and controls

129 lines (90 loc) · 3.2 KB

部署指南

语言版本: English | 中文

前提条件

  • Linux 主机(推荐)
  • Docker 20.10+(若采用容器部署)
  • 服务可访问 MySQL 与 Redis
  • 已准备 bin/configs/prod.json

生产配置

先从模板生成生产配置:

cp bin/configs/local.json.default bin/configs/prod.json

bin/configs/prod.json 只是模板,发布前必须替换所有占位值。 现在启动阶段会对已启用的数据库和 Redis 连接做 fail-fast 校验;如果仍保留模板占位值或缺少必需字段,服务会直接拒绝启动。

重点检查 bin/configs/prod.json

  • system.run_moderelease
  • system.http_port
  • system.jwt_secret
  • system.admin.jwt_secret(推荐单独配置;为空时会回退到 system.jwt_secret
  • system.route_prefix
  • databases[*]
  • redis[*]
  • log

运行环境变量

  • RUN_ENV=prod:加载 bin/configs/prod.json
  • APP_NAME:可选运行时覆盖

示例:

export RUN_ENV=prod
export APP_NAME=dudu-admin-api

部署方式

方案 A:二进制 + 进程守护

make build
RUN_ENV=prod ./bin/dudu-admin-api

推荐配合:

  • systemd
  • supervisord
  • 容器编排运行时

方案 B:Docker 单容器

构建镜像:

make docker-build

仓库现在通过 .dockerignore 排除了本地配置、临时产物以及本地工作区元数据,避免这些内容进入 Docker build context。

运行容器:

RUN_ENV=prod make docker-run

默认行为(来自 Makefile):

  • 容器名:dudu-admin-api
  • 配置挂载:${PWD}/bin/configs:/bin/configs
  • 端口映射:8080:8080

方案 C:自定义 Compose(按团队运维规范)

当前仓库默认未提交 docker-compose.yml。 若团队使用 Compose,建议在独立运维仓库或本地运维目录维护对应文件。

健康检查与冒烟验证

外部健康检查:

API_PREFIX="${API_PREFIX:-dudu-admin-api}"
curl -i "http://127.0.0.1:8080/${API_PREFIX}/external/ping"

内部健康检查:

API_PREFIX="${API_PREFIX:-dudu-admin-api}"
curl -i "http://127.0.0.1:8080/${API_PREFIX}/internal/ping"

若你自定义了 system.route_prefix,执行命令前先把 API_PREFIX 设置为对应的生效值。

日志与监控

  • 通过 log.driver=filelog.path 启用文件日志
  • 后台管理路由保留 SaveOperationRecord 操作日志记录
  • 配置 monitor.panic_robotnotify 做异常告警

安全检查清单

  • system.jwt_secret 与后台 OAuth/Passkey 等密钥使用高强度值
  • 限制 MySQL/Redis 的网络暴露范围
  • 配置文件与日志目录设置最小权限
  • 敏感请求/响应字段在操作日志中应脱敏或不落盘

备份建议

  • 数据库备份(日备 + 保留策略)
  • bin/configs 备份并纳入安全的版本管理
  • 发布前在预发环境做一次恢复演练

相关文档