news 2026/9/18 23:02:55

WeWe RSS:把公众号变成 RSS 订阅源,5 分钟私有部署全记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WeWe RSS:把公众号变成 RSS 订阅源,5 分钟私有部署全记录

WeWe RSS:把公众号变成 RSS 订阅源,5 分钟私有部署全记录

【免费下载链接】wewe-rss🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss

想让几十个个公众号的推送在一处统一管理,WeWe RSS 是个方案:它基于微信读书把公众号文章转成标准 RSS 源,整套服务跑在你自己的服务器上。

快速跑起来

用 Docker Compose 一键部署

仓库自带的 docker-compose.yml 已经把 MySQL 8 和 wewe-rss 镜像编排好,只需改两处密码:db 段的 MYSQL_ROOT_PASSWORD,app 段的 DATABASE_URL 和 AUTH_CODE,改成你自己的值。

MYSQL_ROOT_PASSWORD: 你自己的密码 - DATABASE_URL=mysql://root:你自己的密码@db:3306/wewe-rss?schema=public&connect_timeout=30&pool_timeout=30&socket_timeout=30 - AUTH_CODE=你的授权码

然后执行:

git clone https://gitcode.com/GitHub_Trending/we/wewe-rss cd wewe-rss docker-compose up -d

等两到三分钟,两个容器都 Up 之后数据库就建好了,表结构首次启动自动初始化,全程不用手工建库。端口不通?先检查 4000 是否被占用,或者防火墙没放行。

验证服务是否就绪

浏览器打开 http://localhost:4000 ,出现 WeWe RSS 管理界面,顶部有"公众号源"和"账号管理"两个页签,说明服务已经起来了。

命令行验证更直接,/feeds 路径不需要 AUTH_CODE 校验:

curl -i http://localhost:4000/feeds/all.atom

返回 HTTP 200 和一份标准 Atom 文档即可。此时还没订阅任何源,feed 是空的,属于正常状态。

核心场景拆解

绑定微信读书账号:一次扫码完成订阅前提

wewe-rss 通过微信读书接口拿公众号内容,所以第一步是登录一个微信读书账号。进入"账号管理"页签,点"添加读书账号",用手机微信扫码授权,列表里出现状态为"启用"的记录就成功了。授权信息存在你自己的服务器上,只用于拉取公众号内容。

⚠️ 关键细节:登录时千万不要勾选"24小时后自动退出"。勾了的话登录态 24 小时后失效,账号直接变"失效",只能重新扫码。

24 小时后账号又失效了?大概率就是登录时碰了这个自动退出选项。

添加公众号源:粘贴文章链接拉取历史文章

账号绑定后切到"公众号源"页签,点左上角"添加",把该公众号任意一篇文章的分享链接(mp.weixin.qq.com 开头)粘进去确定。系统会自动识别公众号 ID,回抓历史文章,并生成一条带独立 RSS 地址的订阅记录,左侧列表即可看到文章标题流。

提示:批量添加多个公众号时,每个间隔几分钟再操作。添加频率过高会触发封控,账号进小黑屋要等 24 小时才恢复。

配置标题过滤与订阅策略

每个源生成后的订阅地址形如:

  • 单个公众号:http://localhost:4000/feeds/{公众号ID}.rss
  • 全部聚合:http://localhost:4000/feeds/all.rss

把后缀换成 .atom 或 .json,分别得到 Atom 和 JSON Feed 格式。两个查询参数让订阅策略变得很细:

curl "http://localhost:4000/feeds/all.atom?title_include=AI|机器学习" curl "http://localhost:4000/feeds/all.json?title_exclude=招聘|广告&limit=20&page=1"

title_include 命中即保留,竖线内是"或"的关系;title_exclude 命中即剔除,两个参数可以组合。把过滤后的地址丢进 Feedly、Inoreader、Reeder 等阅读器,"只看 AI 不看招聘"就成了稳定信息流。all 聚合地址适合阅读器里一条入口搞定,单源地址适合按公众号精细分组。如果你的阅读器支持 OPML,还能在管理界面把所有订阅源一次性导出迁移。

