news 2026/6/15 18:11:23

RSSPub:RSS聚合器及EPUB生成器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RSSPub:RSS聚合器及EPUB生成器

简介

什么是 RSSPub ?

RSSPub是一个自托管的 Rust 应用程序,旨在将用户的RSS/Atom订阅源转换为个人化的每日新闻报(EPUB格式)。该工具自动抓取文章、处理图片,并将所有内容打包成可供e-reader或平板电脑阅读的EPUB文件。此外,RSSPub还提供了一个OPDS订阅源,使用户能够直接下载生成的EPUB文件到兼容的阅读器中,如KOReaderMoon+ Reader

主要特点

  1. RSS/Atom 解析:自动抓取和解析用户配置的RSS/Atom订阅源内容。
  2. EPUB 生成:将抓取的文章编译成格式良好的EPUB电子书。
  3. 图片优化:下载并处理图片,以提高在e-reader上的显示效果(如灰度、调整大小)。
  4. 网页界面:提供一个简单的网页UI,以管理订阅源、设置生成时间表,并手动触发生成。
  5. OPDS 目录:内置OPDS服务器(/opds),用户可以浏览并下载生成的EPUB文件。
  6. 调度功能:根据用户配置的cron表达式自动生成EPUB文件。
  7. 身份验证:可选的基本身份验证,以保护应用实例。
  8. 电子邮件送达:可自动将生成的EPUB文件发送到配置的电子邮件地址,如Send-to-Kindle
  9. 高性能:基于RustAxumTokio构建,具有高性能和低资源消耗的特点。

应用场景

  • 个人信息管理:用户可以将自己喜欢的新闻源转换为每日电子报,方便随时阅读。
  • 自托管解决方案:适合希望控制个人数据并使用自托管应用的用户。
  • 阅读优化:通过优化的EPUB文件和图片处理,提升阅读体验。
  • 自动化工作流:对于需要定期读取新闻的用户,自动生成电子书并通过电子邮件发送,省去手动操作。
  • 简易管理:通过简单的网页界面,轻松管理和定制RSS订阅源。

总之,RSSPub提供了一个灵活且高效的方式,让用户能够轻松获取、整理和阅读自己感兴趣的内容。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索rsspub,选择第一个harshit181/rsspub,版本选择latest

本文写作时,latest版本对应为0.96.2

docker文件夹中,创建一个新文件夹rsspub,并在其中建一个子文件夹data

文件夹装载路径说明
docker/rsspub/data/app/db存放数据库文件
docker/rsspub/epubs/app/static/epubs存放生成的epub文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用netstat-tunlp|grep端口号
本地端口容器端口
33643000

环境

可变
RUST_LOG日志级别设置(如infoerror
EPUBS_HOST_DIR存储生成EPUB文件的目录
RPUB_USERNAME用于基本身份验证的用户名
RPUB_PASSWORD用于基本身份验证的密码

命令行安装

如果你熟悉命令行,可能用docker cli更快捷

# 新建文件夹 rsspub 和 子目录mkdir-p /volume1/docker/rsspub/{data,epubs}# 进入 rsspub 目录cd/volume1/docker/rsspub# 运行容器docker run -d\--restart unless-stopped\--name rsspub\-p3364:3000\-v$(pwd)/data:/app/db\-v$(pwd)/epubs:/app/static/epubs\-eRPUB_USERNAME=laosu\-eRPUB_PASSWORD=123456\harshit181/rsspub:latest

也可以用docker-compose安装,将下面的内容保存为docker-compose.yml文件

services:rsspub:image:harshit181/rsspub:latestcontainer_name:rsspubrestart:unless-stoppedports:-"3364:3000"volumes:-./data:/app/db-./epubs:/app/static/epubsenvironment:-RUST_LOG=info,html5ever=error-RPUB_USERNAME=laosu-RPUB_PASSWORD=123456

然后通过SSH登录到您的群晖,执行下面的命令:

# 新建文件夹 rsspub 和 子目录mkdir-p /volume1/docker/rsspub/{data,epubs}# 进入 rsspub 目录cd/volume1/docker/rsspub# 将 docker-compose.yml 放入当前目录# 一键启动docker-compose up -d

运行

在浏览器中输入http://群晖IP:3364就能看到主界面

登录成功后的主界面

还是以老苏的博客为例

  • Feed URL: 订阅地址为https://laosu.tech/atom.xml
  • Name(Optional):老苏的博客
  • Limit(0=Uni):可以不填,默认为Unlimited

Generate EPUB Now后会在后台生成epub文件

生成的epubepubs目录中

打开下载的epub文件

格式什么的都挺不错的

通过http://群晖IP:3364/opds可以访问内置的OPDS服务

可以使用静读天下等客户端访问

另外RSSPub支持Schedule实现定时生成,并通过邮件自动发送epubkindle

参考文档

harshit181/RSSPub
地址:https://github.com/harshit181/RSSPub

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

代码之恋(第十一篇:周末的Bug与意外的Commit)

周六的武汉,阳光透过窗帘洒进李磊的公寓,他坐在电脑前,咳嗽声已经消失,但鼻音还在。屏幕上,一个GitHub仓库的页面闪烁着——那是他和艾丽共同维护的"Collaboration_v3.0",一个基于微服务架构的协…

作者头像 李华
网站建设 2026/6/15 13:03:44

Python开发:从入门到资深

目录 第一部分:见道——Python基础与编程思想 第1章:缘起——初识Python与编程世界 1.1 万法皆有源:编程与计算机科学的简史。1.2 为何是Python:Python的哲学——“禅”与“道”。1.3 工欲善其事:搭建你的第一个Pyt…

作者头像 李华
网站建设 2026/6/15 13:07:26

19、深入了解SMB协议:实现Linux与Windows的集成

深入了解SMB协议:实现Linux与Windows的集成 1. Windows 98与Samba的性能问题 Windows 98的资源管理器(可能还有其他程序)在向网络共享发送写入请求时,会错误地设置 “sync” 位。这会导致严重的性能下降,因为Samba会在每次写入后正确地对文件执行 fsync() 操作。再加上…

作者头像 李华
网站建设 2026/6/15 13:45:50

24、私有 IP 网络地址分配解析

私有 IP 网络地址分配解析 1. 引言 在本文语境中,企业是指自主运营使用 TCP/IP 网络,并能自主决定网络内地址规划和分配的实体。本文着重探讨私有互联网的地址分配问题。这种分配方式既能保证企业内部所有主机间的网络层连通性,也能确保不同企业的公共主机间的连通性。不过…

作者头像 李华
网站建设 2026/6/15 13:09:41

14、UNIX/Linux Shell编程实用指南

UNIX/Linux Shell编程实用指南 1. 检测并处理崩溃生成的文件 在程序崩溃时,有时会生成一个名为 core 的文件,这个文件通常很大,往往需要将其删除。下面我们将编写一个脚本,每分钟检查一次主目录中是否生成了 core 文件,如果生成了,就在终端输出警告信息并终止脚本。…

作者头像 李华
网站建设 2026/6/15 13:53:29

自然语言处理容易混淆知识点(一)c-TF-IDF和TF-IDF的区别

c-TF-IDF 和 TF-IDF 什么是 c-TF-IDF?传统 TF-IDFc-TF-IDF(基于类的 TF-IDF) c-TF-IDF 的计算公式直观理解在 BERTopic 中的工作流程代码示例:使用 c-TF-IDF与传统 TF-IDF 对比c-TF-IDF 的优势自定义 c-TF-IDF 参数可视化 c-TF-ID…

作者头像 李华