在 NAS 上搭建家用电子书库:Koodo Reader 部署与多设备接入实践
【免费下载链接】koodo-readerA modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux, Android, iOS and Web项目地址: https://gitcode.com/GitHub_Trending/koo/koodo-reader
Koodo Reader 是一款开源的跨平台电子书管理与阅读工具,支持 EPUB、PDF、MOBI、AZW3、TXT、CBZ 等格式。将它部署到 NAS 之后,就成为一个家用 NAS 电子书管理服务:书库集中存放,各设备接入同一份数据,进度和笔记跟着人走。本文讲三件事:在群晖上装好它、把其他设备接进同一个书库、日常维护要做的少数几项。
先说清它解决的问题
典型的情况是:书散落在电脑、手机、U 盘里,每换一台设备就要重新拷一遍文件;上次读到第几章只能凭印象,换设备后书签和高亮也带不过去;想查某本书在哪,没有统一入口。Koodo Reader 把书库收敛到一个地方:书上传一次,浏览器、桌面客户端、移动端都能读;阅读进度、书签、高亮、笔记存在同一份数据里,换设备从断点继续。
在群晖 NAS 上装好 Koodo Reader
前提是在 NAS 上装好 Container Manager(即 Docker),并在共享文件夹里建一个存放书籍的目录,下文用/opt/uploads指代它。
把源码拉到 NAS 的任意目录:
git clone https://gitcode.com/GitHub_Trending/koo/koodo-reader然后在源码目录下执行:
docker compose up -d --build仓库自带的docker-compose.yml里需要关注三处:
- 端口:映射了容器的 80(网页端)和 8080(上传用的 HTTP 服务)到宿主机。80 被其他服务占用时,把宿主机一侧改成空闲端口,例如
"8081:80"。 - 挂载:
/opt/uploads:/app/uploads把书籍目录挂进容器。书都存在宿主机的这个目录里,容器删了书也不丢。 - 账号:
SERVER_USERNAME/SERVER_PASSWORD是登录凭据。密码默认值是securePass123,部署前务必改掉;仓库里另提供docker-compose-secret.yml,用 secret 文件管理密码,安全性更高。
完成后在浏览器打开NAS 的 IP,用刚设置的账号登录,网页版即可以使用。镜像由 Caddy 提供静态页面,Go 写的 httpserver/ 负责上传与 OPDS 相关接口。
其他设备怎么连上同一个书库
三条常用路径,按设备情况选:
- 浏览器:任意设备访问 NAS 的 IP 即可,最简单,适合临时使用。
- 客户端经云存储同步:Windows、macOS、Linux、Android、iOS 客户端都支持把书库数据放在云盘上,包括 OneDrive、Google Drive、Dropbox、iCloud、阿里云盘、百度网盘、FTP/SFTP、SMB、WebDAV 等。在客户端里配置好对应网盘后,库里的书、进度、笔记经网盘同步,手机和电脑看到的就是同一份数据。
- 其他阅读器走 OPDS:Koodo Reader 支持以 OPDS 协议对外提供书库(OPDS 是电子书目录的标准协议,实现见 httpserver/opds.go),由环境变量
ENABLE_OPDS控制开关,第三方阅读应用可以按 OPDS 源浏览你的书。
如果你有 Kindle 设备,仓库的 Dockerfile 还声明了 KOReader 同步服务端(7200 端口,ENABLE_KOREADER_SERVER控制),可在 compose 里自行映射端口,实现与 KOReader 的阅读进度互通。
长期运行要做的事
- 改掉默认凭据:
SERVER_PASSWORD与SERVER_USERNAME都有默认值,生产环境必须覆盖,或用 secret 文件方式存放。 - 定期备份书籍目录:备份 NAS 上
/opt/uploads对应目录即可保住全部书籍;客户端侧的库数据如果走网盘,会随网盘自动冗余。 - 升级:在源码目录执行
git pull,再跑一次docker compose up -d --build。如果改用现成镜像(docker-compose-secret.yml中的ghcr.io镜像写法),改 tag 后重新up -d即可。 - 磁盘容量:书籍是纯文件存储,库大了之后注意该目录所在共享文件夹的剩余空间。
延伸阅读
- 项目中文说明与功能清单:README_cn.md
- 容器构建方式(端口、环境变量、启动脚本):Dockerfile
- HTTP 上传与 OPDS 服务实现:httpserver/
【免费下载链接】koodo-readerA modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux, Android, iOS and Web项目地址: https://gitcode.com/GitHub_Trending/koo/koodo-reader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考