NAS部署BookLore全流程解析,打造私人电子书库
大家好,我是飘雷。
对于喜欢折腾 NAS 的朋友来说,除了存储电影、照片和各种文件,其实还有一类内容也很适合交给 NAS 来管理,那就是电子书。
平时看到不错的电子书,我们可能会把 EPUB、PDF 等文件下载到电脑里,时间一长,各种文件夹里塞满了书籍。想找某本书的时候,只能根据文件名慢慢翻;有些电子书没有封面,有些文件名乱七八糟,想给书籍重新分类也很麻烦。
如果能把这些电子书集中放到 NAS 上,再搭建一个带封面、分类、搜索和在线阅读功能的私人书库,甚至还能直接重命名、移动和整理原始电子书文件,使用体验显然会好很多。

最近我关注到一个开源项目 BookLore,它是一款自托管的电子书管理系统,支持自动获取书籍元数据、智能书架、网页阅读器、多用户管理,还能通过 OPDS、Kobo 和 KOReader 等方式与其他阅读设备或软件配合使用。
今天咱们就以威联通 NAS 为例,给大家介绍一下 BookLore 的 Docker 部署方法,并重点体验一下电子书管理、在线阅读和电纸书同步等功能。
一、BookLore 核心亮点
1. 自动获取书籍封面和元数据
普通文件夹只能展示文件名,而 BookLore 可以尝试从支持的元数据来源获取书籍封面、简介等信息,让原本杂乱的电子书变成一个封面清晰的图书馆,如果识别结果不准确,也可以根据实际情况编辑书籍信息。

2. 智能书架与分类管理
BookLore 支持创建自定义书架,也可以根据规则建立智能书架。
例如,我们可以按照技术类书籍、小说、漫画等主题组织自己的收藏,相比在文件管理器里反复创建文件夹、手动移动文件,这种方式更加直观。

3. 支持在线阅读
BookLore 内置网页阅读器,可以直接在浏览器中打开 EPUB、PDF 和漫画等内容,还支持阅读进度、标注和高亮等功能,只要能够访问 NAS 上的 BookLore,就不一定非要先把电子书下载到当前设备再打开。

4. 配合电纸书和阅读软件使用
BookLore 支持 OPDS 目录,也提供与 Kobo、KOReader 配合使用的相关功能。
不过,书籍目录访问、电子书传输和阅读进度同步是不同的功能,具体能否使用取决于设备型号、阅读软件和当前版本的配置,不能简单理解为所有电纸书都能自动双向同步。
5. 直接管理原始电子书文件
这也是我比较关注的一个功能,如果只想浏览和阅读电子书,其实很多项目都能做到。但如果还希望统一管理原始文件,就需要应用具备文件整理能力。

在可写存储模式下,BookLore 可以执行相应的文件管理操作,例如重命名、整理书籍文件,以及写入部分元数据信息。不过这些操作会直接影响 NAS 上的原始文件,所以部署前一定要做好备份,不能把数据库备份当作电子书文件备份。
二、威联通 NAS 部署BookLore流程
本次使用威联通 NAS 的 Container Station,通过 Docker Compose 部署 BookLore,官方文档建议至少准备 2GB 内存,实际使用时还需要考虑 NAS 上其他容器和服务的资源占用。
1. 创建数据文件夹
为了避免容器更新或者 NAS 重启后数据丢失,我们需要先做好持久化映射的准备。
打开威联通的 File Station,在存放 Docker 容器数据的共享文件夹中创建一个名为 booklore 的目录。
例如,我使用的路径为:
/share/Container/booklore

然后创建以下目录:
/share/Container/booklore/
├── data/
├── mariadb/
│ └── config/
└── bookdrop/
其中:
data:保存 BookLore 应用数据。
mariadb/config:保存 MariaDB 数据库文件。
bookdrop:用于存放待导入的电子书。
接下来,准备好自己的电子书目录,比如我使用的书库路径为:
/share/Public/Books
如果大家已经有整理好的电子书目录,可以直接使用现有路径,不需要为了部署 BookLore 再把所有文件复制一遍。
2.使用 Docker Compose 部署 BookLore
打开威联通 NAS 的 Container Station,进入左侧的「应用程序」,点击创建应用程序,准备使用 Docker Compose 部署,将下面的代码粘贴进去。

