Fusion - 开源、轻量、自建友好的 RSS 聚合阅读器

地址:GitHub - 0x2E/fusion: A lightweight, self-hosted friendly RSS aggregator and reader

为什么又一个 RSS 阅读器

RSS 是我每日信息输入的主要方式。过去很长一段时间,我喜欢在家中的 Homelab 部署本地服务代替云服务,比如用 miniflux 代替 Feedly、Inoreader。

但是跨城市搬家导致 Homelab 长时间吃灰,这让我意识到需要将一些服务部署到 VPS/PssS 来确保可用性。VPS 的内存可谓寸土寸金,而 miniflux 需要额外运行 PostgreSQL 数据库服务。为了尽可能节省资源,我决定用 Go + SQLite 写一个轻量级 RSS 聚合器+阅读器(SQLite 是一个嵌入式数据库,不需要运行额外的服务)。

功能和特点

  • 分组、书签、搜索、自动嗅探、导入导出 OPML
  • 支持 RSS、Atom、JSON 格式的订阅源
  • UI 移动端友好,亮/暗模式,支持 PWA
  • 轻量且易部署,非常适合小 VPS
    • 使用 Go + SQLite 构建,一个二进制文件就能运行
    • 提供编译好的 Docker 镜像
    • 内存用量约 80MB(见下图)

2 个赞

让俺来试试看

1 个赞

跑起来了

另外有两个问题,一是不能自己阅读全文,得跳转原地址
二是是否可以设置代理

还有一个就是是否考虑汉化 :smiling_face_with_tear:

  1. 目前只使用 RSS 中给的内容。“抓取全文”未来可能会做 (Issues · 0x2E/fusion · GitHub
  2. 代理在每个订阅源的设置中的 Proxy 字段

UI 里的文字不多,也都是常见单词,所以就没考虑 i18n。

已经加进需求中了(第 10 个 issue,这里发不出来链接)。

好嘞

现在是根据 feed 来排序?

能不能混起来,根据时间来排序?

现在是根据时间排序的呀

我添加了三个 feed,结果是一个一个单独排序的

1 个赞

另外求个传统快捷键,之后就…比较完美了。

感谢反馈。

目前的排序逻辑是先根据获取数据的时间,再根据文章发布时间(RSS 中的 pubDate)。初衷是让新 feed 的文章,即使是旧文章,也能排在 unread 中靠前位置。这样比较符合直觉。

可以想象一下这种反直觉的情况:

  1. 此时 unread 堆积了一些 feed 近期发布的文章;
  2. 用户添加一个新 feed,其中包含一些 n 年前的旧文章;
  3. 添加成功,去 unread 看看;
  4. 奇怪,为什么 unread 中没有新 feed 的文章(其实是旧文章根据 pubDate 被排序到了 unread 的末尾页)。

我再想下这部分可以怎么做得更好。欢迎提出建议。

传统快捷键是指哪些呢,“ctrl/cmd + k” 触发“搜索”这种吗?

我觉得就是 Google Reader 快捷键 :joy:

1 个赞

感谢建议,已记录到 feat: shortcuts · Issue #11 · 0x2E/fusion · GitHub

呃不是发不出,是被认定了 spam…

现在应该好了。

1 个赞

可否添加fever或者Google reader的api,这样就可以在reeder上阅读了

目前其实也可以作为 reader 用的。试试 PWA 模式:

  1. 用 Chromium 家族的浏览器(比如 Chrome、Edge、Brave)打开网站;
  2. 安装到本机
    • 移动端浏览器的三个点 → 添加到主屏幕;
    • 桌面端浏览器地址栏右侧应该也会有个图标提示安装到本地;
  3. 之后的使用体验就跟 App 类似了。

至于联动其他 reader 服务,目前还没有开发计划。之后有时间我再看看 miniflux 集成了哪些。

感谢建议。

  1. 过度工程化。这段写了挺多又删掉了。层主可以跟其他软件工程师、 RSS 用户或 HomeLab 玩家讨论一下你的想法;
  2. 目前可以针对每个 feed 设置代理;
  3. “过早优化是万恶之源”。数据库性能完全不是问题,即使是 SQLite 加一个不好用的 ORM;
  4. 前几个月简单 launch 过一次,也上过 HN 的首页,我个人比较满足了。UI 众口难调,“精装型”的 Feedly 和 “毛坯型”的 Miniflux 我都用过一年以上,这两个完全不同的风格都没有影响效率和阅读体验。Fusion 我也尽可能地保持简洁直观,并且从前两者中吸取好的部分,比如 Feedly 的抽屉和浮动操作键、Miniflux 的极简列表和布局。但迫于个人设计能力欠缺,部分页面交互,比如 feed 管理页面,确实还有很大优化空间,正在尝试重构。

N年miniflux用户来说下。我是从miniflux 1版用上来的,到现在还在用着1的最后一个版本。那个只要php sqlite,任何虚拟主机都能跑。去年我用的主机商跑路了,就移到了nas上,到现在还没有动力去升级2.0版。