使用 群晖 NAS 和 Calibre-Web 搭建个人图书馆
背景
如果你是一个爱书之人,那么你可能会收集大量的电子书。 但是,如果你的电脑硬盘空间不足,或者你想要在多个设备上访问你的图书馆,那么你需要一个更好的解决方案。 在这篇文章中,我将向你介绍如何使用群晖 NAS 和 Calibre-Web 来搭建一个个人图书馆,让你随时随地阅读你的电子书。 (以上内容由 Notion AI 生成)
我的环境
- 我的电脑:
MacBook Pro (14-inch, 2021),Ventura 13.2,M1 Max (ARM64,aarch64) - 我的 NAS:群晖
DS1522+,DSM 7.1.1-42962 Update 2 - calibre-web 镜像:
linuxserver/calibre-web:0.6.19
部署 Calibre-Web
搜索镜像并下载
在群晖 DSM 中,打开 Docker 套件,在 注册表 中搜索 calibre-web,并选择对应的镜像及版本下载:
在这里 我选择的是: linuxserver/calibre-web 版本为: 0.6.19
点击 选择 后即可会自动下载

创建容器
在 容器 中点击 新增 选择对应版本的镜像点击 下一步

配置容器网络
在这里我选择了和 Docker Host 相同的网络 你也可以选择 Birdge 然后把 8083 端口暴露出来

容器常规设置
在这里我勾选了 启用自动重新启动 然后点击 高级设置

配置容器环境变量

| 变量 | 值 | 说明 |
|---|---|---|
| TZ | Asia/Shanghai | 时区配置 |
| DOCKER_MODS | linuxserver/mods: universal-calibre | 电子书转换能力 |
| OAUTHLIB_RELAX_TOKEN_SCOPE | 1 | 允许 Google OAUTH 工作 |
| https_proxy | http://127.0.0.1:7890 | 配置了自己的代理方便下载 |
注:这些都是可选配置
配置完之后点击 保存 然后再点击 下一步
容器存储空间设置
共享文件夹的创建请点击 这里查看

| 本地文件夹 | 装载路径 | 说明 |
|---|---|---|
| /docker/calibre/books | /books | 书籍存放目录 |
| /docker/calibre/config | /config | 配置目录 |
然后点击 下一步
容器创建最后
此处可以看一下自己配置有没有问题 如果有问题点击 上一步 如果没问题则点击 完成

查看启动日志
这个地方会慢一些

访问及管理 Calibre-Web 服务
使用浏览器访问
使用浏览器打开 http://{你的群晖地址}:8083
默认登录账号为:admin/admin123

配置数据库路径
输入 /books 即可

如果出现 DB Location is not Valid, Please Enter Correct Path 请点击 这里查看
配置语言
点击右上角 admin 然后修改 语言

其他配置自己摸索吧 这里就不多讲了。
创建共享文件夹
打开 控制面板 在 共享文件夹 里 创建名为 docker 的文件夹 其余设置均为默认
打开 File Station 在 docker 文件夹中创建名为 calibre 的文件夹
并且在 calibre 文件夹中创建 名为 books 和 config 两个文件夹
calibre 文件夹及权限配置如图所示:

使用第三方 douban 接口作为元数据提供者
虽然 0.6.19 版本重新提供了 douban 接口。metadata_provider 目录下有好几种元数据提供者,但是我这一直刷新不出来 索性还是用第三方提供的接口吧

我用的是 https://github.com/fugary/calibre-web-douban-api 提供的接口
配置
打开 File Station 在 docker/calibre 下创建名为 metadata_provider 的文件夹 然后将 NewDouban.py 放到了该文件夹下

将该 calibre-web 容器停止 然后编辑该容器

| 本地文件夹 | 装载路径 |
|---|---|
| /docker/calibre/metadata_provider | /app/calibre-web/cps/metadata_provider |
然后启动点击 保存 并启动该容器
测试一下
在页面随便找本书点击 获取元数据

FAQ
advocate 模块问题
如果在页面中保存书籍元数据时会提示 advocate 模块不存在
原因是没有正确安装该模块
解决办法:
进入容器中执行
cd /app/calibre-web/
pip3 install -r requirements.txt
如果在页面中保存书籍元数据时会提示 Error editing book: Proxies cannot be used with Advocate
原因是配置了代理和该模块冲突
解决办法:
可以将 https_proxy 从环境变量中去掉 或 给容器添加环境变量 CALIBRE_LOCALHOST=true
使用 pip 会提示 ModuleNotFoundError: No module named 'distutils.cmd'
如果在容器里使用 pip 出现了 ModuleNotFoundError: No module named 'distutils.cmd'
解决办法:
进入容器中执行
apt-get install python3-distutils -y
google scholar 模块问题
我在运行 calibre-web 的时候 该模块会导致我的整个流程卡住
解决办法:
进入容器中卸载该模块
pip uninstall scholarly -yPyQt 问题
如果出现以下错误
Failed to import PyQt module: PyQt6.QtWebEngineCore with error: libXtst.so.6: cannot open shared object file: No such file or directory
解决办法:
进入容器中执行
apt update
apt upgrade libgl1-mesa-glx libxdamage1 libegl1 libxkbcommon0 libopengl0 -y数据库路径配置错误
如果出现 DB Location is not Valid, Please Enter Correct Path
原因是因为 /books/ 目录下需要一个 metadata.db
可以用电脑下载 calibre 应用 初始配置会生成一个 metadata.db 然后将 metadata.db 放到 books 文件夹下

然后在页面重新配置数据库路径即可
参考资料
- https://github.com/gshang2017/docker/issues/120
- https://www.cnblogs.com/sexintercourse/p/16927455.html
- https://fugary.com/?p=203
最后
自己尝试吧 有问题可以留言。。。