☰
马良AINovalWriter生产环境安全加固:JWT密钥、AI API Key与环境变量配置完整指南
2026/10/24 4:00:43 网站建设 项目流程

【免费下载链接】MaliangAINovalWriter

马良写作 AINoval — AI novel writer for Chinese webnovels(网文)| 多智能体AI小说创作平台:三级大纲、知识图谱一致性、30万字连载

项目地址:https://gitcode.com/gh_mirrors/mal/MaliangAINovalWriter
点击查看免费下载

马良AINovalWriter(MaliangAINovalWriter)是一款面向中文网文的多智能体 AI 小说创作平台,支持三级大纲、知识图谱一致性与 30 万字长连载创作。将它部署到生产环境前,JWT 密钥、AI API Key 与环境变量是三道最关键的安全关口。本文提供一份可直接执行的加固清单,帮你在上线前堵住常见的泄密隐患。

一、为什么生产部署必须做安全加固

马良AINovalWriter 后端采用 Spring Boot 3(WebFlux 响应式)+ Java 21,认证体系为Spring Security + JWT,并依赖 MongoDB、Chroma 向量库、RabbitMQ 以及多家大模型服务。这意味着一个生产实例上集中了至少四类敏感信息:

类别典型变量泄露后果
认证签名JWT_SECRET攻击者可伪造任意用户(含管理员)的登录令牌
大模型密钥OPENAI_API_KEY、GEMINI_API_KEY、ANTHROPIC_API_KEY被盗刷产生高额 Token 账单
数据连接SPRING_DATA_MONGODB_URI小说稿件、用户数据被拖库
云服务对象存储 / 短信服务凭据存储桶被读写、短信被刷

官方部署文档特别强调:production.env.example仅用于演示,生产环境请务必替换为你自己的安全值。

二、第一步:正确落盘环境变量文件

平台提供 Docker 一键部署,所有运行参数集中在deploy/open/目录下,目录结构如下(见 README.md):

deploy/ ├─ dist/ │ ├─ ainoval-server.jar # 预编译后端 │ └─ web/ # 预编译前端静态文件 ├─ open/ │ ├─ Dockerfile # 开源镜像 Dockerfile │ ├─ docker-compose.yml # 开源 docker-compose │ ├─ production.env.example # 环境变量示例 │ └─ production.env # 实际运行环境变量

加固操作:

  1. 将示例文件复制为实际配置:

    cp deploy/open/production.env.example deploy/open/production.env
  2. 逐项修改production.env,重点是Mongo、JWT、对象存储、代理、AI API Key。

  3. 确保production.env不提交到版本库(它包含生产凭据,只应存在于部署服务器本机)。

  4. 在仓库根目录构建并启动:

    docker compose -f deploy/open/docker-compose.yml build docker compose -f deploy/open/docker-compose.yml up -d

    启动后访问http://localhost:18080/,相关 compose 配置见 deploy/open/docker-compose.yml,镜像构建规则见 deploy/open/Dockerfile。

三、JWT_SECRET:登录令牌签名的安全核心

后端用 Spring Security + JWT 完成登录态校验。JWT_SECRET是签发与校验令牌的对称密钥,官方文档明确要求"务必改成强随机值"。

加固要点:

  • 长度:建议使用 256 位(32 字节)以上随机串,避免使用字典词或项目名拼接。

  • 生成方法:在服务器上直接生成并写入production.env,不要手工输入:

    # 生成 32 字节随机密钥(Base64) openssl rand -base64 32 # 或生成 64 位十六进制串 openssl rand -hex 32
  • 轮换意识:一旦怀疑JWT_SECRET泄露,更换后所有在线用户会掉线重新登录——这是可以接受的安全代价。

  • 禁止复用:开发、测试、生产三套环境的JWT_SECRET必须互不相同。

四、AI API Key:把大模型账单风险关进笼子

马良AINovalWriter 支持 OpenAI、Anthropic、Gemini 及 OpenRouter 兼容模型,平台提供双轨制的密钥管理,这正是它安全设计的亮点:

  • 公共模型池:由管理员在后台统一配置,Key 保存在服务端,供全体用户共享调用;
  • 私有 API Key:用户可添加个人 Key 使用专属模型,平台还提供API Key 有效性测试功能。

