一个使用 AI 技术将 Hacker News 内容翻译成中文的全栈 Web 应用。
- 自动抓取 HackerNews 热门内容
- LLM 智能翻译 (标题、正文、摘要和评论)
- 本地数据库缓存
- 实时翻译进度推送
- 收藏夹与阅读历史
- 文章 AI 对话
- 管理员设置面板
- 运行时: Node.js
- 语言: TypeScript
- 框架: Express
- 数据库: SQL.js (SQLite)
- 框架: React 19
- 语言: TypeScript
- 构建工具: Vite
-
确保已安装node.js
-
复制配置文件:
cp backend/.env.example backend/.env
cp backend/data/llm-config.json.example backend/data/llm-config.json
cp backend/data/prompts-config.json.example backend/data/prompts-config.json- 配置环境变量 (backend/.env):
PORT=3000
ADMIN_TOKEN=your-admin-token- 配置 LLM 服务 (backend/data/llm-config.json):
{
"default_provider": "Deepseek V3",
"providers": [
{
"name": "Deepseek V3",
"api_base": "https://api.deepseek.com/v1",
"model": "deepseek-chat",
"api_key": "your-api-key-here"
}
]
}分别安装前后端依赖:
cd backend && npm install
cd frontend && npm installcd backend && npm run dev
cd frontend && npm run dev- 构建前后端:
cd frontend && npm run build
cd ../backend && npx tsc && mkdir -p dist/db && cp src/db/schema.sql dist/db/schema.sql-
将
backend/.env中NODE_ENV设为production。前端生产环境默认 API 为同源/api(可参考frontend/.env.template)。 -
使用 PM2 启动(仓库根目录):
npm install -g pm2
pm2 start ecosystem.config.cjs
pm2 save- Windows 开机自启:
npm install -g pm2-windows-startup
pm2-startup install
pm2 save之后重启电脑时,PM2 会自动 pm2 resurrect 恢复 hackernewscn 进程。
常用命令:
pm2 status
pm2 logs hackernewscn
pm2 restart hackernewscn
pm2 stop hackernewscn代码修改后一键更新并重启(Windows):
.\update.ps1
.\update.ps1 -SkipFrontend # 只改了后端
.\update.ps1 -SkipBackend # 只改了前端
.\update.ps1 -NoRestart # 只构建不重启访问地址: http://localhost:3000
健康检查: http://localhost:3000/health
MIT