在数字化阅读的时代,管理大量电子书籍和漫画成了许多阅读爱好者的难题。

幸运的是,通过 Calibre 和 Komga 的结合,我们可以轻松打造一个个人化的书籍与漫画管理系统。无论是在家中使用本地设备,还是通过云服务器随时随地访问,我们都能实现对书籍和漫画的集中管理与高效存取。

本文将介绍如何在 Mac Mini 上部署这两款工具,帮助你建立一个便捷的数字阅读平台。

方案一:有服务器时的部署(Mac Mini协助管理)

在这个方案中,我们将利用外部服务器来托管 Calibre-Web 和 Komga ,而 Mac Mini 则作为一个辅助管理设备,专注于书籍的细致管理。

这样做的好处是,可以利用服务器的易访问性,使得书籍和漫画的管理与访问更加流畅,同时让 Mac Mini 只需处理 Calibre 的书籍库和元数据管理,而不需要承担额外的 Web 服务负担。

具体操作步骤包括:在服务器上使用 HestiaCP 面板快速部署 CalibreWeb 和 Komga ,Mac Mini 部署 Calibre 后通过 NextCloud 将书籍库和元数据处理同步到服务器,用户可以通过浏览器访问 CalibreWeb 进行书籍查看和阅览,通过 Komga 进行漫画阅览。服务器的 Web 服务和数据托管使得你能够在任何地方、任何设备上轻松访问和管理你的数字书籍与漫画。

1. 服务器环境准备

不出意外的话,本站的所有教程都会用 HestiaCP 面板来操作和演示。

HestiaCP 在 Debian 12 上的安装问题与修复方法
许多用户曾选择宝塔面板及其海外版 aapanel,但由于安全性问题,尤其是被曝出的后门让许多人在使用时感到不安。这促使我决定转向 HestiaCP,这款开源面板不仅提供了更高的安全性,还拥有简洁的用户界面。 然而,在使用 HestiaCP 的过程中,我也遇到了一些 bug。为了帮助其他用户更顺利地使用这个面板,我整理了一些问题及其解决办法,希望能对大家有所帮助。 Hestia Control Panel | Open-source web server control panel.Open-source web server control panel.Get started 系统要求 项目 最低 推荐 CPU 1 核心, 64 位 4 核心 内存 1 GB (不使用 SpamAssassin 和 ClamAV)

2. 在服务器上部署 Calibre-Web

HestiaCP + Portainer:轻松管理所有 Docker 应用
安装 Docker 使用apt存储库安装 在新的主机上首次安装 Docker Engine 之前,您需要设置 Dockerapt存储库。之后,您可以从存储库安装和更新 Docker。 设置 Docker 的apt存储库。 # 添加 Docker 的 GPG 公钥: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/

在 HestiaCP 中新建网站配置ssl新建数据库的操作就不再赘述了。如果你是第一次看到 HestiaCP 系列教程,请点击下方链接,就能看到完整的一系列教程了。

HestiaCP - HOSTEYE

如果你打算使用 HestiaCP 的备份与恢复功能,可以将 Docker Compose 文件和持久化存储设置在网站目录下。接下来我们就以这种方式进行演示。

我们在 /home/user/web/domain/public_html/ 目录下创建一个 docker-compose.yml 文件。内容参考如下:

services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      - PUID=1099
      - PGID=1099
      - TZ=Asia/Shanghai
      - DOCKER_MODS=linuxserver/mods:universal-calibre #optional
      - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
    volumes:
      - /home/user/web/domain/public_html/config/:/config
      - /calibre/:/books
    ports:
      - 8083:8083
    restart: unless-stopped

在 /home/user/web/domain/public_html/ 目录 运行sudo docker-compose up -d 即可。

反向代理请参考:

HestiaCP 如何反向代理?
我们知道,AAPanel反代功能非常方便,那么在HestiaCP 如何设置反向代理呢? 从官方文档能看到,HestiaCP 支持创建自定义Web 模板。 Web Templates and FastCGI/Proxy Cache | Hestia Control PanelOpen-source web server control panel.Hestia Control Panel 创建模板 首先到服务器的这个路径 /usr/local/hestia/data/templates/web/nginx 因为它们会被更新覆盖,所以要复制 default.tpl 和 default.stpl ,复制之后的文件要记得重命名成自己看的懂的。 比如,我想给运行在32000端口的qbittorrent-nox添加反代,我可以重命名成 qb.tpl 和 qb.stpl。其中,

访问页面,输入默认用户admin,默认用户密码admin123,登陆。

然后将不要动了,一会安装好 Calibre 后,再配置metadata.db

3. 在服务器上部署 Komga

