自托管 RSS 源生成框架,将任意网站转为标准 RSS/Atom 订阅源,通过 Docker Compose 与 Miniflux 阅读器集成部署。
# 1. 复制配置文件并填入凭证
cp config.example.yml config.yml
# 2. Docker 一键部署(含 Miniflux + PostgreSQL)
docker compose up -d
# 3. 访问 Miniflux
# http://localhost:8080 (默认账号 admin / admin123)
# RSSGen 仅在 Docker 内部网络中可用,不对外暴露端口本地开发:
uv sync
python main.py订阅爱发电创作者的动态更新。
订阅地址: http://localhost:8000/feed/afdian/{作者url_slug}
其中 {作者url_slug} 是作者主页 URL 中的标识,例如作者主页为 https://afdian.com/a/Alice,则 slug 为 Alice。
配置(config.yml):
routes:
afdian:
enabled: true
cookie: "你的爱发电 Cookie"获取 Cookie:
推荐使用 Cookie Master 浏览器扩展:
- 浏览器登录 afdian.com
- 点击 Cookie Master 图标 → Flat Copy
- 将复制的内容直接粘贴到
config.yml中:
routes:
afdian:
cookie: "_ga=GA1.1.xxx; auth_token=xxx; ..."也可以通过开发者工具(F12)→ 网络标签页 → 任意请求的 Cookie 请求头中复制,格式相同。
在 Miniflux 中使用:
在 Miniflux 添加订阅时,填入 http://rssgen:8000/feed/afdian/{作者url_slug}(Docker 网络内使用容器名 rssgen)。
注意: 如果宿主机配置了 HTTP 代理(HTTP_PROXY/HTTPS_PROXY),Docker 容器可能会继承代理设置,导致 Miniflux 无法通过 Docker 内部域名访问 RSSGen(返回 502)。docker-compose.yml 中已通过 NO_PROXY 环境变量排除内部服务,如有自定义服务名请一并添加。
查询参数:
| 参数 | 说明 | 示例 |
|---|---|---|
format |
输出格式,atom(默认)或 rss |
?format=rss |
limit |
返回条目数量,默认 20 | ?limit=10 |
当后台刷新某个订阅源连续重试均失败、且为业务错误(默认 4xx:400/401/403/404/410/422/451)时,RSSGen 会:
- 通过 Apprise 发送一条通知(Telegram、邮件等);
- 禁用该订阅源(feed 级,仅影响出错的那个 feed,同一路由下其他 feed 不受影响),后续 Miniflux 拉取该地址将返回 HTTP 502;
- 重启 RSSGen 后自动恢复(禁用状态仅存于内存)。
临时错误(5xx、网络错误)只会重试,不触发通知或禁用。
配置(config.yml):
notifier:
enabled: true # 是否启用通知
service_urls: # 通知服务 URL 列表(Apprise 格式)
- "tgram://bot_token/chat_id"
- "mailto://user:[email protected]"
# business_error_codes: # 可选,自定义业务错误状态码(默认 [400, 401, 403, 404, 410, 422, 451])
# - 403service_urls 支持的服务格式见 Apprise 文档。
感谢 cv-cat/ZhihuApis: 知乎算法逆向 关于知乎路由的启发