QuantDingerQuantDingerv5.0.18 Docs 文档中心
English GitHub

生产环境加固

English

上线前校验

准备项目根目录 .envbackend_api_python/.env,替换所有默认凭据,然后执行:

python backend_api_python/scripts/check_production_config.py \
  --env-file .env \
  --env-file backend_api_python/.env

校验会拒绝默认数据库密码、管理员密码、Grafana 密码、JWT 密钥和凭据加密密钥。

锁定运行环境

生产覆盖层使用 UID/GID 10001 运行后端进程,移除 Linux capabilities,将根文件系统 设为只读,并限制 CPU、内存与进程数:

docker compose \
  -f docker-compose.yml \
  -f docker-compose.production.yml \
  -f docker-compose.observability.yml \
  up -d --build

首次锁定启动前必须准备好全部密钥,因为非 root 容器不能生成或回写这些值。数据库结构 更新只能由 migration 服务执行,不要让 API Worker 并发迁移。

网络边界

  • 公网只暴露 TLS 反向代理的 80/443。
  • PostgreSQL、两套 Redis、Prometheus、Grafana、Alertmanager 不直接暴露公网。
  • 后端 API 若必须独立暴露,应置于认证、限流和 TLS 之后。
  • MCP 网络监听必须设置独立的 QUANTDINGER_MCP_AUTH_TOKEN,不能复用 Agent Token。

数据与恢复

  • 备份 PostgreSQL,并定期验证恢复流程。
  • 队列任务必须跨主机故障保留时,备份 celery_redis_data
  • 缓存 Redis 可以淘汰,不应作为 Celery broker。
  • 监控 redis-jobs 内存;noeviction 会在内存不足时拒绝新写入,而不是丢弃任务。
  • 记录密钥轮换、数据库恢复和实盘停机开关的演练结果。