Files
MaliangAINovalWriter/deploy/open

AINoval 一键部署Docker 版)

本指南面向开源用户,提供无需自行构建前端与后端的简易部署方案:一个镜像同时打包后端 JAR 与已编译的 Web 静态文件,配合 docker-compose 可一键启动,并内置可选的 MongoDB 服务。

目录结构

deploy/
  ├─ dist/
  │   ├─ ainoval-server.jar       # 预编译后端
  │   └─ web/                     # 预编译前端静态文件
  ├─ open/
  │   ├─ README.md                # 本指南
  │   ├─ Dockerfile               # 开源镜像 Dockerfile相对路径复制 dist
  │   ├─ docker-compose.yml       # 开源 docker-compose相对路径引用本目录 env
  │   ├─ production.env.example   # 环境变量示例
  │   └─ production.env           # 实际运行环境变量(建议忽略到版本库外)

系统要求

  • Docker 24+Docker Compose v2+
  • 至少 1GB 可用内存(建议 2GB+),磁盘 2GB+

快速开始

  1. 准备环境变量
  • 复制 deploy/open/production.env.exampledeploy/open/production.env
  • 根据你的实际情况修改变量(尤其是 Mongo、JWT、对象存储、代理、API Key 等)
  • 将github右边的release下的ainovel.jar包下载复制到deploy/dist目录下
  1. 构建镜像(或使用你私有仓库已推送的镜像)
# 方式A在仓库根目录执行
docker compose -f deploy/open/docker-compose.yml build

# 方式B在 deploy/open 目录执行(无需重复路径)
cd deploy/open
docker compose -f docker-compose.yml build
# 或
docker compose build
  1. 启动服务
# 仓库根目录
docker compose -f deploy/open/docker-compose.yml up -d

# 或在 deploy/open 目录
docker compose -f docker-compose.yml up -d
# 或
docker compose up -d

启动后访问:http://localhost:18080/

MongoDB 说明

  • 默认 compose 已包含 mongo 服务镜像mongo:6.0),开源一键部署默认使用 dev 模式、无认证。
  • 如你已有外部 MongoDB
    • 注释/删除 docker-compose.yml 中的 mongo 服务;
    • deploy/open/production.env 设置 SPRING_DATA_MONGODB_URI 指向外部实例(例如:mongodb://host:27017/ainovel)。

重要环境变量(节选)

  • 端口与 JVMSERVER_PORTJVM_XMSJVM_XMX
  • Mongodev 无认证):SPRING_DATA_MONGODB_URI(默认 mongodb://mongo:27017/ainovel
  • 向量库Chroma默认关闭VECTORSTORE_CHROMA_ENABLED=false
    • 开启:将其设为 true 并确保 CHROMA_URL 可达(如 http://host.docker.internal:18000 或独立容器地址)。
  • JWTJWT_SECRET(务必改成强随机值)
  • 存储:STORAGE_PROVIDERlocal/alioss…以及对应供应商参数
  • 代理:PROXY_ENABLEDPROXY_HOSTPROXY_PORT
  • 向量库:CHROMA_URL(如需)
  • AI KeyOPENAI_API_KEYGEMINI_API_KEYANTHROPIC_API_KEY

注意:示例 env 仅用于演示,生产环境请务必替换为你自己的安全值。

日志与数据

  • 应用日志挂载在 deploy/open/logscompose 中映射到容器 /var/log/ainoval)。
  • MongoDB 数据保存在命名卷 mongo-data 中。

常见操作

  • 查看日志:
docker compose -f deploy/open/docker-compose.yml logs -f ainoval
  • 重启服务:
docker compose -f deploy/open/docker-compose.yml restart ainoval
  • 停止并删除容器:
docker compose -f deploy/open/docker-compose.yml down

常见问题

  • 无法访问页面:检查容器是否正常启动、端口是否被占用;或修改 ports 映射。
  • 连接 Mongo 失败:检查 MONGO_* 变量,或确认外部 Mongo 地址/鉴权。
  • 前端静态资源 404镜像内置静态目录 /app/web/,通过 JVM 参数 -Dspring.web.resources.static-locations 暴露;确保 deploy/dist/web/ 在构建前已准备完整。

如有改进建议或问题反馈,欢迎提交 Issue