# 公网部署前的明确拦截项

本仓库的默认 Compose 只监听本机回环。以下是**准备清单与 Nginx 示例**，不是已经上线的公网部署证明。没有域名、可信 TLS 证书、外部授权端点和第二台主机，无法替项目所有者完成真实公网或跨主机验收。

1. 在同主机可信 TLS 反向代理后运行 HookLab，不要直接把 Node.js 监听端口暴露公网；先替换 [Nginx 示例](../ops/nginx-hooklab.conf.example)中的域名和证书路径，并用 `nginx -t` 检查实际配置。CI 仅用临时自签名证书验证示例语法，不验证真实域名或证书。示例限制单 IP 请求/连接及正文大小，并禁止从公网访问健康、指标和租户引导接口；这些运维操作应通过受控的本机或私有网络入口完成。有上游代理时须先配置可信源 IP，否则所有用户可能共用同一额度。
2. `HOOKLAB_MAX_INFLIGHT_REQUESTS` 可设置 **1–99999**，为单进程并发 HTTP 请求提供可选的 503/`Retry-After: 1` 过载保险丝，默认 `0` 关闭。它不提供跨实例速率配额，不能代替边缘代理。平台已有可选的跨实例每租户小时事件/字节/积压额度，但管理流量和连接数仍应由可信代理控制。
3. 租户可配置的投递目标已做 HTTPS、公网地址与重新解析检查；公网环境还应配网络出口 ACL 与必要的目标域名白名单，以降低 SSRF 绕过和误配置后果。不得启用 `HOOKLAB_ALLOW_LOOPBACK_ENDPOINTS=1`。
4. 使用专用数据库账户、最小权限和受控的迁移账户。当前**未实现数据库行级安全策略**，应用查询中的租户过滤是主要隔离边界；在完成 RLS 设计与跨租户回归测试前，不要将其描述为数据库级隔离。
5. 把 `.env`、加密密钥、数据库备份分开加密保管；定义保留与删除期限，定期在另一台受控主机演练恢复启动和令牌轮换。本仓库 CI 的新卷恢复只是合成测试，没有自动异地传输或高可用故障切换。
6. 对每次发布保留可重现的构建版本、兼容性测试、容量基线、回滚点与监控阈值。可用[多角色合成档](SIMULATED_PILOT.md)重复运行相同条件下的测试，但它不等于真实长时生产负载。

有关原始事件正文、密钥、Webhook 目标和接收端至少一次语义的细节见 [SECURITY.md](../SECURITY.md)。未经授权，不向外部真实接收端发送事件。