生产加固清单:

  1. 在production.env中为公共模型池配置平台级密钥:

    OPENAI_API_KEY=sk-你的真实密钥 GEMINI_API_KEY=GEMINI密钥 ANTHROPIC_API_KEY=ANTHROPIC密钥
  2. 为每个 Key 设置支出上限(Spending Limit)——在对应服务商控制台为生产 Key 单独建 Key 并设月度预算,被盗刷时自动熔断;

  3. 后台「公共模型管理」支持按供应商分组展示模型,每个模型可做API Key 池验证并标记"已验证 / 未验证",上线前把未验证项全部补齐或删除;

  4. 结合「模型定价与计费审计」模块,定期核对 LLM 调用日志的成本核算结果,异常消耗可第一时间通过 LLM 可观测性面板(按用户/提供商/模型多维过滤)定位来源。

五、数据库、向量库与端口

变量默认值 / 说明加固建议
SPRING_DATA_MONGODB_URImongodb://mongo:27017/ainovel生产建议为 Mongo 设置账号密码与 TLS,避免仅靠内网隔离
VECTORSTORE_CHROMA_ENABLED/CHROMA_URLChroma 向量库开关与地址不用知识库拆书功能时可关闭,减少攻击面
SERVER_PORT默认对外 18080仅在网关/反代暴露必要端口
JVM_XMS/JVM_XMXJVM 堆内存按机器规格设置,防止 OOM 导致整站不可用
STORAGE_PROVIDERlocal/alioss等启用阿里云 OSS 时同样要走环境变量注入凭据,勿硬编码

💡 提示:MongoDB 首次启动需初始化副本集,健康检查可能超时(容器显示 Error 属正常现象),等待 10–20 秒后重新up -d即可,详见 README.md 故障排除章节。

六、最容易被忽视的一步:改掉默认管理员密码

服务首次启动后需要运行初始化脚本创建管理员账号:

  • Linux / Mac:./deploy/init-admin.sh(见 deploy/init-admin.sh)
  • Windows:.\deploy\init-admin.bat

脚本会自动创建:

项默认值
用户名admin
初始密码123456⚠️
角色ROLE_ADMIN
初始积分999999

管理后台地址为http://localhost:18080/admin。官方安全提示:请在首次登录后立即修改默认密码!一个挂着admin/123456的公网后台,等于把公共模型池、全部 API Key 池和用户管理权限直接开放给陌生人。

七、上线前生产加固核对清单 ✅

逐项打勾后再对外放通流量:

  • production.env由production.env.example复制而来,且所有示例值已替换为安全值
  • JWT_SECRET为 256 位以上随机值,且与其他环境不重复
  • OPENAI_API_KEY、GEMINI_API_KEY、ANTHROPIC_API_KEY已在服务商控制台设置支出上限
  • 公共模型池中的 Key 均通过后台"API Key 池验证",无"未验证"残留
  • SPRING_DATA_MONGODB_URI指向带鉴权的实例,非匿名裸奔
  • 默认admin/123456已登录并修改密码
  • production.env未提交进版本库,服务器文件权限收敛到运行账号
  • 已通过「LLM 可观测性」面板确认可正常查看调用日志与 Token 用量

八、日常运维速查

# 查看日志(排查 401/404 等认证问题) 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

📌 完整部署文档、故障排除(如管理后台 401、Mongo 首次启动 Error)均维护在 README.md 的"快速开始 (Docker 一键部署)"章节,环境变量节选说明见 README.md。

写在最后

对马良AINovalWriter 这类平台级应用来说,安全加固没有银弹,但有标准动作:密钥走环境变量、JWT 用强随机、API Key 设限额、默认密码必修改。照这份清单走一遍,你的生产实例就能以较低的运维成本,守住创作者的稿件与平台的大模型预算。

【免费下载链接】MaliangAINovalWriter

马良写作 AINoval — AI novel writer for Chinese webnovels(网文)| 多智能体AI小说创作平台:三级大纲、知识图谱一致性、30万字连载

项目地址:https://gitcode.com/gh_mirrors/mal/MaliangAINovalWriter
点击查看免费下载

相关推荐

上一篇:ONCE快速上手:从curl一键安装到5分钟部署你的第一个自托管应用(新手教程)
下一篇:揭秘delivery-harness的Mock工具层:没有真实模型也能让AI工作流100%可测试的设计

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询