HestiaCP + Portainer:轻松管理所有 Docker 应用
安装 Docker 使用apt存储库安装 在新的主机上首次安装 Docker Engine 之前,您需要设置 Dockerapt存储库。之后,您可以从存储库安装和更新 Docker。 设置 Docker 的apt存储库。 # 添加 Docker 的 GPG 公钥: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/

在 HestiaCP 中新建网站配置ssl新建数据库的操作就不再赘述了。如果你是第一次看到 HestiaCP 系列教程,请点击下方链接,就能看到完整的一系列教程了。

HestiaCP - HOSTEYE

如果你打算使用 HestiaCP 的备份与恢复功能,可以将 Docker Compose 文件和持久化存储设置在网站目录下。接下来我们就以这种方式进行演示。

我们在 /home/user/web/domain/public_html/ 目录下创建一个 docker-compose.yml 文件。内容参考如下:

services:
  komga:
    image: gotson/komga
    container_name: komga
    volumes:
      - type: bind
        source: /home/user/web/domain/public_html/config/
        target: /config
      - type: bind
        source: /komga/
        target: /data
    ports:
      - 25600:25600
    user: "1099:1099"
    environment:
      - TZ=Asia/Shanghai
      - JAVA_TOOL_OPTIONS=-Xmx4g
    restart: unless-stopped

在 /home/user/web/domain/public_html/ 目录 运行sudo docker-compose up -d 即可。

反向代理请参考:

HestiaCP 如何反向代理?
我们知道,AAPanel反代功能非常方便,那么在HestiaCP 如何设置反向代理呢? 从官方文档能看到,HestiaCP 支持创建自定义Web 模板。 Web Templates and FastCGI/Proxy Cache | Hestia Control PanelOpen-source web server control panel.Hestia Control Panel 创建模板 首先到服务器的这个路径 /usr/local/hestia/data/templates/web/nginx 因为它们会被更新覆盖,所以要复制 default.tpl 和 default.stpl ,复制之后的文件要记得重命名成自己看的懂的。 比如,我想给运行在32000端口的qbittorrent-nox添加反代,我可以重命名成 qb.tpl 和 qb.stpl。其中,

访问页面后,先创建一个账户,然后进入页面进行操作。

在后台添加漫画库,选择根文件夹,在 comic 文件夹(或你自行挂载的其他文件夹)中选择映射的文件夹,其它设置保持默认即可。

4. 在 Mac Mini 上部署 Calibre

calibre - Download for macOS
calibre: The one stop solution for all your e-book needs. Comprehensive e-book software.

下载安装即可。

5. 利用 NextCloud 同步所有内容

回顾一下之前在部署 Calibre-Web 时,我们在 Docker Compose 配置中设置了持久化目录,映射了 /calibre/ 到 /books。这一部分将延续这种配置方式。

首先,在 Mac Mini 上部署 Calibre 后,它会自动生成书库,当然,你也可以手动设置书库路径。接着,我们使用 NextCloud 将书库中的所有内容同步到一个指定的文件夹 X。

在这里提到的 文件夹 X 实际上是指你希望存储书库内容的目录,可以理解为上文设置的/calibre/ 目录。具体来说,/calibre/ 是你在部署 Calibre 时指定的书库存储位置。如果你希望书库的内容能够跨设备或跨服务器进行同步和共享,这时候就可以借助 NextCloud 来实现同步。

例如,当你在 Mac Mini 上管理书库时,Calibre 会生成书库文件和元数据。如果你想把这些文件同步到远程服务器上,以便在部署 Calibre-Web 的服务器上访问和管理,就需要将这些内容同步到一个指定的文件夹(即文件夹 X)。

然后,假设你有一个稳定的存储服务器,或者你希望把书库和数据库分开存储(例如,为了数据冗余或更好的性能),你可以使用 WebDAV(或者其他同步工具)将这个文件夹 X(即你存储书库的目录)挂载到部署 Calibre-Web 的服务器上。通过挂载,你就能让部署在服务器上的 Calibre-Web 访问到这些书库数据。

挂载完成后,返回 Calibre-Web 的设置页面,在数据库配置部分,选择挂载的 metadata.db 文件。为了方便同步,建议将书库和数据库放在同一目录下,这样可以确保它们在本地和服务器之间始终保持一致。

在这里,NextCloud 并不是必须要重新部署的。你可以通过外部 WebDAV 存储将部署 Calibre-Web 的服务器 同步到 Mac Mini 上的书库,而无需再部署一个独立的 NextCloud 服务器。具体来说,你只需要将 部署 Calibre-Web 的服务器上的书库文件通过 WebDAV 挂载到 NextCloud 外部存储上,这样Mac Mini就能直接访问和管理同步过来的书库内容。

