Files
newsnow/README.md
T

2.7 KiB

NewsNow

Featured|HelloGitHub

English | 简体中文 | 日本語

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

Features

  • 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

Deployment

Basic Deployment

For deployments without login and caching:

  1. Fork this repository
  2. Import to platforms like Cloudflare Page or Vercel

Cloudflare Page Configuration

  • Build command: pnpm run build
  • Output directory: dist/output/public

GitHub OAuth Setup

  1. Create a GitHub App
  2. No special permissions required
  3. Set callback URL to: https://your-domain.com/api/oauth/github (replace your-domain with your actual domain)
  4. Obtain Client ID and Client Secret

Environment Variables

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

Database Support

Supported database connectors: https://db0.unjs.io/connectors Cloudflare D1 Database is recommended.

  1. Create D1 database in Cloudflare Worker dashboard
  2. Configure database_id and database_name in wrangler.toml
  3. If wrangler.toml doesn't exist, rename example.wrangler.toml and modify configurations
  4. Changes will take effect on next deployment

Docker Deployment

In project root directory:

docker compose up

You can also set Environment Variables in docker-compose.yml.

Development

[!TIP] Requires Node.js >= 20

corepack enable
pnpm i
pnpm dev

Adding Data Sources

Refer to shared/sources and server/sources directories. The project provides complete type definitions and a clean architecture.

License

MIT © ourongxing