这里需要注意,数据库密码需要修改成自己的,DATABASE_PASSWORD、MYSQL_ROOT_PASSWORD、MYSQL_PASSWORD这三处必须完全一致,配置中的路径也需要根据你的 NAS 实际目录进行调整。
services:
booklore:
image: ghcr.io/booklore-app/booklore:latest
container_name: booklore
environment:
- USER_ID=1000
- GROUP_ID=1000
- TZ=Asia/Shanghai
- DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore
- DATABASE_USERNAME=booklore
- DATABASE_PASSWORD=123456
- DISK_TYPE=LOCAL
depends_on:
mariadb:
condition: service_healthy
ports:
- "6060:6060"
volumes:
- /share/Container/booklore/data:/app/data
- /share/Public/Books:/books
- /share/Container/booklore/bookdrop:/bookdrop
restart: unless-stopped
mariadb:
image: lscr.io/linuxserver/mariadb:11.4.5
container_name: booklore-mariadb
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=booklore
- MYSQL_USER=booklore
- MYSQL_PASSWORD=123456
volumes:
- /share/Container/booklore/mariadb/config:/config
restart: unless-stopped
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 10
确认路径、密码和其他参数都修改完成后,点击创建应用程序。
首次启动时,Container Station 需要下载 BookLore 和 MariaDB 镜像,根据网络环境不同,这一步可能需要等待一段时间。
部署完成后,进入容器列表,确认 booklore 和 booklore-mariadb 都处于运行状态。

如果 BookLore 无法启动,可以先查看容器日志,重点检查数据库是否正常启动、数据库用户名和密码是否一致,以及数据目录是否具有正确的访问权限。
三、访问与使用BookLore
我们打开电脑或手机浏览器,输入:
http://NAS局域网IP:6060
例如,我的 NAS 的局域网 IP 是 192.168.10.70,访问地址就是:
http://192.168.10.70:6060
首次进入时,按照页面提示创建管理员账号,设置用户名、邮箱和密码,完成初始化后,就可以开始创建自己的书库了。

1. 创建书库并映射电子书目录
进入 BookLore 的书库管理界面,选择添加书库,然后为书库设置名称,接下来,在容器内选择对应的书籍目录。

如果扫描不到文件,优先检查路径是否写对、共享文件夹权限是否允许读取,以及容器内的挂载是否生效。
2.在线阅读
完成书库配置后,点击任意一本已经识别的电子书,就可以查看书籍信息,并尝试使用内置阅读器打开。

BookLore 提供了浏览器阅读功能,支持 EPUB、PDF 和漫画等格式,并提供阅读进度、标注和高亮等能力。
对于 EPUB 这类重排版格式,阅读时可以根据阅读器提供的设置调整显示方式,PDF 则更多地保留原始页面布局,适合技术文档、扫描版书籍等内容。

如果你习惯在电脑上阅读,直接通过浏览器访问 NAS 即可,如果是在手机上使用,建议先在局域网内测试页面布局、翻页和长时间阅读的舒适度。
如果平时经常使用电纸书,还能通过 OPDS、Kobo 和 KOReader 等方式与其他阅读设备或软件配合使用,这一点大家可以在部署后自行折腾尝试一下。
总结
对于拥有大量 EPUB、PDF 或漫画文件的 NAS 用户来说,BookLore 提供了一种比普通共享文件夹更直观的电子书管理方式。
它能自动获取元数据、封面书架、浏览器阅读,实现OPDS 接入以及 Kobo、KOReader 相关功能,搭建一个可以符合个人阅读习惯的私人书库。
以上就是本期的全部内容了。如果大家有相关问题,欢迎在评论区交流,我们下期再见!
