现代RSS阅读器应用程序Gist

前言

什么是 Gist ?

Gist 是一款专为专注而设计的极简、高性能 RSS 阅读器。使用现代 Web 技术构建,提供无缝的阅读体验。它的功能主要集中在导入导出 RSS 源、AI 翻译与摘要、移动端和渐进式 Web 应用 (PWA) 的支持。

主要特点

  1. 导入导出 RSS:用户可以轻松地导入和导出他们的 RSS 源,以便在不同设备和平台之间迁移使用。
  2. AI 功能
    • 翻译:集成了 AI 翻译功能,来帮助用户理解外语内容。
    • 摘要:可为长篇文章生成简洁摘要,帮助用户快速获取文章的核心信息。
  3. 移动端和 PWA 支持Gist 优化了移动用户体验,并支持渐进式 Web 应用,使用户可以在各种设备上无缝使用。
  4. 开源项目Gist 是一个开源项目,用户和开发者可以访问其 GitHub 仓库,贡献代码和功能。

应用场景

  • 个人信息管理:适合需要定期获取新闻、博客更新或其他主题内容的用户。
  • 内容摘要与翻译:研究人员、学生和外语学习者可以利用其摘要与翻译功能,提高信息获取的效率。
  • 跨平台使用:适合希望在 PC、手机等多种设备间同步使用的用户,尤其是常在移动中阅读内容的人士。

Gist 提供了一种方便、功能丰富的 RSS 阅读体验,结合 AI 技术和移动支持,为现代用户的内容消费需求,提供了高效解决方案。

构建镜像

目前官方还没有提供 docker 镜像和 Dockerfile,老苏在 AI 协助下弄了一个,生成的镜像有点大,反正只是体验功能,优化的事等以后有时间再说吧

如果你不想自己构建,可以跳过,直接阅读下一章节

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 使用官方 Node.js 镜像    
FROM node:20 AS builder

WORKDIR /app

# 复制依赖文件
COPY package.json bun.lock ./

# 安装 bun
RUN npm install -g npm@latest && npm install -g bun

# 安装依赖
RUN bun install

# 复制项目文件
COPY . .

# 只生成Prisma客户端,不初始化数据库
RUN bunx prisma generate

# 构建 Next.js 应用
RUN bun run build

# 创建生产镜像
FROM node:20 AS runner

WORKDIR /app

# 复制构建产物
COPY --from=builder /app ./

# 确保 Bun 在运行时可用
RUN npm install -g bun

# 设定环境变量
ENV NODE_ENV=production

# ✅ 暴露端口
EXPOSE 3000

# 使用 bun 启动
CMD ["bun", "run", "start"]

构建镜像和容器运行的基本命令如下👇

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 下载代码
git clone https://github.com/9bingyin/Gist.git

# 进入目录
cd Gist

# 构建镜像
docker build -t wbsu2003/gist:v1 .

# 创建数据库
touch app.db

# 运行容器
docker run -d \
--restart unless-stopped \
--name gist \
-p 3166:3000 \
-v $(pwd)/app.db:/app/dev.db \
-e DATABASE_URL="file:./dev.db" \
wbsu2003/gist:v1

# 首次运行后,还需要进入容器初始化数据库
docker exec -it gist bunx prisma db push

安装

在群晖上以 Docker 方式安装。

因为首次运行后,还需要进入容器初始化数据库,所以我们采用命令行方式进行安装

docker cli 安装

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 新建文件夹 gist 和 子目录
mkdir -p /volume1/docker/gist

# 进入 gist 目录
cd /volume1/docker/gist

# 创建数据库
touch app.db

# 运行容器
docker run -d \
--restart unless-stopped \
--name gist \
-p 3166:3000 \
-v $(pwd)/app.db:/app/dev.db \
-e DATABASE_URL="file:./dev.db" \
wbsu2003/gist:latest

只有在第一次运行后,需要对数据库进行初始化操作

1
2
3
4
5
# 首次运行后,还需要进入容器初始化数据库 
docker exec -it gist bunx prisma db push

# 重启容器
docker restart gist

运行

在浏览器中输入 http://群晖IP:3166 就能看到主界面,界面布局和 Folo 是非常相像的

还是以老苏的博客 https://laosu.tech/atom.xml 为例

添加成功后

可以阅读原文

进入设置,可以设置 AI

还有 AI概括AI翻译,需要进入设置选项

硅基流动 为例

  • AI 服务提供商:使用默认的 OpenAI 兼容
  • Base URL: 填入 https://api.siliconflow.cn/v1
  • 模型名称: 如果觉得免费的 Qwen/Qwen2.5-7B-Instruct 或者 THUDM/glm-4-9b-chat 不行,可以试试 deepseek-ai/DeepSeek-V3.2
  • API Key: 你的硅基流动的 API 密钥,格式:sk-xxxxxxxxxxxx

目前硅基流动(SiliconFlow),注册就送 2000Tokens,虽然不是免费,但也够用一阵子的

注册地址:

https://cloud.siliconflow.cn/i/NkUiXVhQ

如果设置没问题,测试会有反馈

如果需要 AI翻译,需要启动 自动翻译

如果是从其他阅读器迁移过来,可以直接导入 OPML

手机浏览器上的效果也还不错,作为 Folo 的替代完全可行

参考文档

9bingyin/Gist: A modern RSS reader application built with Next.js.
地址:https://github.com/9bingyin/Gist

Folo 收费后我自己做了一个 RSS 阅读器 - V2EX
地址:https://www.v2ex.com/t/1180004