calibre 个人最佳使用指南

总结摘要
calibre 是一款十分不错的电子书管理和阅读软件,功能号称十分强大,但主要是单机使用,对于有 NAS 想跨设备跨网运行还不是太方便。

前言

calibre (官网: https://calibre-ebook.com )是一款十分不错的电子书管理和阅读软件,功能号称十分强大,但主要是单机使用,对于有 NAS 想跨设备跨网运行还不是太方便,为此我在最终选择上是用calibre,还是 komga( https://github.com/gotson/komga )、 kavita( https://github.com/Kareadita/Kavita ) ,迟迟拿不定主意。各有利弊,calibre 侧重管理,其他侧重漫画、web 应用。最后多方测试周边应用,决定还是用 calibre。

我把书库放在Nas上,在Nas上安装 calibre-server 用于方便远程浏览器操作 calibre desktop 单机版进行管理,再部署   calibre-web , 方便任何终端用浏览器浏览阅读。calibre 内置的内容服务器似乎没有任何安全功能,十分之简陋且不好用。calibre-web 就像内置内容服务器的一个功能更丰富的版本,可以简单管理书籍并侧重浏览。移动设备和进度同步上,取决于使用设备,可以从单机版无线传输内容,也可以用支持 OPDS 的 app,Calibre 内容服务器和 Calibre-web 都支持。安卓手机首推静读天下(Moon+ Reader),iOS可用KyBook3。这两个App都支持 OPDS协议 ,直连NAS书库就像用本地文件一样顺滑。

安装 calibre-server

可以参阅 How to Run the Calibre Server Docker Container Natively, and on a QNAP NAS

具体如下:

直接使用镜像: https://hub.docker.com/r/linuxserver/calibre https://github.com/linuxserver/docker-calibre  。 

compose.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
services:
  calibre-server:
    image: lscr.io/linuxserver/calibre:latest
    container_name: calibre-server
    security_opt:
      - seccomp:unconfined #optional
    environment:
      - PUID=1001             # 换成自己的用户ID
      - PGID=1001             # 换成自己的用户组ID
      - TZ=Asia/Shanghai
      - CUSTOM_USER=calibre      # 登录用户名
      - PASSWORD= calibre    # 登录用密码
      - CLI_ARGS= #optional
      - PIXELFLUX_WAYLAND=true
      - LC_ALL=zh_CN.UTF-8 - Chinese
    volumes:
      - ./calibreConfig:/config                            # calibre-server 配置目录
      - ./calibreLibrary:/config/CalibreLibrary            # calibre 书库
      - ./calibreBooks2add:/config/books2add           # 准备添加书籍存放处,方便后台选择导入
    ports:
      - 58080:8080         # http 访问,不能直接访问,可用于反代
      - 58181:8181         # https 访问
      - 58081:8081         # 内置内容服务器端口,内部不开启的话,访问不了
    shm_size: "1gb"
    restart: unless-stopped

直接 docker compose up -d 拉起后,就可以通过 https://10.1.12.9:58181 访问操作 calibre desktop 单机版,很神奇。

此 docker image 镜像基于 Selkies 技术实现。Selkies 是一个开源、低延迟、高性能的基于 Linux 的 WebRTC HTML5 远程桌面流媒体平台,其延迟与 Moonlight/Sunshine 相当,从一开始就被设计成可以通过网络流式传输,可以实现在异地浏览器里操作本机 desktop app 应用。

calibre 本身带的阅读器对 pdf 版电子书支持不太好,能看,但有很多问题,我的 pdf 电子书它就不能完整显示,图片页还上下顛倒,用 pdf 阅读器打开就没事。calibre 本身更适合阅读 epub 电子书。

安装 calibre desktop app

上述安装 calibre-server 后,虽说比较方便,但是还是有点瑕疵。我是发现不能输入中文,这是最大的问题,可以粘贴汉字,算是勉强能用,但不是太那么流畅,用得不是太爽,备用倒是可以,方便起见,我又在局域网内另一 windows 主机安装了 calibre windows 版本。为了保持书库和软件使用上的同步,我映射了Nas上书库目录,并用 syncthing 与上面 calibre-server 同步了配置目录。这样,两边进行的任何操作都会保持同步,实现运用无缝衔接。

安装 calibre-web

部署 calibre-web 可参照  linux部署calibre-web服务 - 沉默的羊

compose.yaml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
---
services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      - PUID=1001
      - PGID=1001
      - TZ=Asia/Shanghai
      - DOCKER_MODS=linuxserver/mods:universal-calibre #optional
      - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
    volumes:
      - ./calibrewebConfig:/config
      - ./calibreLibrary:/books
    ports:
      - 58082:8083
    restart: unless-stopped

用的书库是跟 calibre-server 一样的库,要注意路径不要搞错。

直接运行 docker compose up ,会发现一直拉不起来,启动不了,如下图示,要那么一两个小时(视主机和网络可能会不一样)才能拉起来,反正很慢。重启时,又要持续一两个小时才能起来。

为什么这么慢?后面发现是启动过程中要下载并初始化模块,就是要加载上面compose.yaml- DOCKER_MODS=linuxserver/mods:universal-calibre这句涉及的universal-calibre模块。

要等到下面的输出才算是拉起成功:

怎么解决?查询知:Slow docker_mods downloads, particularly with LinuxServer.io containers, are usually caused by slow repository connections (lscr.io), large mod sizes, or network issues. The mod script often re-downloads on every container startup. To fix, try using a VPN, checking DNS settings, or, if available, utilizing the LinuxServer.io Modcache and Modmanager system

我选择使用 Modmanager system 来优化加速。具体使用可参阅 https://github.com/linuxserver/docker-modmanager  。

compose.yaml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
---
services:
  modmanager:
    image: lscr.io/linuxserver/modmanager:latest
    container_name: docker-modmanager
    environment:
      - DOCKER_MODS=linuxserver/mods:universal-calibre #optional,多个模块用|分隔
      - DOCKER_HOST= #optional
      - DOCKER_MODS_EXTRA_HOSTS= #optional
    volumes:
      - ./modcache:/modcache
      - /var/run/docker.sock:/var/run/docker.sock:ro #optional
    restart: unless-stopped

直接 docker compose up -d 后就可以不用管他,后台会自己下载并更新模块(第一次还是会很慢,也要一到两个小时,但只有这么一次),涉及模块调用时,他会自行更新操作等,我们主要要用他挂载的 ./modcache 目录。

在 calibre-web 的 compose.yaml 里把 modmanager 产生的的 ./modcache 目录挂载上,

- /home/litad/docker-modmanager/modcache:/modcache

这样后,calibre-web 每次启动就明显快了很多,之前是一两个小时,现在应该用不了一两分钟。

初始登录账号和密码为:admin/admin123

calebre-web 就能比较好的支持 pdf 阅读,还能简单管理书籍,还能保持阅读进度同步,妙哉。

移动终端安装阅读器

如前述,安卓手机首推静读天下(Moon+ Reader),iOS可用KyBook3。

在静读天下app “网上书库”里添加一书库,网址写上面 calibre-web 的网址,后加 opds。如我的就是 http://10.1.12.9:58082/opds ,填好登录用户名和密码就连接上了。

阅读进度会与 calibre-web 保持同步。

推荐配置与插件

calibre 可能要设置一下才能符合个人使用习惯。推荐配置与插件可以参考此文: Calibre 推荐配置与插件 - 雅余  。

我自行更改了日期显示方式、调用了 Setenove 系列图标主题、禁用了不需要的元数据来源、禁用了在线书店、禁用了基本不用的设备接口等。

选用安装了如下插件:

路径翻译

插件库: https://github.com/Cirn09/calibre-do-not-translate-my-path

使用此插件后,中文文件名书籍终于不用翻译成拼音了。此文 别翻译我路径了,Calibre  可以参阅一下。

豆瓣书籍元数据

实现通过豆瓣获取书籍元数据和封面图片。

插件库: https://github.com/fugary/calibre-douban

Ebook Translator

Ebook Translator 是书伴开发的一款 Calibre 插件,可以将不同格式不同语言的电子书翻译成指定语言(原文译文对照)指定格式的电子书,支持 Google、ChatGPT 和 DeepL 翻译引擎。该插件可以通过 Calibre 进行搜索安装。