简介
NewsNow 是一个旨在提供简洁界面和流畅阅读体验的工具,让你随时掌握最新资讯。它不仅优雅地展示实时热门新闻,还支持多种部署方式,包括 Cloudflare Pages、Vercel 等平台。
部署指南
无需登录和缓存的部署
如果你不需要登录和缓存功能,可以直接将 NewsNow 部署到 Cloudflare Pages 或 Vercel。你只需 Fork 项目后,在对应平台上导入即可。
- Cloudflare Pages:在设置中填入构建命令
pnpm run build
,构建输出文件夹为dist/output/public
。
登录功能部署
登录功能涉及到 GitHub OAuth。你只需创建一个 GitHub App,不需要申请任何权限。创建后,你将获得 Client ID 和 Client Secret。不同平台的环境变量设置位置不同,请参考 example.env.server
文件。如果本地运行,需要将其重命名为 .env.server
,并按要求添加变量。
plaintext
# Github Client ID
G_CLIENT_ID=
# Github Client Secret
G_CLIENT_SECRET=
# JWT Secret, 通常就用 Client Secret
JWT_SECRET=
# 初始化数据库, 首次运行必须设置为 true,之后可以将其关闭
INIT_TABLE=true
数据库部署
本项目推荐使用 Cloudflare Pages 和 Docker 部署。对于 Vercel,你需要自行解决数据库问题。支持的数据库可以在 db0 connectors 查看。
-
Cloudflare D1 数据库:可以免费使用。在 Cloudflare Worker 控制面板里找到 D1 手动创建数据库,将
database_id
以及database_name
填入wrangler.toml
对应位置即可。如果没有wrangler.toml
文件,可以把example.wrangler.toml
重命名为wrangler.toml
,修改为自己的配置,下次部署时就会生效。如果部署时数据库为空,可以随意创建一个表,第一次执行会自动初始化所需的表,或者使用以下 SQL 语句创建 Cache Table:
sql
CREATE TABLE IF NOT EXISTS cache ( id TEXT PRIMARY KEY, updated INTEGER, data TEXT );
-
Docker 部署:只需要项目根目录的
docker-compose.yaml
文件,在同一目录下执行docker compose up
。
开发指南
环境要求
- Node.js 版本 >= 20
- 使用
corepack enable
启用核心包管理器 - 使用
pnpm i
安装依赖 - 使用
pnpm dev
启动开发服务器
数据源添加
如果你想要添加数据源,请关注 shared/metadata
、shared/sources
、server/sources
。项目类型完备,结构简单,请自行探索。