本地优先的内容聚合工具 Tangentry:用 Docker 在 NAS 搭私人阅读服务器
简介
什么是 Tangentry ?
Tangentry是一个开源的本地优先的多平台内容聚合、阅读与笔记工具。它把B站、YouTube、小红书、抖音、小宇宙播客、RSS与网页文章收进同一个阅读器,看视频时可以读字幕、截帧做笔记、一键转录与翻译,所有数据都留在自己的电脑上。
主要特点
- 多平台内容聚合:一个入口订阅和浏览
B站UP主、YouTube频道、小宇宙播客、RSS/Atom/JSON Feed、linux.do话题以及小红书、抖音内容,支持分组、收件箱、已读状态、定时刷新与OPML导入导出 - 阅读优先:视频和播客也可以”读”——字幕跟随高亮、点击跳转、字幕内搜索、播放进度记忆;网页正文自动提取(
Readability),PDF也能在同一阅读器中打开 - 笔记即资产:时间戳笔记、原文划线笔记、
PDF锚点、截帧附图、字幕引用、嵌套标签、全文搜索;可导出Markdown ZIP(含Obsidian frontmatter) - 转录与 AI 能力:本机转录支持
whisper.cpp/faster-whisper/Qwen3-ASR,云端支持Groq、SiliconFlow、Cloudflare Workers AI等;AI助手接入任意OpenAI兼容接口,实现摘要、字幕与正文翻译 - 下载能力:内置
yt-dlp+FFmpeg,支持音视频下载、队列与超时控制,Docker镜像开箱即用 - 本地优先与隐私:
SQLite存储在本机,无遥测、无云端账号,平台Cookie与API Key只保存在数据目录,抓取网页时拒绝访问内网地址(防SSRF) - 多端运行:原生桌面应用(
macOS/Windows/Linux)或Docker自托管,浏览器访问 - 开源免费:基于
MIT协议开源,可免费使用和修改
应用场景
- 个人知识管理:把各平台的收藏、课程、讲座统一沉淀为一个可搜索、可长期留存的本地资料库,配合
Obsidian形成第二大脑 - 学生学习与研究者:看课程视频时用字幕阅读器逐句学习,做时间戳笔记;论文
PDF划线批注,AI生成摘要 - 播客听众:小宇宙单集自动生成可阅读、可跳转的文字稿,没有文字稿的播客可一键转录
- 家庭 NAS 用户:通过
Docker部署在群晖等NAS上,全家人共用一台”内容服务器”,数据完全掌握在自己手里 - RSS 重度用户:支持
OPML从其他阅读器迁移,订阅分组与收件箱管理,定时自动刷新

Tangentry 是一个把”刷内容”变成”读内容、记内容”的本地优先工具,适合希望把散落各平台的内容聚合沉淀、又不愿意把数据交给云服务的用户。目前还处于早期阶段。
安装
在群晖上以 Docker 方式安装。
官方没有提供镜像,所以本文使用了第三方镜像 muzileee/tangentry,支持 linux/amd64 与 linux/arm64 多架构。
在注册表中搜索 tangentry,选择 muzileee/tangentry,版本选择 latest。
本文写作时,
latest版本对应为v0.0.2。

反向代理
如果使用 http://<群晖IP>:7380 访问,在播放视频页面,可能会显示

所以需要通过反代,实现 https 协议访问
| 域名 | 局域网地址 | 备注 |
|---|---|---|
tgt.laosu.tech |
http://192.168.0.197:7380 |
Tangentry 的访问地址 |
老苏现在的架构是三层:
浏览器 → https://tgt.laosu.tech (Cloudflare) → cloudflared → http://192.168.0.197:2080 (NPM) → http://192.168.0.197:7380 (Tangentry)
还需要在 Advanced –> Custom Nginx Configuration 中增加一句
1 | proxy_set_header Host $host; |

否则访问时可能会显示下面的错误
1 | forbidden origin |
docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 tangentry 和 子目录 |
环境变量说明:
TANGENTRY_PASSWORD为服务端登录密码,不设置时首次启动会自动生成并写入容器日志与/data/admin-password文件;建议主动设置一个自己的密码。
docker-compose 安装
将下面的内容保存为 docker-compose.yml 文件:
1 | services: |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 tangentry 和 子目录 |

运行
在浏览器中访问反代后的域名 https://tgt.laosu.tech 即可进入 Web 界面。

获取登录密码:
- 查看容器日志(
docker logs tangentry,搜索password),或读取数据目录下的/data/admin-password文件; - 如果部署时设置了
TANGENTRY_PASSWORD,直接用设置的密码
登录成功后的主界面,建议按「设置 → 添加内容 → 阅读 → 笔记」的顺序走一遍

在「设置」中完成初始配置:
- 账号:扫码登录
B站,可获得关注动态、收藏夹同步和更高清晰度

Cookie 只保存在本机数据目录

- AI:填写 OpenAI 兼容接口的
Base URL、Model和API Key(如OpenAI、DeepSeek、硅基流动、本地Ollama等)
以硅基流动为例
- 接口地址:
https://api.siliconflow.cn/v1 API密钥: 你在硅基流动申请的API Key

目前硅基流动(SiliconFlow)注册就送 16 元的代金券的活动还在继续中
注册地址:
https://cloud.siliconflow.cn/i/NkUiXVhQ

- 转录:选择本机模型(首次会下载)或填入云端转录服务的
API Key

- 工具:
yt-dlp/FFmpeg在Docker镜像中已内置,可直接查看状态

通过「添加内容」粘贴 B站 / YouTube / 小红书 / 小宇宙 / 网页链接或 RSS 地址

开始阅读与记笔记

提示:
B站内嵌播放器无法直接读取播放时间,如需字幕跟随与时间戳笔记精确同步,可安装项目提供的用户脚本bilibili-sync.user.js(Tampermonkey / Violentmonkey)。
注意事项
- 镜像来源说明:
muzileee/tangentry并非官方CI自动发布。官方仓库的docker-compose.yml中镜像地址为占位符,需替换后才能使用 - 数据持久化:所有数据(
SQLite数据库、设置、凭据、缓存、下载)都保存在/data卷中,务必挂载;备份该目录即可完整迁移库、笔记与设置 - 公网暴露必须加 HTTPS:服务端模式只有一个共享密码,暴露到公网前务必在前面加
HTTPS反向代理(Caddy / Nginx / Traefik) - 升级方式:
Docker服务端不提供应用内自更新,升级时拉取新镜像并重新创建容器即可,数据卷会保留(docker compose pull && docker compose up -d) - 端口冲突:
7380端口如被占用,更换左侧宿主端口即可,容器端口保持7380不变 - 早期版本风险:项目处于
0.x阶段,接口和数据结构仍可能变化(数据库会自动迁移),生产环境使用请注意备份 - 平台解析失败:
YouTube/B站接口经常变化,遇到无法解析或下载时,先在「设置 → 工具」中更新yt-dlp;B站高清晰度和部分内容需要登录账号 - 合规提醒:工具仅供个人学习与研究使用,获取的内容版权归原平台及作者所有,请遵守各平台服务条款,不要用于批量抓取、再分发或商业用途
参考文档
mu-zi-lee/Tangentry: 沿着好奇心继续发现 —— 本地优先的多平台内容聚合、阅读与笔记工具
地址:https://github.com/mu-zi-lee/Tangentrymuzileee/tangentry - Docker 镜像 | Docker Hub
地址:https://hub.docker.com/r/muzileee/tangentryTangentry 环境变量参考(.env.example)
地址:https://github.com/mu-zi-lee/Tangentry/blob/main/.env.example