Note
This is a demo version currently supporting Chinese only. A full-featured version with better customization and English content support will be released later.
Elegant reading of real-time and hottest news
- Clean and elegant UI design for optimal reading experience
- Real-time updates on trending news
- GitHub OAuth login with data synchronization
- 30-minute default cache duration (logged-in users can force refresh)
- Adaptive scraping interval (minimum 2 minutes) based on source update frequency to optimize resource usage and prevent IP bans
For deployments without login and caching:
- Fork this repository
- Import to platforms like Cloudflare Page or Vercel
- Build command:
pnpm run build
- Output directory:
dist/output/public
- Create a GitHub App
- No special permissions required
- Set callback URL to:
https://your-domain.com/api/oauth/github
(replaceyour-domain
with your actual domain) - Obtain Client ID and Client Secret
Refer to example.env.server
. For local development, rename it to .env.server
and configure:
# 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
Supported database connectors: https://db0.unjs.io/connectors Cloudflare D1 Database is recommended.
- Create D1 database in Cloudflare Worker dashboard
- Configure database_id and database_name in wrangler.toml
- If wrangler.toml doesn't exist, rename example.wrangler.toml and modify configurations
- Changes will take effect on next deployment
In project root directory:
docker compose up
You can also set Environment Variables in docker-compose.yml
.
Note
Requires Node.js >= 20
corepack enable
pnpm i
pnpm dev
Refer to shared/sources
and server/source
s directories. The project provides complete type definitions and a clean architecture.
- Add multi-language support (English, Chinese, more to come).
- Improve personalization options (category-based news, saved preferences).
- Expand data sources to cover global news in multiple languages.
Contributions are welcome! Feel free to submit pull requests or create issues for feature requests and bug reports.
MIT © ourongxing