概要
Newsnowは、リアルタイムで最新ニュースを配信するオープンソースプロジェクト。クリーンで洗練されたUIデザインにより、快適なニュース読体験を提供する。プログラマティックなニュース配信取得が必要なアプリケーション開発者やメディア関係者に向けたツール。
[!NOTE] 現在のデモ版は中国語のみに対応している。より充実した機能とEnglishコンテンツ対応版は今後リリース予定。
主な機能
- クリーンで洗練されたUIデザイン:快適な読体験を実現
- リアルタイムなトレンドニュース更新:最新情報を随時配信
- GitHub OAuthログイン:ログイン時のデータ同期に対応
- 30分間のデフォルトキャッシュ:ログインユーザーはキャッシュ更新を強制実行可能
- 適応的なスクレイピング間隔:ニュースソースの更新頻度に基づき(最小2分間隔)、リソース使用を最適化してIP制限を回避
- MCPサーバー対応:他のツールとの連携をサポート
{
"mcpServers": {
"newsnow": {
"command": "npx",
"args": [
"-y",
"newsnow-mcp-server"
],
"env": {
"BASE_URL": "https://newsnow.busiyi.world"
}
}
}
}
BASE_URLを独自ドメインに変更可能。
導入方法
基本的なデプロイ
ログインとキャッシング機能なしでのデプロイ:
- このリポジトリをフォーク
- Cloudflare Pages、Vercelなどのプラットフォームにインポート
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 Client ID
G_CLIENT_ID=
# Github Client Secret
G_CLIENT_SECRET=
# JWT Secret(通常はClient Secretと同一)
JWT_SECRET=
# データベース初期化(初回実行時はtrue、その後はオフ可能)
INIT_TABLE=true
# キャッシュ有効化
ENABLE_CACHE=true
データベース対応
複数のデータベースコネクタに対応。詳細はSupported database connectorsを参照。Cloudflare D1 Databaseの使用が推奨される。