NewsNow
优雅地阅读实时热门新闻
[!NOTE] 当前版本为 DEMO,仅支持中文。正式版将提供更好的定制化功能和英文内容支持。
功能特性
- 优雅的阅读界面设计,实时获取最新热点新闻
- 支持 GitHub 登录及数据同步
- 默认缓存时长为 30 分钟,登录用户可强制刷新获取最新数据
- 根据内容源更新频率动态调整抓取间隔(最快每 2 分钟),避免频繁抓取导致 IP 被封禁
- 支持 MCP server
{
"mcpServers": {
"newsnow": {
"command": "npx",
"args": [
"-y",
"newsnow-mcp-server"
],
"env": {
"BASE_URL": "https://newsnow.busiyi.world"
}
}
}
}
你可以将 BASE_URL
修改为你的域名。
部署指南
基础部署
无需登录和缓存功能时,可直接部署至 Cloudflare Pages 或 Vercel:
- Fork 本仓库
- 导入至目标平台
Cloudflare Pages 配置
- 构建命令:
pnpm run build
- 输出目录:
dist/output/public
GitHub OAuth 配置
- 创建 GitHub App
- 无需特殊权限
- 回调 URL 设置为:
https://your-domain.com/api/oauth/github
(替换 your-domain 为实际域名) - 获取 Client ID 和 Client Secret
环境变量配置
参考 example.env.server
文件,本地运行时重命名为 .env.server
并填写以下配置:
# Github Clien ID
G_CLIENT_ID=
# Github Clien Secret
G_CLIENT_SECRET=
# JWT Secret, 通常就用 Clien Secret
JWT_SECRET=
# 初始化数据库, 首次运行必须设置为 true,之后可以将其关闭
INIT_TABLE=true
# 是否启用缓存
ENABLE_CACHE=true
数据库支持
本项目主推 Cloudflare Pages 以及 Docker 部署, Vercel 需要你自行搞定数据库,其他支持的数据库可以查看 https://db0.unjs.io/connectors 。
- 在 Cloudflare Worker 控制面板创建 D1 数据库
- 在
wrangler.toml
中配置database_id
和database_name
- 若无
wrangler.toml
,可将example.wrangler.toml
重命名并修改配置 - 重新部署生效
Docker 部署
对于 Docker 部署,只需要项目根目录 docker-compose.yaml
文件,同一目录下执行
docker compose up
同样可以通过 docker-compose.yaml
配置环境变量。
开发
[!Note] 需要 Node.js >= 20
corepack enable
pnpm i
pnpm dev
你可能想要添加数据源,请关注 shared/sources
server/sources
,项目类型完备,结构简单,请自行探索。
路线图
- 添加 多语言支持(英语、中文,更多语言即将推出)
- 改进 个性化选项(基于分类的新闻、保存的偏好设置)
- 扩展 数据源 以涵盖多种语言的全球新闻
贡献指南
欢迎贡献代码!您可以提交 pull request 或创建 issue 来提出功能请求和报告 bug。
赞助
给作者赞助,谢谢。