剪藏#剪藏#大西瓜Play With XR

我做了一个 NAS 上的个人数字资产终端

2026 年 7 月 20 日1 分钟
分享Twitter / XTelegram微博
我做了一个 NAS 上的个人数字资产终端 封面

我是大西瓜焚岚,《中年数字娱乐指南》的作者。

是的,一年多前我就在倒腾这些东西:NAS、电子书、漫画、模拟器、家庭媒体库、各种 Docker 服务。现在我还在倒腾这些。

区别是,这次我不只是把别人的工具装起来了。

我刚做了一个跑在 NAS 上的个人数字资产终端,叫 FolioSpace Library。你可以把它理解成一个专门管理自己收藏内容的本地服务:电子书、漫画、游戏 ROM,后面还会扩展到 PDF、设定集、照片、空间照片、视频、空间视频,以及和这些内容相关的 OST、资料、笔记。

它不是一个“大而全”的媒体中心,也不打算替代 Plex、Jellyfin 或 Immich。

它更像是我给自己数字收藏建的一个底座:负责扫描、索引、封面、分类、搜索、收藏、阅读进度、最近访问和一些私有状态。真正的阅读、游戏、XR 浏览体验,可以交给不同设备上的客户端来做。

你可以在 Docker Hub 搜索 foliospace-library 找到它。

也可以访问官网:https://foliospace.app/zh 获得关于它的最新信息。

Notion image

最早催生这个项目的原因,其实很朴素。

之前我用过很多现成方案。电子书用 calibre-web,漫画用 Komga,媒体用别的服务,游戏 ROM 又是一套自己的目录结构。它们各自都能用,但时间久了以后,问题就出来了。

每一类内容都有一套扫描逻辑。

每迁移一次设备,很多东西都要重新扫。

漫画重新建库很慢,封面和系列识别也经常要重新整理。

calibre-web 的在线阅读器对我来说也不太够用。

更麻烦的是,这些服务大多只关心自己的那一类内容。电子书是电子书,漫画是漫画,游戏是游戏,照片是照片。可在我自己的数字生活里,它们其实不是分开的。

一本游戏设定集,一套漫画,一个模拟器 ROM,一个 OST,一个攻略 PDF,它们可能属于同一个作品、同一个系列,甚至同一段记忆。

我想要的其实不是“再装一个阅读器”。

更准确地说,我想要一个只属于自己的“豆瓣”。

当然,它不是一个给别人看的评分网站,也不追求社交、热榜、短评和小组。它更私人一点,也更底层一点:保存我文艺生活所需要的一切内容。

一本书,一套漫画,一个游戏 ROM,一张 OST,一份设定集,一个攻略 PDF,一段阅读进度,一个“想看”或“已通关”的状态,甚至将来某个作品相关的笔记和截图,都应该能被放进同一个地方。

过去这些东西散落在不同 App、不同目录、不同服务里。电子书在 calibre,漫画在 Komga,游戏在模拟器目录,电影和剧集在媒体库,笔记又在另一个系统。

但对我来说,它们并不是分开的。

它们共同构成了我的兴趣、记忆和文艺生活。

所以 FolioSpace Library 想做的,不是替代某一个阅读器或媒体服务器,而是把这些内容先收拢成一个属于自己的资产库。设备、客户端和入口可以不断变化,但这套关于“我看过什么、读到哪里、收藏了什么、还想继续探索什么”的记录,不应该总是跟着工具一起消失。

为什么用 Go 重构

这个项目一开始是从阅读器需求长出来的。后来我问 Codex,如果要把它从一个简单阅读服务,扩展成一个更长期的个人资产库,应该怎么做。

它建议我用 Go 来重构服务层。

我觉得这个建议是对的。

Go 的好处不在于时髦,而是它很适合这种要长期跑在 NAS、Docker 或小服务器上的东西。

部署简单,编译出来就是一个服务,不需要在 NAS 上折腾一堆运行时依赖。

Notion image

内存和性能都比较克制,适合 24 小时挂着扫库、建索引、提供 API。

并发模型也适合处理扫描任务、封面生成、资源流式读取这些事情。

更重要的是,它方便我把这个项目做成一个相对稳定的本地服务层。前端可以换,iPad 客户端可以换,Vision Pro 客户端也可以换,但 NAS 里的索引、状态和 API 不要跟着每个客户端一起重来。

这是我现在越来越在意的一点:

设备会换,App 会换,入口会换,但自己的数字资产不应该每次都被迫搬家。

目前支持什么

现在这个版本还很早,但已经不是纯概念了。

它现在管理的范围,已经从最初的电子书和漫画,扩展到更接近“个人文艺资产库”的形态:电子书、漫画、PDF 手册和设定集、本地 ROM 目录、本地视频目录,后面还会继续往空间照片和空间视频走。

阅读这块,FolioSpace Library 已经可以处理 EPUB、ZIP / CBZ 漫画和 PDF。EPUB 会保留章节、封面、阅读进度和私有状态;漫画归档可以按需读取页面,不用一开始就把大文件全部解开;PDF 可以扫描、生成首页预览,也可以通过服务 URL 做单页或双页阅读。

游戏这块,它不是简单把 ROM 文件夹挂出来,而是把本地游戏资产当成正式内容来索引。FC、SFC、GB、GBA、NDS、3DS、Mega Drive、32X、Saturn、PS1,以及街机、NeoGeo、NAOMI、Model 3 这类 ROM set 或光盘镜像,都可以逐步进入同一个资产库。

