NewsNow - 优雅阅读实时与热门新闻
NewsNow 是一个开源的实时热点新闻聚合阅读项目,界面干净优雅,支持 GitHub OAuth 登录与数据同步、默认 30 分钟缓存、按源更新频率自适应抓取(最短 2 分钟)、并支持 MCP server,可通过 Cloudflare Page、Vercel 或 Docker 自行部署。当前为仅支持中文的演示版本,采用 MIT 许可证。
社区作者 · zZz
它解决什么问题
NewsNow 的定位是「优雅阅读实时与热门新闻」,面向希望自建新闻聚合阅读页的个人与开发者。
核心特性:
- 干净优雅的 UI 设计,优化阅读体验(配图 1 为项目预览图)。
- 实时更新热门新闻。
- 支持 GitHub OAuth 登录并进行数据同步。
- 默认缓存时长 30 分钟,已登录用户可强制刷新。
- 自适应抓取间隔(最小 2 分钟),依据来源更新频率调整,以优化资源占用并防止 IP 被封。
- 支持 MCP server(newsnow-mcp-server)。
版本说明:来源明确标注为 demo 版本,目前仅支持中文;后续会推出功能更完整、可定制性更强并支持英文内容的版本。项目还注明「The new version is coming soon and we will no longer accept contributions」——新版本即将发布,此后不再接受贡献。
路线图(Roadmap):增加多语言支持(英文、中文及更多语言);改进个性化选项(按类别筛选新闻、保存偏好);扩展数据源以覆盖多语言的全球新闻;release when ready。
数据库方面,支持 db0.unjs.io 的连接器,官方推荐 Cloudflare D1 Database。新增数据源可参考 shared/sources 与 server/sources 目录,项目提供完整类型定义与清晰架构,详细说明见 CONTRIBUTING.md。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
以下步骤依据项目 README 整理,按顺序执行。
一、基础部署(不含登录与缓存)
- Fork 本仓库。
- 导入到 Cloudflare Page 或 Vercel 等平台。
- Cloudflare Page 配置:
构建命令(Build command):
pnpm run build- 输出目录(Output directory):dist/output/public
二、GitHub OAuth 配置(需要登录功能时)
- 创建一个 GitHub App。
- 无需特殊权限。
- 将 callback URL 设置为:https://your-domain.com/api/oauth/github(把 your-domain 替换为你的实际域名)。
- 获取 Client ID 与 Client Secret。
三、环境变量配置 参考 example.env.server。本地开发时将其重命名为 .env.server 并配置:
Github Client ID
G_CLIENT_ID=
Github Client Secret
G_CLIENT_SECRET=
JWT Secret, usually the same as Client Secret
JWT_SECRET=
Initialize database, must be set to true on first run, can be turned off afterward
INIT_TABLE = true
Whether to enable cache
ENABLE_CACHE = true 注意:INIT_TABLE 首次运行时必须设为 true,之后可以关闭。
四、数据库支持
- 支持的数据库连接器见 https://db0.unjs.io/connectors 。
- 官方推荐 Cloudflare D1 Database。
- 在 Cloudflare Worker 控制台创建 D1 数据库。
- 在 wrangler.toml 中配置 database_id 与 database_name。
- 如果 wrangler.toml 不存在,请重命名 example.wrangler.toml 并修改配置。
- 变更将在下一次部署时生效。
五、Docker 部署 在项目根目录执行:
docker compose up也可以在 docker-compose.yml 中设置环境变量。
六、本地开发 环境要求:Node.js >= 20。依次执行: corepack enable
pnpm ipnpm dev七、新增数据源 参考 shared/sources 与 server/sources 目录,项目提供完整类型定义与清晰架构;详细步骤见 CONTRIBUTING.md。
八、MCP Server 接入 页面给出的配置如下(可修改 BASE_URL 为你自己的域名): { "mcpServers" : { "newsnow" : { "command" : "npx" , "args" : [ "-y" , "newsnow-mcp-server" ], "env" : { "BASE_URL" : "https://newsnow.busiyi.world" } } } }
常见问题提示:
- 无法登录/同步:检查 GitHub App 的 callback URL 是否与实际域名一致,以及 G_CLIENT_ID、G_CLIENT_SECRET、JWT_SECRET 是否配置正确。
- 首次部署报数据库相关错误:确认 INIT_TABLE 首次运行设置为 true,并正确填写 wrangler.toml 中的 database_id 与 database_name。
- 数据未更新:默认缓存 30 分钟,已登录用户可强制刷新;抓取间隔自适应且最小 2 分钟。
- 本地启动失败:确认 Node.js 版本 >= 20,并先执行 corepack enable 再 pnpm i、pnpm dev。
- 项目处于 demo 阶段,仅支持中文,后续新版本将提供更完整的定制能力与英文内容支持。
