Install
openclaw skills install @ninetyhe-90/ai-news-website-generatoropenclaw skills install @ninetyhe-90/ai-news-website-generator一键生成完整的AI资讯聚合网站!包含Next.js前端、FastAPI后端、Docker容器化部署、以及自动定时刷新功能。不仅适用于AI新闻,也适用于任何RSS源的内容聚合。
| 层级 | 技术选型 |
|---|---|
| 前端 | Next.js 15 + React 19 + TypeScript + Tailwind CSS |
| 后端 | Python + FastAPI + feedparser + APScheduler |
| 部署 | Docker + Docker Compose |
# 运行项目生成脚本
python ~/.hermes/skills/productivity/ai-news-website-generator/scripts/generate-project.py
# 或者指定项目目录
python ~/.hermes/skills/productivity/ai-news-website-generator/scripts/generate-project.py my-news-site
脚本会自动创建完整的项目结构,包含:
编辑 backend/main.py 中的 RSS_FEEDS:
RSS_FEEDS = [
{"name": "OpenAI Blog", "url": "https://openai.com/blog/rss.xml", "category": "AI"},
{"name": "你的RSS源", "url": "https://example.com/rss.xml", "category": "科技"},
]
cd ai-news-website
docker-compose up -d
ai-news-website/
├── frontend/ # Next.js 前端
│ ├── app/
│ │ ├── page.tsx # 首页
│ │ ├── layout.tsx # 布局
│ │ └── globals.css # 全局样式
│ ├── components/
│ │ ├── NewsList.tsx # 新闻列表
│ │ └── NewsCard.tsx # 新闻卡片
│ ├── Dockerfile
│ └── package.json
├── backend/ # FastAPI 后端
│ ├── main.py # 主应用(含定时任务)
│ ├── requirements.txt
│ └── Dockerfile
├── docker-compose.yml # Docker编排
├── start.sh # 一键启动脚本
├── README.md # 详细文档
└── PROJECT_SUMMARY.md # 项目总结
编辑 backend/main.py:
# 每6小时刷新
scheduler.add_job(refresh_articles, 'interval', hours=6, id='refresh_rss')
# 改为每小时刷新
scheduler.add_job(refresh_articles, 'interval', hours=1, id='refresh_rss')
# 改为每30分钟刷新
scheduler.add_job(refresh_articles, 'interval', minutes=30, id='refresh_rss')
编辑 docker-compose.yml:
services:
frontend:
ports:
- "3000:3000" # 改为 "8080:3000"
backend:
ports:
- "8000:8000" # 改为 "8081:8000"
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/articles | 获取文章列表 |
| GET | /api/articles/{id} | 获取单篇文章 |
| POST | /api/refresh | 手动刷新所有RSS源 |
| GET | /api/health | 健康检查 |
GET /api/articles?page=1&limit=20&source=OpenAI&category=AI
配置AI相关的RSS源(OpenAI、Google AI、MIT AI等),快速搭建AI资讯门户。
聚合你喜欢的技术博客,打造个人技术阅读中心。
为特定行业(区块链、生物医药、金融科技等)聚合专业资讯。
聚合团队内部博客和外部行业资讯,作为团队知识库。
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
}
location /api {
proxy_pass http://localhost:8000;
}
}
certbot --nginx -d your-domain.com
当前版本使用内存存储,生产环境建议:
A: 编辑 backend/main.py 中的 RSS_FEEDS 列表,添加新的源即可。
A: 检查网络连接,确认RSS源URL可访问。查看后端日志:docker-compose logs backend
A: 编辑 frontend/app/globals.css 和组件文件,使用Tailwind CSS类。
A: 可以!使用 start.sh 脚本选择本地启动模式,或参考README中的手动启动步骤。
MIT License - 可自由使用、修改和分发。
使用此Skill,你可以在5分钟内从0到1搭建一个专业的资讯聚合网站! 🚀