找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1042

积分

0

好友

152

主题
发表于 13 小时前 | 查看: 2| 回复: 0

什么是 RSSPub ?

RSSPub 是一个使用 Rust 编写的自托管应用程序,其核心功能是将用户的 RSS/Atom 订阅源自动转换并打包成个人化的每日新闻报(EPUB 格式)。它能够自动抓取文章、智能处理图片,最终生成适合在电子阅读器或平板电脑上阅读的 EPUB 文件。此外,RSSPub 还内置了一个 OPDS 订阅源服务器,允许用户通过 KOReader、Moon+ Reader 等兼容的阅读器客户端直接浏览和下载生成的 EPUB 文件,构建完整的内容获取与阅读闭环。

主要特性

  1. RSS/Atom 解析:自动抓取并解析用户配置的 RSS/Atom 订阅源内容。
  2. EPUB 生成:将抓取到的文章内容编译成格式规范、排版良好的 EPUB 电子书。
  3. 图片优化:自动下载文章内图片,并进行优化处理(如转为灰度、调整尺寸),以提升在电子墨水屏设备上的显示效果。
  4. Web 管理界面:提供简洁的网页 UI,用于管理订阅源、配置生成计划以及手动触发生成任务。
  5. OPDS 目录服务:内置 OPDS 服务器(可通过 /opds 路径访问),方便阅读器直接发现和下载 EPUB 文件。
  6. 定时任务调度:支持基于 Cron 表达式的定时任务,实现 EPUB 的自动周期生成。
  7. 基础身份验证:提供可选的 HTTP 基本认证功能,以保护你的应用实例。
  8. 邮件送达:可配置自动将生成的 EPUB 文件作为附件发送到指定邮箱,完美适配 Send-to-Kindle 等服务。
  9. 高性能:基于 Rust、Axum 和 Tokio 异步运行时构建,具备高性能与低资源占用的特点。

应用场景

  • 个人信息聚合:将分散在各个网站、博客的新闻源聚合起来,生成统一的每日电子简报,便于集中阅读与归档。
  • 自托管数据管理:适合注重数据隐私与控制权,希望将内容获取与处理流程完全掌握在自己手中的用户。
  • 离线阅读优化:通过生成优化后的 EPUB 文件,获得比直接浏览网页更佳、更专注的阅读体验,尤其适合通勤或网络不佳时使用。
  • 自动化内容流:为需要定期阅读大量资讯的用户,自动化完成“抓取-整理-推送”的全流程,节省手动操作时间。
  • 简易管理与定制:通过直观的 Web 界面,轻松完成订阅源的增删改查及生成规则的设定。

RSSPub 架构示意图

总而言之,RSSPub 提供了一个高效、灵活的解决方案,帮助用户轻松地获取、整理并舒适地阅读自己真正感兴趣的内容。


安装部署

我们将在群晖 NAS 上通过 Docker 容器来安装和运行 RSSPub。

通过 Docker 图形界面安装

  1. 打开群晖的 Docker 套件,进入“注册表”页面。
  2. 搜索关键词 rsspub,在结果中选择第一个 harshit181/rsspub 镜像。
  3. 在标签页选择 latest(本文撰写时,该标签对应版本为 0.96.2),点击“下载”。

搜索 rsspub 镜像

配置存储卷

在 Docker 套件的“映像”中,双击已下载的 rsspub 镜像以创建容器。在“卷”设置选项卡中,添加以下文件夹映射:

  • 文件/文件夹:在 docker 共享文件夹下,新建 rsspub/data 目录。
    • 装载路径/app/db
    • 说明:用于存放应用程序的数据库文件。
  • 文件/文件夹:在 docker 共享文件夹下,新建 rsspub/epubs 目录。
    • 装载路径/app/static/epubs
    • 说明:用于存放生成的 EPUB 文件。

配置 Docker 卷映射

配置网络端口

在“端口设置”选项卡中,设置本地端口与容器端口的映射。

  • 本地端口:选择一个未被占用的端口,例如 3364。可通过命令 netstat -tunlp | grep 端口号 检查端口占用情况。
  • 容器端口3000(此为 RSSPub 应用默认端口)。

配置 Docker 端口映射

配置环境变量

在“环境”选项卡中,可以设置以下可选环境变量来定制应用行为:

变量名 值示例 说明
RUST_LOG info 设置日志级别,如 infoerror
RPUB_USERNAME laosu 为 Web 界面设置基本认证的用户名。
RPUB_PASSWORD 123456 为 Web 界面设置基本认证的密码。