视频这块也已经开始有了轻量支持:MP4、M4V、MOV、MKV、AVI、WebM 这类本地视频可以进入目录。浏览器能直接播放的,就走 Range streaming;遇到 HEVC / H.265 这类不兼容编码,也可以按需转成缓存 HLS,避免 NAS 一上来就被转码任务打爆。

这里要特别说明一下:FolioSpace Library 不提供 ROM 下载,也不分发任何游戏资源。它只负责索引你自己本地已有的内容,并把它们变成客户端可以安全访问的 manifest。真正启动游戏,可以交给模拟器客户端,比如我自己的 GameEMU。

Notion image

也就是说,它不是“资源站”,也不是另一个大而全的云盘。

它是你自己 NAS 里的资产目录和调度层。

为什么我要做 API 和 MCP

我不想把 FolioSpace Library 做成一个只能在网页里点来点去的工具。

网页只是一个入口。更重要的是,它应该能被不同设备、不同客户端、甚至 Agent 调用。

所以现在它已经有一套 client API。客户端可以通过 API 拿到首页、书籍列表、阅读 manifest、游戏 manifest、封面、进度、偏好设置等等。

这些返回结果会尽量避免暴露 NAS 里的真实文件路径。客户端拿到的是服务生成的 URL 和资源描述,而不是 /volume2/xxx/xxx 这种路径。

这样做有几个好处:

第一,客户端不用理解你 NAS 的目录结构。

第二,未来换设备、换硬盘、换挂载路径,不至于整个客户端都跟着崩。

第三,你可以在 iPad、手机、Mac、Vision Pro、AR 眼镜上,用各自最舒服的方式访问同一套收藏。

我也给它做了 MCP 支持。

这对我来说不只是赶个技术热闹,而是新时代本地服务应该有的入口。

以前我们做 NAS 服务,默认入口是网页。你打开一个后台,点按钮,搜关键词,改配置。这个逻辑当然还会存在,但有了 Agent 以后,很多操作其实可以变成一句自然语言。

比如你可以直接问:我自己的库里有没有《沙丘》?它不用去网上乱搜,也不用猜你的目录结构,而是通过 MCP 查 FolioSpace Library 的索引,告诉你本地有没有、是什么版本、在哪个 collection 里、有没有读过、进度到哪里。

再比如,你可以让 Agent 帮你做一次“整理前检查”:最近扫描的库里有哪些打不开的压缩包,哪些 EPUB 没有封面,哪些游戏 ROM 缺少平台信息,哪些收藏很久没打开过。它不需要直接翻你的硬盘,只需要通过受控接口读扫描结果和错误列表。

这就是我想要的关系。

Agent 不是一个能随便进入 NAS 文件系统的超级管理员。它更像一个懂你收藏结构的管家,能帮你查、整理、诊断、调度,但每一步都通过 FolioSpace Library 暴露出来的安全接口完成。

这点对我来说很重要。

我一直觉得,未来个人数字资产一定会被 AI 管起来。但前提是,你不能把所有东西都丢给云端,也不能让 Agent 随便摸你的文件系统。

比较合理的方式是:本地服务把资源整理好,给 Agent 一个受控的接口。Agent 可以帮你做事,但不直接暴露底层路径和原始文件。

这才像一个能长期共处的系统。

这只是第一步

FolioSpace Library 现在还不是我脑子里那个完整形态。

它目前更像一个起点:先把电子书、漫画、游戏这些我最常用的内容统一起来,然后逐步扩展到 PDF、设定集、照片、空间照片、空间视频,以及更多 Apple 设备上的体验。

我最终想要的东西其实很简单:

我的数字收藏在我自己的 NAS 上。

它们有统一的索引、统一的状态、统一的 API。

我可以在 iPad 上读漫画,在 Vision Pro 里看空间照片,在模拟器里打开老游戏,也可以让 Agent 帮我整理库、查缺封面、发现错误、生成收藏清单。

设备变来变去,但内容不跟着漂流。

过去我们总是在适配设备:换一个 App,搬一次库;换一个系统,重扫一次;换一个屏幕,重新折腾一套入口。

我现在更想反过来。

让自己的数字资产先稳定下来,然后让不同设备来接入它。

FolioSpace Library 就是我为这件事做的第一个底座。

它还很早,肯定有很多粗糙的地方。但对我来说,这是个好的开始。

如果你也有一台 NAS,硬盘里塞满了电子书、漫画、游戏、PDF、照片和各种舍不得删的数字收藏,那你应该能理解这种冲动。

我不是想再装一个工具。

我想要的是一个个人版的“豆瓣”,但它不关心别人怎么看,也不急着给世界展示什么。它只负责替我保存那些真正和我有关的东西:我读过的书,看过的漫画,玩过的游戏,收藏的设定集、OST、PDF、照片,以及这些内容在我生活里留下的痕迹。

说到底,我只是想把自己的数字生活,慢慢收回自己家里。

原文地址: https://mp.weixin.qq.com/s?__biz=MzA4NDA2ODYxMQ==&mid=2649272180&idx=2&sn=9bf3edd76667c3f9815c75b0887aec0d&chksm=8615b061db35a9a12c68f6ba8bc33d8699f69d8fc62c996c8a5dc8e6031ca10b848fc5918816&mpshare=1&scene=1&srcid=07200YDUHluVpqs18cOtM8pX&sharer_shareinfo=1496e5a79f5574d64993e7a6041dd9b1&sharer_shareinfo_first=1496e5a79f5574d64993e7a6041dd9b1#rd

相关文章