终极指南:3步搭建私有化微信公众号RSS订阅系统
终极指南:3步搭建私有化微信公众号RSS订阅系统
还在为微信公众号的碎片化阅读体验而烦恼吗?wewe-rss为你提供了一个完整的私有化微信公众号RSS解决方案,让你重新掌控自己的阅读节奏。这个开源项目基于微信读书接口,能够稳定获取公众号内容,并生成标准的RSS/Atom/JSON格式输出,完全由你自主掌控。
🎯 为什么需要私有化RSS订阅系统?
在信息过载的时代,微信公众号已成为重要的内容获取渠道。然而,传统订阅方式存在诸多痛点:平台依赖风险、隐私泄露担忧、更新延迟问题,以及功能单一局限。wewe-rss通过私有化部署完美解决了这些问题,让你完全掌控自己的订阅数据。
核心优势:
- 数据主权:所有订阅数据存储在你自己的服务器上
- 隐私保护:阅读习惯和订阅偏好不会被第三方收集
- 稳定可靠:基于微信读书接口,更新稳定可靠
- 格式兼容:支持RSS、Atom、JSON三种标准格式
- 全文输出:无需跳转即可阅读完整文章内容
WeWe RSS主界面展示,左侧为订阅列表,中间为文章内容,支持多种操作功能
🚀 快速部署:3分钟搭建你的私有化系统
准备工作与环境要求
在开始部署前,请确保你的系统满足以下要求:
- Docker和Docker Compose已安装
- 至少1GB可用内存
- 基本的命令行操作知识
方法一:Docker Compose一键部署(推荐)
这是最简单的部署方式,适合大多数用户:
# 克隆项目到本地
git clone https://gitcode.com/GitHub_Trending/we/wewe-rss
# 进入项目目录
cd wewe-rss
# 启动所有服务
docker-compose up -d
服务启动后,默认端口为4000,访问 http://localhost:4000 即可进入管理界面。
方法二:SQLite版本部署
如果你更喜欢轻量级的SQLite数据库,可以使用专门的配置文件:
# 使用SQLite版本的docker-compose配置
docker-compose -f docker-compose.sqlite.yml up -d
方法三:手动Docker部署
对于需要自定义配置的用户,可以使用以下命令:
# 创建docker网络
docker network create wewe-rss
# 启动MySQL数据库
docker run -d \
--name db \
-e MYSQL_ROOT_PASSWORD=your_password \
-e MYSQL_DATABASE='wewe-rss' \
-v db_data:/var/lib/mysql \
--network wewe-rss \
mysql:8.3.0
# 启动WeWe RSS服务
docker run -d \
--name wewe-rss \
-p 4000:4000 \
-e DATABASE_URL='mysql://root:your_password@db:3306/wewe-rss' \
-e AUTH_CODE=your_auth_code \
--network wewe-rss \
cooderl/wewe-rss:latest
⚙️ 关键配置与环境变量调优
正确的配置是系统稳定运行的关键。以下是几个重要的环境变量配置建议:
数据库配置
# 必填:数据库连接地址
DATABASE_URL=mysql://root:your_password@localhost:3306/wewe-rss
# 可选:数据库类型(使用SQLite时填写)
DATABASE_TYPE=sqlite
定时更新设置
# 定时更新频率(每天5:35和17:35各更新一次)
CRON_EXPRESSION=35 5,17 * * *
# 连续更新延迟时间(减少被封控风险)
UPDATE_DELAY_TIME=60s
性能与功能配置
# 每分钟最大请求次数(避免触发反爬机制)
MAX_REQUEST_PER_MINUTE=60
# 全文输出模式(启用后接口响应会变慢)
FEED_MODE=fulltext
# 服务端访问地址(用于生成RSS完整路径)
SERVER_ORIGIN_URL=http://your-domain.com
这些配置可以在 apps/server/.env 文件中设置,或者通过Docker环境变量传递。
📱 账号配置与管理指南
添加微信读书账号
首次使用需要配置微信读书账号:
- 进入账号管理页面,点击"添加读书账号"
- 使用微信扫码登录你的微信读书账号
- 重要提示:登录时不要勾选"24小时后自动退出"
账号状态说明
系统会显示账号的当前状态,帮助你了解账号可用性:
| 状态 | 说明 |
|---|---|
| 正常 | 账号可用,系统会自动使用该账号获取内容 |
| 今日小黑屋 | 账号被封控,等待24小时自动恢复 |
| 禁用 | 暂时不使用该账号 |
| 失效 | 登录状态失效,需要重新扫码登录 |
🔧 公众号订阅与内容管理
添加公众号订阅源
添加公众号订阅非常简单:
- 进入公众号源管理页面,点击"添加"按钮
- 粘贴微信公众号文章的分享链接
- 系统自动识别公众号信息并开始抓取历史文章
实用技巧:
- 避免短时间内频繁添加公众号,建议间隔24小时以上
- 可以从微信读书App中复制文章链接
- 系统支持批量导入,可以一次性添加多个公众号
RSS阅读器集成
wewe-rss生成的RSS链接格式为:
http://your-domain.com/feeds/MP_WXS_123.rss
其中 MP_WXS_123 是公众号的唯一标识符。你可以将这个链接添加到任何RSS阅读器中,如Feedly、Inoreader、Reeder等。
高级过滤功能
系统支持强大的标题过滤功能:
# 包含特定关键词的文章
/feeds/all.atom?title_include=技术|编程|AI
# 排除特定关键词的文章
/feeds/MP_WXS_123.json?title_exclude=广告|推广|营销
# 限制返回文章数量
/feeds/MP_WXS_456.rss?limit=20
⚡ 定时更新与手动触发
自动更新机制
系统默认每天5:35和17:35自动更新所有订阅源。这个定时任务通过Cron表达式配置,你可以在 apps/server/src/feeds/feeds.service.ts 中找到相关实现:
@Cron(process.env.CRON_EXPRESSION || '35 5,17 * * *', {
name: 'updateFeeds',
timeZone: 'Asia/Shanghai',
})
async updateFeeds() {
// 更新逻辑
}
手动触发更新
你也可以通过以下方式手动触发更新:
# 更新单个订阅源
curl "http://localhost:4000/feeds/MP_WXS_123.rss?update=true"
# 更新所有订阅源
curl "http://localhost:4000/feeds/all.json?update=true"
🏗️ 技术架构与核心模块
后端架构设计
wewe-rss采用现代化的技术栈构建:
- 后端框架:基于NestJS,提供完整的模块化架构
- 数据库支持:同时支持MySQL和SQLite
- 前端技术:React + TypeScript + Vite
- 构建工具:使用pnpm进行包管理
核心功能模块
系统的主要功能模块位于 apps/server/src/ 目录:
- feeds模块 (
apps/server/src/feeds/):处理订阅源管理和内容抓取 - prisma模块 (
apps/server/src/prisma/):数据库操作和ORM层 - trpc模块 (
apps/server/src/trpc/):类型安全的API通信
数据流转流程
- 内容抓取:通过微信读书接口获取公众号文章列表
- 数据处理:使用cheerio解析HTML内容,提取正文和元数据
- 格式转换:将原始数据转换为RSS/Atom/JSON格式
- 缓存存储:使用LRU缓存提高响应速度
- 定时更新:通过Cron任务定期检查新内容
💼 实际应用场景
个人知识管理
对于个人用户,wewe-rss可以帮助你:
- 技术学习:订阅技术教程类公众号,打造个人知识库
- 行业动态:关注行业领袖和专家,获取最新资讯
- 兴趣爱好:收集摄影、旅行、美食等内容,丰富生活
团队协作应用
对于技术团队,wewe-rss可以:
- 知识共享:创建团队技术RSS源,分享优质内容
- 竞品分析:监控竞品公众号,了解行业动态
- 内容聚合:将多个相关公众号聚合到一个RSS源中
内容创作者工具
自媒体运营者可以使用wewe-rss:
- 内容监控:跟踪竞品发布频率和内容策略
- 热点捕捉:设置关键词提醒,及时获取行业热点
- 数据分析:分析发布时间规律,优化自己的发布节奏
🔍 性能优化与最佳实践
缓存策略优化
系统使用LRU缓存机制,默认缓存5000条记录。你可以根据内存情况调整缓存大小:
// 在配置中调整缓存大小
const mpCache = new LRUCache<string, string>({
max: 10000, // 增加到10000条
});
数据库索引优化
对于大规模使用,建议在 apps/server/prisma/schema.prisma 中添加适当的索引:
model Article {
// ... 其他字段
@@index([feedId])
@@index([pubDate])
}
请求频率控制
为了避免触发反爬机制,合理配置请求频率:
# 降低更新延迟时间
UPDATE_DELAY_TIME=30s
# 降低每分钟请求次数
MAX_REQUEST_PER_MINUTE=30
🚨 常见问题与解决方案
账号被封控怎么办?
如果账号显示"今日小黑屋"状态:
- 等待自动恢复:系统会在24小时后自动清除小黑屋记录
- 多账号轮换:建议添加多个微信读书账号,系统会自动轮换使用
- 降低请求频率:调整
UPDATE_DELAY_TIME和MAX_REQUEST_PER_MINUTE参数
RSS链接无法访问?
检查以下配置:
- 服务地址配置:确保
SERVER_ORIGIN_URL正确设置 - 端口开放:确保4000端口在防火墙中开放
- 反向代理:如果需要通过域名访问,正确配置Nginx反向代理
内容更新不及时?
- 检查定时任务:确认Cron表达式正确配置
- 查看日志:检查服务日志,确认定时任务是否正常执行
- 手动触发:使用手动更新功能测试接口是否正常
📈 高级功能与扩展
OPML导出与备份
系统支持将所有订阅源导出为OPML格式,方便备份和迁移:
# 导出所有订阅源
curl "http://localhost:4000/feeds/opml"
多格式输出支持
除了标准的RSS格式,系统还支持:
- Atom格式:
/feeds/MP_WXS_123.atom - JSON格式:
/feeds/MP_WXS_123.json - 所有订阅源聚合:
/feeds/all.atom、/feeds/all.rss、/feeds/all.json
钉钉通知集成
项目还提供了钉钉通知功能,位于 wewe-rss-dingtalk 目录。按照README.md指引部署后,可以在内容更新时收到钉钉通知。
🎯 开始你的私有化订阅之旅
通过wewe-rss,你不仅获得了对内容的完全控制权,更重要的是重新找回了信息获取的主动权。告别信息碎片化,开启高效、有序的阅读新时代!
下一步行动建议:
- 从简单的Docker部署开始,体验基础功能
- 根据需求调整环境变量,优化性能表现
- 探索高级过滤功能,打造个性化阅读流
- 参与社区贡献,分享你的使用经验
wewe-rss作为一个活跃的开源项目,正在不断演进和完善。无论你是技术爱好者还是普通用户,都能从这个项目中获得价值。立即开始搭建你的私有化微信公众号订阅系统,重新掌控你的阅读世界!
更多推荐





所有评论(0)