跳到正文

上线检查清单

从单机试跑走向生产前,按本清单逐项过一遍。每项给出「为什么」与「在哪配」,可勾选。

启动与探针

  • [ ] /health 返回 200 即存活。
  • [ ] 外部负载均衡器健康检查指向 /ready(数据库不可达或网关排空时返回 503,用于灰度下线/零停机重启)。
  • [ ] HOST 设为 0.0.0.0 才能在容器里被端口映射访问(127.0.0.1 只本机)。

凭证与加密密钥

  • [ ] 内置管理员账号 protoflux 的初始密码已改(控制台 → 控制台用户)。
  • [ ] ENCRYPTION_KEY 从环境变量注入,硬编码到镜像或 compose 明文。
  • [ ] 已备份 ENCRYPTION_KEY:丢失 = 已加密数据(访问密钥、上游 API key)永久不可读。
  • [ ] 多实例时所有实例用同一把 ENCRYPTION_KEY

ENCRYPTION_KEY 丢失不可逆

没有这把密钥,数据库里的访问密钥、上游 API key 都无法解密。务必单独备份,不要只存在部署环境里。

控制台暴露面

  • [ ] CONSOLE_ALLOW_REMOTE 默认 true(镜像默认允许远程访问控制台)。需要收紧时设 false配合反向代理 + 访问控制(防火墙 / IP 白名单 / VPN),不要裸暴露。
  • [ ] 登录防爆破已生效(默认 5 次失败封 300 秒)。
  • [ ] SSO 企业登录(如需)已配,见 配置 SSO 企业登录

存储与多实例

  • [ ] 单机用 SQLite,文件路径用绝对路径(如 /var/lib/protoflux/stats.sqlite),挂载到持久卷。
  • [ ] 多实例用 PostgreSQL(共享统计与配置,30s 跨实例同步)+ Redis(共享会话/限流/IP 封禁/日志广播)。字段见 环境变量配置参考
  • [ ] PostgreSQL 版本 17+:日志表(request_logs / openai_message_store)按天 RANGE 分区、主键为 IDENTITY 列,分区表上的 IDENTITY 列仅 PG17 起支持(更早版本建表即失败)。
  • [ ] 多实例务必配 Redis,否则会话/限流/IP 封禁退化为每实例独立,封禁阈值形同虚设。见 做到高可用

日志与磁盘

  • [ ] LOG_RETENTION_DAYS 按合规需求设(如 30/90 天)。
  • [ ] LOG_MAX_BODY_SIZE_MB 按需设(默认 25 MB,设 0 不捕获 body 但失去内容留痕)。
  • [ ] LOG_STREAM_BODY_MAX_DISK_MB 控制流式 body 磁盘占用。
  • [ ] 多实例时 Live 日志 SSE 流汇聚所有实例日志,见 日志查看器

限流与封禁

  • [ ] RATE_LIMIT_* 按密钥/IP/上游配 RPM、并发、TPM 上限。字段见 审计与安全配置
  • [ ] 多实例时限流走 Redis 共享,否则每实例独立、阈值被分散。

备份与恢复

  • [ ] 数据库(SQLite 文件 / PostgreSQL)定期备份。
  • [ ] ENCRYPTION_KEY 单独备份(见上)。
  • [ ] 容器的环境变量清单(compose / task definition)纳入版本控制。
  • [ ] 验证过一次恢复流程(光备份不验证等于没备份)。

逐项清单

把上面勾选项复制到自己的部署文档里逐项确认。

常见问题

Q:单机能直接上生产吗? 小规模可以,但失去高可用与水平扩展。规模上去或要求高可用就上多实例 + PostgreSQL + Redis。

Q:忘记管理员密码怎么办?RESET_ADMIN=<新密码> 后重启即重置(仅生效一次)。需再次重置:重新设 RESET_ADMIN 为新值再重启。重置成功后去掉该环境变量再重启,可避免每次重启告警。见 Docker 单机跑通 的常见问题。

下一步做到高可用 看容灾;审计与安全配置 看安全字段;满足合规与审计要求 看合规。