Komga 不需要设置数据库配置,只需要同步书库内容。NextCloud的同步设置不再详述。

为了节省 Mac Mini 的本地存储空间,你可以在 NextCloud 完成所有内容同步后,取消勾选部分内容,这样会保留目录结构,但实际数据会存储在远程服务器上。

需要注意的是,在操作过程中,确保 不要 让 NextCloud 同步,等所有操作完成后再进行同步。一旦同步完成,回到 Calibre-Web 设置中重新连接数据库,Komga 也需要重新扫描一下资料库即可。

方案二:没有服务器时的部署(Mac Mini 本地管理)

如果没有服务器,整个书籍和漫画管理系统可以完全依靠 Mac Mini 来完成。你可以在 Mac Mini 上本地部署 Calibre 和 Komga ,进行书籍和漫画的全方位管理。Calibre 本身带有强大的书籍管理和元数据编辑功能,你可以利用它来精细化管理你的书库。在 Calibre 的设置中开启 Web 服务功能,通过 Surge Ponte,即便你没有公网ip,Mac Mini 也可以成为本地的书籍管理中心,允许你通过浏览器访问、修改和添加书籍。

同时,Komga 作为漫画管理平台也可以在本地运行,让你能够像管理电子书一样轻松管理漫画。

在没有服务器的情况下,Mac Mini 本身充当了全能管理的角色,只需借助 Surge Ponte 来访问本地资源,便可以远程享受一站式的数字内容管理服务。

1. 在 Mac Mini 上部署 Calibre

安装即可

calibre - Download for macOS
calibre: The one stop solution for all your e-book needs. Comprehensive e-book software.

安装 Calibre 后,不需要再额外安装 Calibre-Web。在 Calibre 中,进入“首选项” > “通过网络共享”,然后修改端口并启用网络服务即可。这样,你就可以通过指定端口远程访问和管理你的书库了。

2. 在 Mac Mini 上部署 Komga

安装即可

Install the Desktop application | Komga
You can install Komga from the Download page. Just follow the instructions on the page.

3. 设置 Surge Ponte 来实现远程访问

参考:

在 Mac Mini 上部署 Roon:通过 Surge Ponte 实现外网访问 Roon Arc
Mac Mini 作服务器的初步设置关闭自动睡眠 设置->锁定屏幕->不活跃时启动屏幕保护程序->永不 设置->锁定屏幕->不活跃时关闭显示器->永不 设置->锁定屏幕->屏幕保护程序启动或显示器关闭后需要密码->永不-关闭屏幕锁定-关闭并移除密码 设置自动登录 设置->用户与群组->自动以此身份登录 设置断电自动开机 设置->能源->断电后自动启动 设置->能源->显示器关闭时,防止自动进入睡眠 远程访问 VNC访问(适用于windows、macbook) 设置->通用->共享->远程管理 记得勾选vnc显示程序可以使用密码控制屏幕 Sidecar(适用于ipad) 下载BetterDisplay GitHub - waydabber/BetterDisplay: Unlock your displays on your Mac! Flexible

完成上面的部署后,你可以通过配置 Surge Ponte 来实现远程访问。这样,无论你身处何地,都能轻松通过网络访问设置好的 Calibre 网络共享端口,浏览你的 Calibre 书库。

4. 利用 NextCloud 同步所有内容

由于所有内容都由 Mac Mini 处理,因此不需要额外同步任何内容。如果你计划进行远程备份,推荐使用方案一,利用服务器进行备份,而不是在方案二中通过 NextCloud 进行远程备份。

这样,方案二在本地管理和使用时不涉及复杂的备份机制,简化了操作流程。如果需要更高的可扩展性和备份功能,方案一会是一个更好的选择。

其他设置

1. Calibre 不要翻译我的文件路径

GitHub - Cirn09/calibre-do-not-translate-my-path: Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文(中文)命名
Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文(中文)命名 - Cirn09/calibre-do-not-translate-my-path

macOS V1 & V2

  1. 解压下载的包,得到 python-lib.bypy.frozen 文件。
  2. 打开 Finder,进入“应用程序” (/Applications),右键点击“Calibre——显示包内容”,进入 Contents/Frameworks/plugins (对应的完整路径是 /Applications/calibre.app/Contents/Frameworks/plugins )。将第 1 步下载包里的 python-lib.bypy.frozen,拷贝覆盖过来、关闭 Finder 窗口,正常打开 Calibre 即可。

2. Calibre 导入漫画后直接导出到 Komga 管理

