Skip to content

PerkRadar v0.1.0

Latest

Choose a tag to compare

@luobinger luobinger released this 08 Nov 09:17
· 251 commits to main since this release

多来源优惠线索聚合,不是逐条认证的领取平台。 上传 GitHub 只代表源码公开,不代表网站已公网部署;默认仅监听 127.0.0.1。

已验证能力

  • 7 个固定来源并发抓取、单源 25 秒超时与失败隔离;LINUX DO Markdown / RSS·Atom / Epic JSON 三类解析。
  • Epic 当前免费促销的半开时间窗与 0 价判定;7 天留存与到期淘汰的毫秒边界;规范化 URL 去重。
  • 每 2 小时进程内调度与手动刷新限流;服务端渲染页面与 3 个接口;收藏与已领的浏览器本地持久化。
  • 可观测性:逐源结构化日志(尝试/完成时间、耗时、解析数、收录数、失败原因)、/api/health 的 freshness 与 anomalies、页面顶栏数据提示。
  • 干净环境实跑:npm ci → 47 项测试 / 14 套件全通过 → lint 无告警 → 生产构建 → 无缓存 Docker 构建与首次启动(7/7 源、无示例数据、夹具未进镜像)。
  • 非 root:容器以 node(uid 1000)运行,全新空库与已有旧库两种场景均实测可建库、可写 WAL。
  • CI:测试 / lint / 构建 / 生产依赖审计(显式官方 registry,0 项);实时源检查单独定时运行,不阻塞 PR。

已知限制

  • 综合 RSS/Atom 源按 7 天窗口全量收录,闲聊、求购、抽奖、推广会进入列表;关键词分类会误判。本版本明确选择「线索聚合」路线,不声称逐条优惠。
  • 除 Epic 外没有真实截止时间;「近 7 天」是留存规则,不是活动截止日。
  • 新鲜度与异常提示只出现在 API 与页面,不会主动发送邮件或聊天通知。
  • 进程内定时器在休眠或停机期间不补轮;重启会立刻再抓一轮并改写下次计划。
  • 来源使用条件尚未逐站取得书面核查结论,见 docs/SOURCES.md;公开 RSS 不等于可任意再分发。
  • 单人单实例、非公网服务;/api/refresh 无身份校验,若开放公网必须另行设计认证与访问控制。
  • 品牌文案已统一为 PerkRadar,但 Compose 项目名、容器名、数据卷、收藏键与端口保持不变,避免丢失本机状态。

安装

见 README 与 运维文档:docker compose -p daily-free-info up -d --build。

许可

MIT,见 LICENSE;第三方依赖义务见 THIRD_PARTY_NOTICES.md。来源内容的使用条件不受代码许可覆盖。