CommaFeed 是 Google Reader 风格的自托管 RSS 阅读器,基于 Java + React/TypeScript 构建。支持 Docker 一键部署、多用户管理、4 种布局和暗色主题,原生编译启动快内存占用低,所有数据本地存储,隐私安全可控。

🎤 引言

还记得 2013 年 Google Reader 关闭那天多少 RSS 党哭晕吗?十几年过去,托管服务要么收费要么跑路,自托管领域倒是冒出了不少好项目。但如果你最怀念的是 Google Reader 那套三栏式 + 快捷键的经典操作逻辑,这个 GitHub 上 CommaFeed 就是你要找的那个 —— 名字直接致敬「Comma」+「Feed」组合,UI 和交互几乎复刻 Google Reader。

它不是花哨的现代化 RSS 客户端(FreshRSS、Miniflux 那种极简风),而是 让老用户一秒找回熟悉感 的自托管方案。Java 后端 + React 前端,原生编译后启动只要几秒,2GB 内存就能跑起来。


⭐ 核心功能

1. Google Reader 经典布局

三栏式设计:左栏订阅源、中栏文章列表、右栏阅读区。所有操作逻辑(j/k 切换文章、s 标星、m 标记已读、v 打开原文)都沿用 Google Reader 快捷键,老用户零学习成本

2. 4 种阅读布局可选

不喜欢经典三栏?CommaFeed 提供 4 种布局切换:

  • Magazine:杂志风卡片流
  • Cinema:单栏全屏阅读
  • Title only:仅标题列表
  • Classic:Google Reader 原版三栏

3. 暗色主题 + 自定义样式

内置暗色主题,长期盯屏党友好。支持自定义 CSS,把阅读区调成你喜欢的字体、间距、配色。

4. 多用户支持

一份部署可以创建多个账号,适合团队/家庭共用,每个人订阅各自的源、互不干扰。管理员账号可统一管理用户。

5. 完整 RSS 功能

  • OPML 导入/导出(迁移老订阅源超方便)
  • 自动抓取 + 离线缓存(出差没网也能看历史)
  • 全文检索(即使订阅源只输出摘要也能搜到正文)
  • 文章归档(按日期/标签分组)

6. 插件扩展

支持自定义 fetcher 和 enrichment hook,比如自动抓取原文替换摘要、识别视频/音频内容等。


📥 安装使用

方式一:Docker Compose(推荐)

version: '3'
services:
  commafeed:
    image: athou/commafeed:latest
    container_name: commafeed
    restart: unless-stopped
    ports:
      - "8082:8082"
    volumes:
      - ./data:/app/data
    environment:
      - DATABASE_URL=jdbc:postgresql://db:5432/commafeed
      - DATABASE_USER=commafeed
      - DATABASE_PASSWORD=your_password_here
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    container_name: commafeed-db
    restart: unless-stopped
    volumes:
      - ./postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=commafeed
      - POSTGRES_USER=commafeed
      - POSTGRES_PASSWORD=your_password_here

启动后访问 http://your-ip:8082,默认管理员账号密码都是 admin登录后立刻改密码

方式二:单容器 H2 数据库(试用)

docker run -d \
  --name commafeed \
  -p 8082:8082 \
  -v /opt/commafeed:/app/data \
  athou/commafeed:latest

H2 数据库适合测试和小规模使用,生产建议换 PostgreSQL。

方式三:原生编译包(性能党)

Releases 下载对应平台的 native 包:

# Linux 示例
wget https://github.com/Athou/commafeed/releases/latest/download/commafeed-linux-amd64.zip
unzip commafeed-linux-amd64.zip
./commafeed

原生编译启动时间 < 1 秒,内存占用比 JVM 版本低 60%+。

导入 OPML 订阅源

从老 RSS 阅读器导出 OPML → CommaFeed 设置 → Import/Export → 上传 OPML → 全部订阅自动同步。


🎯 适用场景

Google Reader 遗老 —— 如果你 2013 年那批 RSS 重度用户,CommaFeed 就是为你们打造的。

个人隐私党 —— 数据全部本地存储,没有任何第三方追踪,订阅习惯、阅读历史都在自己服务器上。