定时更新与手动触发

服务默认每天 5:35 和 17:35 各更新一次全部订阅源,对应 Cron 表达式 35 5,17 * * *,通过 CRON_EXPRESSION 环境变量可改成任意节奏,比如 0 */4 * * * 表示每 4 小时。发现某个源更新不及时时,手动触发一条:

curl "http://localhost:4000/feeds/{公众号ID}.rss?update=true"

如果服务部署在公网,务必把 SERVER_ORIGIN_URL 设为公网域名或 IP,否则 feed 内部的链接指向 localhost,外部阅读器点开会 404。

调优与边界

关键参数速查

环境变量作用默认值
FEED_MODE设为 fulltext 输出全文,更耗内存、响应变慢摘要模式
CRON_EXPRESSION定时更新订阅源的 Cron 表达式35 5,17 * * *
AUTH_CODE接口请求授权码,/feeds 路径不需要不启用
SERVER_ORIGIN_URL公网访问地址,用于生成 feed 完整链接
MAX_REQUEST_PER_MINUTE每分钟最大请求次数限制60

常见报错与应对

现象原因解法
账号状态显示"今日小黑屋"请求频率触发官方封控等 24 小时自动恢复,或重启容器清除记录
feed 内文章链接打不开未设置 SERVER_ORIGIN_URL设为公网域名后重启服务
账号反复变"失效"登录时勾选了 24 小时自动退出重新扫码,不勾该选项
4000 端口无法访问端口被占用映射改为 8080:4000 后重试

性能与资源注意

  • 全文模式只建议订阅源较少时开启;源多时保持摘要模式,内存占用和接口响应都更友好。
  • UPDATE_DELAY_TIME(默认 60s)是连续更新各源之间的延迟,一次加了很多账号时不要调太小,能明显降低进小黑屋的概率。
  • 几十个源以上建议用 MySQL 版;个人轻量场景用 docker-compose.sqlite.yml 的 SQLite 版即可,省掉一个数据库容器。

深入一瞥

后端是 NestJS + Prisma,前端是 React + Vite,代码分在 apps/ 下。RSS 生成的核心在 apps/server/src/feeds/feeds.service.ts:它经微信读书接口拉文章、用 LRU 做缓存,再按请求参数输出三种格式;数据模型定义在 apps/server/prisma/schema.prisma。想接入新文章群聊推送的话,可以关注 wewe-rss-dingtalk/ 目录下的钉钉通知模块。

先绑定两三个常用公众号,把 all.rss 加进阅读器,观察一天定时更新和文章跳转是否正常。

【免费下载链接】wewe-rss🤗更优雅的微信公众号订阅方式,支持私有化部署、微信公众号RSS生成(基于微信读书)项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/18 23:02:11

OpenClaw 配 TaoToken:文件整理、写代码、做报表,只需一套 Key

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/18 23:01:33

BERT文本分类在经济研究中的应用:论文复现全流程实战

先说明一下,我这边没有找到金星晔等(2024)《经济研究》这篇论文的原文全文,但你给的标题信息已经足够定位到这是哪一类工作:用BERT这类预训练语言模型做经济学文本分类,而且作者团队把整个流程(…

作者头像 李华
网站建设 2026/9/18 23:01:07

MATLAB车牌识别系统设计:从HSV形态学到模板匹配的完整实现

简介:MATLAB车牌识别系统实现毕业论文,围绕车牌识别全流程展开,涵盖图像预处理、车牌定位、字符分割与识别等关键环节,从系统架构到算法选择均有详细说明,并对比了不同方法的适用范围与MATLAB平台的优势和局限。压缩包…

作者头像 李华
网站建设 2026/9/18 22:58:02

Cursor 挂 DBHub MCP 操作 MySQL,模型 Base URL 指到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华