配置 Docker 环境变量

完成以上配置后,启动容器即可。

通过 Docker 命令行安装

对于熟悉命令行的用户,使用 Docker CLI 或 Docker Compose 是更快捷的部署方式。

使用 Docker CLI

通过 SSH 连接到你的群晖 NAS,执行以下命令:

# 1. 创建必要的目录结构
mkdir -p /volume1/docker/rsspub/{data,epubs}

# 2. 进入应用目录
cd /volume1/docker/rsspub

# 3. 运行 Docker 容器
docker run -d \
   --restart unless-stopped \
   --name rsspub \
   -p 3364:3000 \
   -v $(pwd)/data:/app/db \
   -v $(pwd)/epubs:/app/static/epubs \
   -e RPUB_USERNAME=laosu \
   -e RPUB_PASSWORD=123456 \
   harshit181/rsspub:latest

使用 Docker Compose(推荐)

将以下配置保存为 docker-compose.yml 文件:

services:
  rsspub:
    image: harshit181/rsspub:latest
    container_name: rsspub
    restart: unless-stopped
    ports:
      - "3364:3000"
    volumes:
      - ./data:/app/db
      - ./epubs:/app/static/epubs
    environment:
      - RUST_LOG=info,html5ever=error
      - RPUB_USERNAME=laosu
      - RPUB_PASSWORD=123456

然后,在 SSH 中执行:

# 1. 创建目录并进入
mkdir -p /volume1/docker/rsspub/{data,epubs}
cd /volume1/docker/rsspub

# 2. 将上述 docker-compose.yml 文件上传或创建在当前目录
# 3. 启动服务
docker-compose up -d

Docker Compose 启动成功


基础使用教程

容器成功启动后,在浏览器中访问 http://你的群晖IP:3364 即可打开 RSSPub 的 Web 管理界面。

首次访问时,如果配置了 RPUB_USERNAMERPUB_PASSWORD 环境变量,会弹出登录框,输入凭证即可。

RSSPub 登录界面

登录后的主界面如下图所示:

RSSPub 主管理界面

添加订阅源并生成 EPUB

我们以添加一个博客的 Atom 订阅源为例:

  1. 在 “Add New Feed” 区域填写信息:
    • Feed URL:订阅源的地址,例如 https://laosu.tech/atom.xml
    • Name (Optional):为该订阅源起一个易于识别的名字,如“老苏的博客”。
    • Limit (0=Unlimited):单次生成时抓取的最大文章数量,留空或填 0 表示不限。
  2. 点击 “Add Feed” 按钮保存。

添加新的 RSS 订阅源

添加成功后,该订阅源会出现在下方的列表中。点击其右侧的 “Generate EPUB Now” 按钮,RSSPub 便会开始后台抓取内容并生成 EPUB 文件。

手动触发生成 EPUB

生成的 EPUB 文件会存储在我们之前映射的 docker/rsspub/epubs 目录中,你可以通过文件管理器直接访问。

查看已生成的 EPUB 文件

使用 Calibre、Apple Books 或任何支持 EPUB 的阅读器打开该文件,可以看到文章内容、图片均被完整抓取并进行了良好的排版。

在阅读器中查看生成的 EPUB
EPUB 内文排版效果

通过 OPDS 服务直接推送至阅读器

RSSPub 内置的 OPDS 服务是另一个亮点。访问 http://你的群晖IP:3364/opds,你会看到一个标准的 OPDS 目录页面。

RSSPub 内置的 OPDS 目录

在 Moon+ Reader、静读天下等支持 OPDS 的阅读器 App 中,添加此地址作为书源,即可直接在阅读器内浏览、下载 RSSPub 生成的所有 EPUB 电子书,实现无缝的“发布-订阅”阅读体验。

在移动阅读器中添加 OPDS 源

高级功能:定时任务与邮件推送

在 Web 界面的 “Schedule” 部分,你可以配置 Cron 表达式来设定 EPUB 的自动生成周期(例如每天凌晨生成)。结合 “Email Delivery” 配置,可以将新生成的 EPUB 文件自动发送到你的 Kindle 邮箱或其他指定邮箱,实现全自动化的“日报”推送流程。


参考文档




上一篇:Rust 1.92.0版本发布:never类型lint升级、Result处理优化与新API详解
下一篇:AI技术变革的社会影响与治理:从历史视角看人工智能时代的挑战与应对
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-17 15:12 , Processed in 0.106432 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表