3 Commits
Author SHA1 Message Date
JunoZ-DEVandClaude Fable 5.1 5c95b5219f feat(security): API 增加全局限流,修正站点地图脚本的 XML 实体解码顺序
- 注册 @fastify/rate-limit,默认每个来源 IP 每分钟 600 次,RATE_LIMIT_MAX 可调、0 关闭
- submit-baidu-urls 的 decodeXmlEntities 最后替换 &,避免二次解码
- 对应 CodeQL js/missing-rate-limiting 与 js/double-escaping 告警

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16 05:19:20 +08:00
Juno ChowandClaude Fable 5.1 fd8568f467 feat(deploy): docker-compose 改为单机生产栈
根目录 docker-compose.yml 现在就是一台机器跑完整栈:PostgreSQL、Redis、
迁移、API、worker 和前端 nginx 反代(web),API 默认 TRUST_PROXY=1;
全栈测试专用的 mock 供应商与第二站点入口拆到 docker-compose.fullstack.yml,
由 scripts/run-fullstack-tests.mjs 通过 COMPOSE_FILE 叠加。前端镜像接受
VITE_ 构建参数;README 部署章节改为单机步骤与 Caddy HTTPS 示例。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16 02:37:41 +08:00
Juno ChowandClaude Fable 5.1 f665082dad chore: 建立产品仓库,完成开源前的敏感信息清理
前端(Vite + React)、API/worker(Fastify + BullMQ)、api-contracts 契约包、
迁移脚本、测试与自托管 docker-compose 示例。

开源准备:运维脚本与机器信息已拆到私有仓库;公司名、备案号、隐私邮箱改读
publicCompliance.local.json(仓库只保留占位模板);站点地址与客服二维码改为
VITE_ 环境变量;fixtures 中的真实用户标识已匿名化;三个 package.json 标注
Apache-2.0。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-16 02:10:46 +08:00