十分钟部署 wewe-rss:微信公众号转 RSS 订阅完整指南
【免费下载链接】wewe-rss🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss
部署完成后,wewe-rss 就是你专属的"RSS 生成器":绑定一个微信读书账号,把你关注的公众号分享链接粘贴进去,服务会抓取这些公众号的历史发布文章、后台定时更新,并输出.rss、.atom、.json三种标准格式,可以直接加进任意 RSS 阅读器;所有订阅源还能一键导出 OPML。整套服务跑在你自己的机器上,数据完全私有,从克隆代码到打开管理界面大约只需要十分钟。
这篇文章从最终效果倒着讲:先部署跑起来,再绑账号、加源,然后讲订阅地址怎么用,最后告诉你账号"翻车"时怎么排查。
部署:按资源选方案,三条命令跑起来
项目自带两套 Docker Compose 配置:MySQL 版(默认,适合订阅源较多、长期使用)和 SQLite 版(单容器,没有独立数据库,适合个人小规模试用),分别对应 docker-compose.yml 和 docker-compose.sqlite.yml。
常规情况直接跑默认配置:
git clone https://gitcode.com/GitHub_Trending/we/wewe-rss cd wewe-rss docker compose up -d这三条命令完成克隆、进入目录并同时启动 MySQL 和主服务,容器会等数据库健康检查通过后才启动应用。两三分钟后访问http://localhost:4000就是管理界面,数据库建库、建表都是自动的。
如果机器资源紧张,改用 SQLite 方案:
docker-compose -f docker-compose.sqlite.yml up -d这一步只启动一个容器,数据文件映射到本地./data目录,容器删了重建数据也不丢。
账号绑定:一次微信扫码,解锁全部内容
wewe-rss 基于微信读书接口取内容,所以第一步是绑定账号:
- 打开管理界面,进入左侧的"账号管理"
- 点击"添加读书账号",用微信扫二维码登录
- 登录页面上千万不要勾选"24 小时后自动退出"——勾了的话,第二天登录态就过期,得重新扫码
授权信息会安全存储在服务端,只用于拉取公众号文章,不会保存其他敏感数据。
添加源:用分享链接订阅公众号
账号就绪后开始加公众号:
- 切到"公众号源"标签页
- 点左上角的"添加"按钮
- 粘贴该公众号任意一篇文章的分享链接
不用去查公众号 ID,系统会自己从文章链接里识别出公众号信息,并顺带把它的历史文章抓取下来。两个注意点:
- 别连续快速添加。添加频率过高容易触发微信读书的风控,账号会被关"小黑屋",24 小时自动解封
- 批量添加时几个几个地加,中间隔几分钟,能明显降低被限制的概率
订阅消费:三种格式地址 + 两个过滤参数
每个订阅源都有独立地址,全部源则聚合成all一个地址:
http://localhost:4000/feeds/all.rss— RSS 2.0,兼容性最好http://localhost:4000/feeds/all.atom— Atom 1.0,标准更严格http://localhost:4000/feeds/all.json— JSON Feed,方便自己写代码解析
单个公众号把all换成它的 feed ID 即可。地址后面还能挂三个常用参数:
http://localhost:4000/feeds/all.atom?title_include=AI|机器学习 http://localhost:4000/feeds/MP_WXS_123.json?title_exclude=招聘 http://localhost:4000/feeds/MP_WXS_123.rss?update=truetitle_include:只保留标题命中任意关键词的文章,多个关键词用|分隔title_exclude:排除命中关键词的文章,可以和 include 组合使用update=true:手动触发该源立刻更新一次,再返回内容
服务部署在公网时,记得把SERVER_ORIGIN_URL环境变量设成你的域名或公网 IP,否则 feed 里的文章链接路径会是错的。管理界面还支持把所有订阅源导出为 OPML 文件,迁移订阅集或换阅读器时一次搞定。
更新节奏默认是每天 5:35 和 17:35 两次(Cron35 5,17 * * *),用CRON_EXPRESSION可以改成自己的节奏。想让 feed 输出全文而不是摘要,设FEED_MODE=fulltext,但响应会变慢、占更多内存,源很多时不建议开。完整变量表见 README。
出问题时:账号状态与排查速查
账号列表里的状态直接对应处理办法:
| 状态 | 含义 | 怎么办 |
|---|---|---|
| 今日小黑屋 | 账号当前被风控限制 | 等 24 小时自动恢复;账号本身正常时,重启服务/容器可清除小黑屋记录 |
| 禁用 | 手动停用,不参与更新 | 无需处理 |
| 失效 | 登录态过期 | 重新扫码登录,依然别勾"自动退出" |
其他常见情况:
| 现象 | 最可能原因 | 处理办法 |
|---|---|---|
| 访问不到管理界面 | 端口占用或没放行 | 改端口映射,例如-p 8080:4000,并检查防火墙 |
| feed 文章链接外网打不开 | 没设SERVER_ORIGIN_URL | 填上服务对外的访问地址 |
| 更新频繁失败 | 请求太密或网络波动 | 调低更新频率,或收紧MAX_REQUEST_PER_MINUTE(默认 60 次/分钟) |
国内 DNS 解析不稳定的话,可以用PLATFORM_URL换一个基础服务地址;默认的转发服务不保存任何数据。
进阶玩法:定时更新与钉钉群推送
连续更新之间有UPDATE_DELAY_TIME延迟(默认 60 秒),就是用来降低被关小黑屋概率的;正文 HTML 比较杂时,把ENABLE_CLEAN_HTML设为true可以清理一下。这两项开关在订阅量上来之后值得按需调。
想让新文章直接推进团队群,项目带了钉钉机器人模块:进 wewe-rss-dingtalk/ 目录,在main.py里填入机器人的 access_token 和 secret,然后python3 main.py直接跑或docker-compose up -d部署成容器,订阅源一有更新就会发到群里。
想魔改的话,RSS 生成逻辑集中在 apps/server/src/feeds/,后端是 NestJS、前端是 React + Vite,加格式或改过滤条件从这里入手即可。
上手清单
- 先部署 MySQL 版,绑定微信读书账号,确认账号状态正常
- 添加 2-3 个最常用的公众号,用
all.rss地址在阅读器里试订阅 - 观察一天,确认没有小黑屋记录后再逐步加源
- 根据习惯决定是否开全文模式、标题过滤和钉钉推送
【免费下载链接】wewe-rss🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考