全网热榜塞进一个页面:NewsNow 自建热点站,Cloudflare 免费部署
早上想看「今天网上在聊什么」,得先开微博刷热搜,再切知乎看热榜,然后头条、V2EX、掘金各来一遍——五个 App、十几分钟,真正读进去的内容没几条。
NewsNow 干的就是这件事:把几十个平台的热门内容汇到同一个页面,一屏扫完。它开源、TypeScript 写的,可以直接扔到 Cloudflare Pages 上跑,不买服务器。
我按它的官方文档在自己号上跑了一遍,把能踩的坑都记在这儿。

先看它长什么样
打开首页不是「新闻门户」那种信息瀑布,而是暗色三栏:每一栏绑一个源,顶上写源名和更新时间,下面一条条只有标题和相对时间。顶部三个 Tab——关注、最热、实时——切换的是排序和更新策略,不是频道。
这个设计取舍很明确:它不打算让你在站内读完新闻,只负责告诉你「哪儿有值得点开的东西」。想看全文,点标题跳回原站。
项目 2024 年 9 月开源,现在 ★22099 / ⑂5998,TypeScript 写的,MIT 协议。仓库主页是 newsnext/newsnow。

45 个源,具体是哪些
宣传里常写「聚合多个平台」,听着很虚。直接翻它的 server/sources 目录,一共 45 个源文件,覆盖得比想象中宽:
| 类别 | 具体源 |
|---|---|
| 社区论坛 | V2EX、知乎、贴吧、虎扑、豆瓣、LinuxDo、虫部落、靠谱 |
| 科技数码 | IT之家、少数派、36氪、掘金、酷安、PCbeta、果核剥壳、Solidot、FreeBuf、GitHub、Product Hunt、Hacker News |
| 财经 | 财联社、华尔街见闻、金十数据、格隆汇、雪球、法布财经、MktNews |
| 资讯门户 | 今日头条、腾讯新闻、澎湃、凤凰、参考消息、联合早报、Sputnik |
| 视频娱乐 | 哔哩哔哩、抖音、快手、爱奇艺、腾讯视频、Steam、懂球帝 |
| 生活消费 | 什么值得买 |
| AI | AIHot |
想加自己的源也不难,shared/sources 放类型定义、server/sources 放抓取逻辑,目录结构是刻意做干净的。不过说实话,官方现在已经不收 PR 了——README 里明说下一代 NewsNext 在路上,老仓库只维护不扩功能。
几个容易被忽略的机制
30 分钟缓存。默认每条内容缓存半小时,避免每次刷新都去敲源站的接口。登录用户可以手动强制刷新,跳过缓存。
自适应抓取间隔,最短 2 分钟。这是我觉得设计得最聪明的一点:不是所有源都按同一个频率抓,而是根据每个源自己的更新节奏调整间隔——更新快的抓勤点,慢的少跑几趟。既省资源,也不至于把源站惹毛了封你 IP。
GitHub 登录 + 数据同步。用 GitHub OAuth 登录后,你「关注」的源、看过的偏好能跟着账号走,换设备不用重配。
MCP 服务端。这条最有意思——项目提供官方 MCP Server,配好之后你的 AI 助手可以直接读热榜数据。
1 | { |
BASE_URL 换成你自己的域名就行,这样 AI 读的是你自建实例的数据。

三条部署路线,按需要选
路线一:纯展示(最简单)
只想要一个能看的聚合页,不需要登录、不需要数据库:
- Fork
newsnext/newsnow到你自己的 GitHub - 在 Cloudflare Pages(或 Vercel)里新建项目,连这个仓库
- 构建命令
pnpm run build - 输出目录
dist/output/public - 部署,等构建完,打开分配的域名
就这五步。这一步不需要任何环境变量、不需要数据库,跑起来就是个可用的热榜站。
路线二:完整版(登录 + 缓存 + 同步)
想要 GitHub 登录和缓存,得补三样东西:
① 建一个 GitHub App。 地址是 github.com/settings/applications/new,不需要任何特殊权限,回调地址填 https://你的域名/api/oauth/github。建完拿到 Client ID 和 Client Secret。
② 加环境变量。 项目根目录的 example.env.server 是模板,要填的就这几个:
1 | G_CLIENT_ID=你的 Client ID |
INIT_TABLE 第一次部署必须是 true,建完表之后改回 false,否则每次部署都重跑初始化。
③ 配数据库。 支持 db0 那一套连接器,官方推荐 Cloudflare D1。在 Cloudflare 后台建好 D1 库,然后 wrangler.toml 里填 database_id 和 database_name——仓库里没有这个文件,把 example.wrangler.toml 改名过来改内容即可,下次部署生效。
路线三:Docker
自己有 VPS 的话最省事,项目根目录直接:
1 | docker compose up |
环境变量写在 docker-compose.yml 里。本地开发也简单:Node 版本要 ≥ 20,然后 corepack enable → pnpm i → pnpm dev。

到底花不花钱
能白嫖的部分:
- 代码 MIT,免费用
- Cloudflare Pages 免费额度对个人站点绰绰有余(静态资源不限流量)
- 基础展示版不碰数据库,一分钱不花
可能花钱的部分:
- D1 超出免费额度要付费(个人用量基本摸不到线)
- 自定义域名要自己买(
.com一年几十块,.xyz更便宜) - VPS 跑 Docker 方案要服务器钱
还有一项隐性成本容易被忽略:自建之后,所有抓取请求都从你的 Cloudflare 出口发出去。源站要是哪天上了反爬、封了 Cloudflare 的 IP 段,你这边就会大面积出现「加载失败」。用公共实例时这是别人的问题,自建后就是你要处理的问题——好在自适应抓取间隔已经帮你降低了触发概率。
几个得先说清楚的事
只抓标题和链接,不搬正文。 点开还是回原站,这个边界划得挺清楚,也算对源站的基本尊重。
源站改版 = 你的页面挂掉。 这些源不是官方 API,是项目作者一个个写的解析逻辑。微博改个前端结构、知乎调整接口,对应那栏就空了,得等修。原仓库已经停止接受贡献,这类修复以后会更慢。
NewsNext 快来了。 README 顶部挂着预告,下一代在等名单里,架构会变。想长期跟着更新的话,心里有个准备:现在这套可能不是终态。
别拿去商用倒卖。 聚合别人家的内容做成付费产品,版权和合规上都站不住,自己看、朋友之间分享没问题。
适合谁 / 不适合谁
- 每天固定刷几个平台的人:一屏替代五个 App,省下的时间是真的
- 想练 Cloudflare Pages 部署的人:这个项目构建配置干净,是很好的入门练手对象
- 折腾 AI 工作流的人:MCP 那条路给了个现成的「让 AI 读今日热榜」的入口
- 想给个人站加个「今日热点」板块的人:独立部署一份,挂个子域名就行
- 想要全文阅读体验的(它不干这个)
- 不想维护解析逻辑的(源站一改就得跟)
- 期待「永久零成本稳定运行」的——免费额度、源站反爬、上游重构,任何一项变化都可能让你动手
实时热门新闻聚合器:暗色三栏、45 个数据源、30 分钟缓存与自适应抓取间隔(最短 2 分钟),支持 GitHub OAuth 登录同步、Cloudflare D1 缓存与官方 MCP 服务端,可一键部署到 Cloudflare Pages / Vercel / Docker。