Komga 暂时不支持多层文件夹嵌套,它只识别解压后的单层文件夹。换句话说,漫画文件必须直接位于文件夹的第一层,而不能再包含子文件夹。

假设你有一个漫画《海贼王》的文件夹结构:

不支持的结构:

海贼王/
│
├── 第一卷/
│   ├── 海贼王01.cbz
│   ├── 海贼王02.cbz
│   └── ...
│
└── 第二卷/
    ├── 海贼王03.cbz
    ├── 海贼王04.cbz
    └── ...

在这种情况下,Komga 无法正确识别每个卷(如 "第一卷"、"第二卷")中的漫画文件,因为它只支持直接在同一层目录下的文件。

支持的结构:

海贼王/
│
├── 海贼王01.cbz
├── 海贼王02.cbz
├── 海贼王03.cbz
├── 海贼王04.cbz
└── ...

在这种结构下,所有漫画文件都位于单一目录下,Komga 可以正确识别并显示这些漫画。

在 Calibre 中设置保存模板

在 Calibre 中,你可以通过修改保存书籍至硬盘的保存模板,来确保漫画文件按照 Komga 支持的格式进行整理。具体步骤如下:

  1. 打开 Calibre,进入 首选项
  2. 在 保存书籍至硬盘 的设置中,找到 保存模板 选项。
  3. 将保存模板修改为以下内容:


{series:ifempty(_oneshots)}/{series_index:0>2s|| - }{title} - {authors}

解释:

  • {series:ifempty(_oneshots)}:这个部分会根据书籍是否属于某个系列来确定文件夹结构。如果是系列书籍(例如《海贼王》),它会将书籍保存到相应的系列文件夹中;如果是单本书(例如单独的漫画),则会保存到默认的文件夹。
  • {series_index:0>2s|| - }:这个部分用来为书籍文件添加编号。series_index 是系列中书籍的索引(如《海贼王》中的第1卷、第2卷等)。0>2s 语法会确保索引数字为两位数(例如,01, 02)。如果书籍没有系列索引,|| - 会将文件名以 "-" 连接(例如 海贼王 - 作者)。
  • {title}:书籍的标题,即漫画的名称。
  • {authors}:漫画的作者。

通过这种保存模板,Calibre 会按照你设置的规则将书籍整理到适当的文件夹中,确保每本书籍(或漫画)文件都能以清晰且一致的结构保存到硬盘上,这样 Komga 就能够正确识别并展示它们。

结果

在保存后,文件夹结构会像这样:

海贼王/
│
├── 01 - 海贼王 - 尾田荣一郎.cbz
├── 02 - 海贼王 - 尾田荣一郎.cbz
└── ...

这样整理过后的漫画文件,就可以直接上传到 Komga 中进行管理和阅读。

3. Komga 的 One-Shots 设置

One-Shots | Komga
What are One-Shots?

One-Shots 通常指的是 单行本,即仅有一卷的漫画作品。

你可以在库的设置中,通过编辑库和扫描器配置来指定 单行本(One-Shots)的目录。

举个例子:


├── 海贼王
│   ├── 海贼王_001.cbz
│   ├── 海贼王_002.cbz
│   ├── 海贼王_003.cbz
│   └── ...
├── 我的英雄学院
│   ├── 我的英雄学院_001.cbz
│   ├── 我的英雄学院_002.cbz
│   └── ...
└── _oneshots
    ├── 魔法少女的奇幻冒险.cbz
    ├── 时间旅行者.cbz
    └── 最后的审判.cbz

目录结构的效果:

  • 海贼王 会被识别为一个常规的漫画系列。
  • 我的英雄学院 也会被识别为另一个常规的系列。
  • _oneshots 中的文件会被识别为单行本(One-Shots),每个文件会显示为一个独立的作品。

阅读

如果你喜欢在多个设备上阅读漫画,选择一款支持 OPDS 的漫画阅读软件将极大提升你的阅读体验。OPDS(Open Publication Distribution System)协议可以让你将漫画库与各种兼容软件连接,实现跨设备同步。

为什么推荐缓存下载?

在使用这些漫画阅读软件时,建议选择 缓存下载 而不是直接将漫画文件导入到设备中。缓存下载有以下几个优点:

  • 同步阅读记录:缓存下载能够确保你在不同设备之间切换时,自动同步阅读进度、书签和历史记录。而直接导入漫画文件无法做到这一点,进度不能同步,影响体验。
  • 节省存储空间:缓存下载只会保存当前阅读的内容,而无需将整个漫画文件导入设备,帮助节省存储空间,特别是对于大容量漫画库的用户。

包含的标签:

教程, Mac Mini, HestiaCP, Surge, Docker

最后更新: December 04, 2024