团队知识管理 —— 多用户功能让小团队可以共享一个 RSS 池,技术博客、行业资讯统一管理。

NAS 用户 —— Docker 部署简单,资源占用低,扔到家里 NAS 上常年挂着毫无压力。

快捷键流 —— 习惯键盘流操作的人会爱上 CommaFeed 的 j/k/s/m 等快捷键,比鼠标点来点去效率高太多。

不适合谁:追求极致现代 UI 的人 —— 它故意保留经典风格,不喜欢 Google Reader 那套的人会觉得「老气」。


🔍 对比/替代方案

工具类型优势劣势
CommaFeed自托管 JavaGoogle Reader 经典、快捷键流、多用户UI 偏复古、原生包少
FreshRSS自托管 PHP轻量、扩展丰富、中文友好UI 现代但无经典模式
Miniflux自托管 Go极简、API 完善、Go 单文件单用户、风格简洁
Tiny Tiny RSS自托管 PHP老牌项目、插件生态完善UI 复杂、配置繁琐
Inoreader托管服务零部署、跨端同步收费、订阅上限
Feedly托管服务AI 推荐、UI 现代收费、隐私顾虑

关键差异:CommaFeed 的核心定位是 「Google Reader 体验 + 自托管隐私」,适合既要老操作逻辑又要数据自主的用户。其他项目要么走向现代化(FreshRSS/Miniflux),要么还是太复杂(TT-RSS)。


⚠️ 注意事项

1. Java 资源占用

虽然原生编译后内存占用大幅下降,但 Docker 默认走的还是 JVM 镜像。1GB 内存以下的小机器建议:

  • 用 native 镜像代替 JVM 镜像
  • 启用 JVM 主动释放内存参数(README 有说明)

2. 默认账号安全

Docker 启动后默认 admin/admin首次登录立刻改密码。如果是公网部署,建议同时:

  • 修改默认端口(8082 → 其他)
  • 加 Nginx 反向代理 + HTTPS
  • 启用 fail2ban 防爆破

3. 订阅源抓取频率

CommaFeed 默认每 30 分钟抓取一次订阅源。如果订阅了上千个源,数据库压力会比较大

-- 可以调低抓取频率(设置 → 管理)
UPDATE _category SET polling_timeout = 3600000;  -- 改 1 小时

4. 迁移成本

想从 Inoreader/Feedly 迁出?导出 OPML 时注意:

  • 部分付费订阅源可能不包含在 OPML 里
  • 标签和文件夹结构有时会丢失
  • 建议先小规模测试再全量迁移

5. 中文支持

UI 已基本完成 i18n,但部分翻译略生硬。可以自行修改 i18n/ 下的 JSON 文件改进。

6. 移动端

CommaFeed 本身没官方移动 App,但响应式设计在手机浏览器能用。更优解:用 ReederNetNewsWire 通过 Fever API 接入 CommaFeed。


✅ 总结

CommaFeed 是个很纯粹的项目 —— 不追求花哨功能、不追新潮 UI,就想把 Google Reader 那套体验完整搬到自托管场景下。对于从那个时代过来的 RSS 重度用户,它是最舒服的选择。

优点

  • ✅ Google Reader 原版操作逻辑,零学习成本
  • ✅ 原生编译启动快、资源占用低
  • ✅ 多用户、4 种布局、暗色主题齐全
  • ✅ Java + React 技术栈稳定,活跃维护
  • ✅ 自托管 + 本地存储,隐私可控

缺点

  • ⚠️ UI 设计偏老气,不适合追新潮的用户
  • ⚠️ Docker JVM 镜像内存占用相对较高(建议用 native 包)
  • ⚠️ 移动端体验一般,需要第三方 App 配合

推荐指数:⭐⭐⭐⭐(4/5)—— 如果你怀念 Google Reader,或者想给团队搭个共享 RSS 池,CommaFeed 是当下最稳妥的自托管选择之一。

🔗 GitHub 仓库https://github.com/Athou/commafeed
🌐 在线演示https://www.commafeed.com
📦 Releaseshttps://github.com/Athou/commafeed/releases
📄 许可协议:Apache-2.0