免费搭建个人数字图书馆:Tale Book轻量化书库部署与使用指南
本文将分享一个简易的个人阅读项目——Tale Book。该项目曾名为calibre-webserver,是一个基于Calibre构建的轻量级个人图书管理系统,支持用户在线阅读电子书。
鉴于网络环境与相关规定,建议仅将此系统部署供个人或小范围私人使用,避免公开开放访问。

项目主要特性
以下特性介绍源自项目官方主页:
- 界面美观:针对Calibre原生网页界面不够友好的问题,项目基于Vue框架独立开发了全新的前端界面,同时适配电脑和手机浏览。
- 多用户支持:为方便分享,系统开发了多用户功能,支持通过QQ、微博、Github等社交平台账户登录(豆瓣登录已废弃)。
- 在线阅读:借助epub.js库,实现了在网页端直接阅读EPUB格式的电子书,章节评论功能正在开发中。
- 批量导入:支持批量扫描并导入本地书籍文件。
- 邮件推送:可便捷地将书籍推送到Kindle设备。
- OPDS支持:提供OPDS协议支持,允许用户通过KyBooks等阅读应用直接获取书籍。
- 简易安装:提供一键式安装方案,通过网页即可完成初始化配置,轻松启动服务。
- 路径优化:针对大型书库优化了文件存储路径,支持按字母分类或保持原始中文文件名。
- 信息更新:支持从百度百科、豆瓣等平台快速搜索并导入书籍的元数据信息。
- 私人模式:可开启访问密码验证,只有输入正确密码才能进入网站,适合小圈子内部分享。
部署流程详解
本文将以威联通(QNAP)NAS为例,详细说明通过Docker Compose部署Tale Book的步骤。
首先,打开NAS上的Container Station应用,选择创建新的应用程序。
部署所需代码如下,请务必注意格式对齐(尤其注意缩进):
version: "3" # 最新版Docker Compose建议删除该行,此配置即将废弃
services:
talebook:
image: talebook/talebook
container_name: talebook
restart: always
volumes:
- /share/Container/talebook:/data # 请将此路径修改为你希望存放图书数据的实际路径
ports:
- "6789:80" # HTTP访问端口,冒号左侧可自定义,通常通过反向代理使用此端口
- "8443:443" # HTTPS访问端口(可选,如不使用可删除此行)
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Shanghai
# 提示:通过SSH输入`id`命令可获取当前账户的UID和GID。
# 威联通NAS中,admin最高权限账户的ID通常为0/0。
# 若禁用了admin账户,通常使用的管理账户ID为1000/100,如上文配置所示。
将上述代码粘贴到创建应用程序的编辑框中。

使用与配置指南
按照上述流程完成部署后,在浏览器地址栏输入你的NAS_IP地址:6789即可访问Tale Book服务。
首次访问会进入初始化设置页面,你可以修改网站标题和管理员账户名。若开启“私人图书馆”选项,则会在登录前增加一道访问密码验证。

完成所有设置后,点击“完成设置”按钮,系统会自动验证配置并刷新页面。下图展示了开启私人图书馆模式后的登录界面效果。

输入密码进入系统后,可以看到下图所示的默认界面布局。系统自带了一些演示用的书籍数据,需要手动删除。

首先,点击右上角登录之前设置的管理员账户。登录成功后,在左侧导航栏点击【管理】->【图书管理】,即可对演示图书进行删除操作。

若你希望启用QQ、微信等社交平台快捷登录,需要自行前往各平台申请对应的API密钥。否则,即使在前端添加了登录按钮,点击后也会报错。
另一种更直接的删除演示书籍的方法是:通过NAS的文件管理器,直接进入容器映射的数据目录 /share/Container/talebook/books/library,删除其中的文件。

在【系统设置】中,开发者提供了丰富的个性化选项。你可以修改欢迎公告、网站页脚信息、各类提示语;配置新用户注册规则、社交登录整合;开启邮件服务(用于账户验证和注册);管理书籍标签分类;设置友情链接、互联网书源;调整单次文件上传大小限制等。

系统左侧默认提供了一些友情链接,你可以将其视为一种福利,或者根据个人喜好进行修改或移除。

接下来开始导入个人图书。系统支持的格式包括 azw, azw3, epub, mobi, pdf, txt。你可以按照网页指引逐个上传。更高效的方法是,将所有电子书文件一次性放入容器内的 /data/books/imports/ 目录(对应宿主机上你之前映射的路径,如 /share/Container/talebook/books/imports),然后在管理页面点击【扫描书籍】。扫描完成后,务必点击橙色的【导入全部书籍】按钮。

书籍导入成功后的界面如下图所示。

点击任意一本书籍,例如《聊斋志异》,可以看到丰富的管理功能。除了在线阅读,还支持联网抓取书籍元数据,也允许手动编辑详细信息。如果配置了邮件服务器,还可以直接将书籍推送给好友。

点击“阅读”按钮,即可开始在线浏览。调整浏览器窗口大小,享受舒适的阅读体验。

在手机浏览器上访问,界面比例也基本适配。不过,官方推荐通过静读天下、KyBooks等支持OPDS的第三方阅读应用来获取更佳的移动端阅读体验。

存在的不足与注意事项
Tale Book的设计可能更侧重于经典出版物,尚未完善对丛书或系列作品的归类管理功能。例如,对于分卷发行的轻小说,目前难以将其整合为一个合集。
导入TXT格式的小说时,系统可能无法自动识别作者信息,需要后续手动编辑。
网页端的阅读体验相对基础,建议关联专业的阅读应用程序(如KyBooks)以获得更佳体验。
第一点不足对于部分用户可能比较重要。如果这方面需求不强,Tale Book整体上是一个相当不错的工具。若你对此功能有强烈需求,可以查阅我之前发布的关于Kavita(另一款图书服务器软件)的文章。
https://blog.ydxian.xyz/archives/kavita
其他补充说明
如需替换网站的favicon图标和导航菜单中的二维码Logo,只需将新图片放入数据目录的 /data/books/logo/ 路径下,并覆盖原有文件即可。

替换完成后,需要重启Tale Book容器以使更改生效。部分浏览器(例如Safari)可能还需要清除缓存才能显示新图标。
系统默认的单次文件上传大小限制为100MB,可以在管理员配置中进行修改。如果修改后无效,可能是上层的Nginx代理限制了上传大小。本项目自带的Nginx已配置了 client_max_body_size 0;(即不限制)。如果你使用了其他反向代理服务,请自行检查其相关配置。