简介
什么是 Oksskolten ?
Oksskolten(发音:ooks-SKOL-ten)是一个开源的 AI 原生 RSS 阅读器。它可以帮助用户自动提取每篇文章的全文内容,并基于完整文章提供 AI 摘要、翻译和对话功能。
与传统的 RSS 阅读器不同,Oksskolten 默认对所有文章进行全文提取,使用 Mozilla 的 Readability 加上 500 个噪声去除模式,将文章转换为干净的 Markdown 格式存储。你永远不需要离开应用就能阅读完整文章。
主要特点
- 全文自动提取:每篇文章都会从原始
URL 抓取并通过 Readability 处理,无需逐个订阅开启
- AI 摘要与翻译:支持
Anthropic、Gemini、OpenAI 等多种 AI 提供商,基于完整文章内容进行处理
- 交互式 AI 对话:内置
MCP 工具的多轮对话,可以搜索文章、获取统计信息和提问
- 全文搜索:基于
Meilisearch 的搜索功能,支持模糊搜索
- 智能抓取:自适应订阅调度、条件
HTTP 请求、内容哈希去重
- PWA 支持:离线阅读、后台同步、添加到主屏幕
- 多种认证方式:密码、
Passkey(WebAuthn)和 GitHub OAuth
- 自定义主题:
14 种内置颜色主题,支持 JSON 导入自定义主题
- 单容器部署:
API、SPA 和定时任务都在一个 Docker 容器中运行
- 开源免费:基于
AGPL-3.0 协议开源,可免费使用和修改
应用场景
- 个人知识管理:订阅技术博客、新闻网站,自动获取全文并建立可搜索的文章库
- AI 辅助阅读:让
AI 为长文章生成摘要,快速了解文章核心内容
- 多语言阅读:订阅外文网站,使用
AI 翻译功能阅读外文内容
- 开发者追踪:订阅开源项目动态、技术周刊,通过全文搜索快速找到需要的信息
- 自托管数据:所有数据存储在本地
SQLite,不受第三方服务涨价或关闭的影响

总的来说,Oksskolten 是一个将全文提取和 AI 能力作为核心功能的 RSS 阅读器,适合希望在一个应用内完成阅读、搜索和 AI 交互的用户。
安装
在群晖上以 Docker 方式安装。
官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以直接用命令行来安装。
本文写作时, latest 版本对应为 0.4.1;

docker-compose 安装
该项目包含多个服务(server、meilisearch、rss-bridge、flaresolverr),建议使用 docker-compose 进行部署。
将下面的内容保存为 docker-compose.yml 文件:
services:
server:
image: ghcr.io/babarot/oksskolten:latest
container_name: oksskolten-server
restart: unless-stopped
ports:
- "5174:3000"
volumes:
- ./data:/app/data
environment:
NODE_ENV: production
MEILI_MASTER_KEY: AiHs2ExZdC756DaPrFL25j27n5EBVxhu
TZ: Asia/Shanghai
SCORE_RECALC_SCHEDULE: 0 3 * * *
meilisearch:
image: getmeili/meilisearch:v1.13
container_name: oksskolten-meilisearch
restart: unless-stopped
# ports:
# - "5173:7700"
volumes:
- ./meili_data:/meili_data
environment:
MEILI_ENV: production
MEILI_MASTER_KEY: AiHs2ExZdC756DaPrFL25j27n5EBVxhu
rss-bridge:
image: rssbridge/rss-bridge:latest
container_name: oksskolten-rssbridge
restart: unless-stopped
# ports:
# - "5175:80"
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: oksskolten-flaresolverr
restart: unless-stopped
# ports:
# - "5176:8191"
environment:
LOG_LEVEL: info
环境变量说明,参照了 https://github.com/babarot/oksskolten/blob/main/.env.example
| 变量名 |
示例值 |
说明(含默认值与使用场景) |
| JWT_SECRET |
my-very-secret-key |
JWT 签名用的秘钥;默认会自动生成并存入数据库,一般只在需要固定秘钥(例如多实例部署、迁移数据)时手动设置。 |
| LOG_LEVEL |
debug |
日志级别;默认是 info,设置为 debug 可输出更详细日志,便于开发排查问题。 |
| TZ |
Asia/Shanghai |
应用使用的时区;默认 UTC,可改为实际部署地区(如 Asia/Shanghai)以匹配本地时间显示。 |
| AUTH_DISABLED |
1 |
是否关闭认证,仅在 NODE_ENV=development 时可用;设置为 1 会禁用登录鉴权,仅供本地调试。 |
| SCORE_RECALC_SCHEDULE |
0 3 * * * |
评分重算的 cron 表达式;默认 */5 * * * *(每 5 分钟),可改为每天运行一次以减少负载。 |
| MEILI_MASTER_KEY |
<string> |
Meilisearch 的主密钥,生产环境必需,用于保护搜索服务及管理接口权限。 |
| TUNNEL_TOKEN |
<token> |
Cloudflare Tunnel 的令牌,生产环境通过隧道暴露服务时必需。 |
| DATA_DIR |
$HOME/.oksskolten/data |
数据目录;默认 ./data(相对路径),生产环境建议改为绝对路径便于持久化和备份。 |
| TURSO_AUTH_TOKEN |
<token> |
Turso 数据库的授权令牌;仅在使用 Turso 替代本地 SQLite 时需要配置。 |
然后通过 SSH 登录到您的群晖,执行下面的命令:
# 新建文件夹 oksskolten 和 子目录
mkdir -p /volume1/docker/oksskolten/{data,meili_data}
# 进入 oksskolten 目录
cd /volume1/docker/oksskolten
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d

提示:该项目包含多个服务,首次启动需要拉取多个镜像,请耐心等待。
运行
在浏览器中访问 http://<群晖IP>:5174 即可进入初始化账号界面

登录后的主界面

点 Get Started

点 Feed

只要输入 URL 就行,Name 会自动获取的,例如:https://laosu.tech/atom.xml

添加成功后

点击左侧的 Feed

选中一篇文章,和以往只获取摘要不同,这次获取的是全文

设置
左下角进入 Settings,虽然支持多语言,但是只有英文和日文

虽然支持 AI,但是不灵活,只能设 API Key,不能设置 URL,但是如果安装了 Ollama 还是不错的。从这里可以看到,它支持多种 AI 模型提供商。

如果你订阅的英文多,还可以设置翻译和总结

注意事项
- 数据持久化:务必挂载
/data 目录,SQLite 数据存储在此
- 端口冲突:使用
5174 端口,如有冲突可在 docker-compose.yml 中修改
- AI 功能:
AI 摘要、翻译和对话功能需要配置对应的 API Key
- FlareSolverr:用于处理有反爬保护的网站,可选但建议保留
- 定时抓取:默认每
5 分钟抓取一次订阅,可通过 CRON_SCHEDULE 环境变量调整
- 安全建议:生产环境务必设置
MEILI_MASTER_KEY
参考文档
babarot/oksskolten: 🏔️ The AI-native RSS reader
地址:https://github.com/babarot/oksskolten
Oksskolten — The AI-native RSS reader
地址:https://oksskolten.com/
Oksskolten 在线演示
地址:https://demo.oksskolten.com
作为一个集成了全文抓取、智能搜索和 人工智能 对话功能的工具,Oksskolten 为 RSS 阅读带来了新的思路。如果你也喜欢尝试这类 开源 项目,不妨按照教程部署一个,在 云栈社区 分享你的使用体验。