技术笔记

NAS 搭建电子书与漫画库:Calibre-Web 与 Komga 怎么选

yaobingbin yaobingbin · · 约 7 分钟 · 0 条评论

先分清两类内容

“电子书库”这个需求实际上包含两种差异很大的内容:

类型 常见格式 元数据来源 阅读方式
文字书 EPUB、MOBI、AZW3、PDF 书名/作者/ISBN/简介/封面 流式阅读,可换字体排版
漫画/画册 CBZ、CBR、PDF 卷号/章节/系列 翻页或条漫模式,对图片质量敏感

用一套系统管两类内容会很别扭。 文字书需要强大的元数据管理和在线阅读器;漫画需要的是图片序列的连续阅读体验和卷册组织。

所以务实的做法是两套系统并存:Calibre-Web 管文字书,Komga 管漫画。

Calibre-Web:文字书

它和 Calibre 的关系

这是最容易搞混的一点:Calibre-Web 不是 Calibre 的网页版,它是一个独立的 Web 应用,读取 Calibre 生成的数据库。

具体说:

  • Calibre(桌面软件)管理你的书库,生成 metadata.db(一个 SQLite 数据库)
  • Calibre-Web 读取这个 metadata.db,提供 Web 端的浏览、在线阅读、推送到阅读器
  • 它可以通过配置实现编辑(写入数据库),但默认只读更安全

所以流程是:在电脑上用 Calibre 整理书库 → 把整个书库目录(含 metadata.db)放到 NAS 上 → Calibre-Web 挂载这个目录提供服务。

关键要求:metadata.db 必须存在且版本兼容。如果你直接把一堆 epub 拷到 NAS 上而没跑过 Calibre,Calibre-Web 是没有元数据的——它不会自动去网上刮削。

默认的 Web 端口是 8083。

部署

services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./config:/config
      - /volume1/books:/books
    ports:
      - 8083:8083

首次配置:访问 8083,它会要求你指定 metadata.db 的路径。填 /books/metadata.db(即书库根目录)。

PUID/PGID 同样要填对,否则可能出现无法写入数据库的问题。

主要功能

  • 在线阅读:内置阅读器支持 EPUB,可以直接在浏览器里看
  • 推送到设备:通过邮件把书推送到 Kindle(这也是 Calibre-Web 相比 Calibre 桌面版的一个方便之处——服务端常开,随时推送)
  • 多用户与权限:可以给家人开账号,限制可见的书架
  • OPDS 订阅:支持 OPDS 协议的阅读器 App(如 KyBook、Moon+ Reader)可以直接连上浏览下载
  • 格式转换:配置了 Calibre 的 ebook-convert 工具后可以转换格式

中文书的两个注意点

编码与字体。 早期从各种渠道流出的中文电子书,内嵌 CSS 和编码可能有问题,表现为乱码。遇到这种情况用 Calibre 桌面版转换一次(EPUB → EPUB)通常能修复。

元数据刮削。 Calibre 的中文元数据插件(如豆瓣元数据插件)能显著提升中文书的元数据质量。默认的国外源对中文书覆盖很差。这步要在桌面端 Calibre 里做,Calibre-Web 只负责展示。

Komga:漫画与画册

Komga 是专门给漫画设计的服务器,用 Java 写。

为什么漫画不能塞进 Calibre:Calibre 把漫画当”书”处理,只能用 PDF 阅读器打开,翻页体验很差,也没有漫画特有的”卷册-章节”组织方式。Komga 原生支持 CBZ/CBR(本质上是打包的图片序列),提供连续翻页、双页模式、条漫模式(Webtoon)、阅读进度记录这些漫画阅读必需的功能。

默认端口 8080(容器内),通常映射到 25600 或自定义端口。

services:
  komga:
    image: gotson/komga:latest
    container_name: komga
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - ./config:/config
      - /volume1/comics:/data
    ports:
      - 25600:8080

目录组织

Komga 按目录结构识别系列和卷,这一点和 Calibre-Web 靠数据库不同:

/comics
  ├── 系列名称/
  │     ├── 第01卷.cbz
  │     ├── 第02卷.cbz
  │     └── 第03卷.cbz

同一层目录下可以有多个”库”(library),分别指向不同目录。

命名规范很重要。建议在文件名里带上卷号,并用统一的格式(比如 Vol.01、第01卷),Komga 会解析文件名来排序。

客户端

  • Tachiyomi / Mihon(Android)— 最强大的漫画阅读器,通过 Komga 扩展直接连服务器
  • Panels(iOS)— iOS 上的主流选择
  • Komga 自带 Web 界面 — 桌面浏览器上够用

Mihon + Komga 的组合体验非常好:手机上直接浏览 NAS 里的漫画,支持离线下载、阅读进度同步、多种阅读模式。这是自建漫画库最有价值的部分。

存储容量估算

内容 单本 1000 本
文字书 EPUB 1–5 MB 约 3 GB
扫描版 PDF 50–300 MB 约 150 GB
漫画 CBZ(单卷) 100–300 MB 约 200 GB

文字书几乎不占空间,几千本也就十几个 GB。真正吃空间的是扫描版 PDF 和漫画——这两类本质上是图片,压缩不了多少。

漫画库如果认真收集,很快能到几百 GB。规划存储时要按这个量级算。

有声书:另一个分支

如果你还有有声书(m4b、mp3),Calibre-Web 和 Komga 都不合适。专门的方案是 Audiobookshelf:

  • 支持 m4b 的章节结构
  • 有专门的播放器和进度同步
  • 支持 iOS/Android 客户端
  • 也能管播客

有声书单本体积大(几百 MB 到几 GB),但管理和播放逻辑自成一体,用专门的工具更好。

备份策略

内容 重要性 备份建议
文字书文件 中(可重新找) 常规备份即可
扫描版 PDF / 漫画 高(难再获取) 异地备份,值得花钱
Calibre metadata.db 极高 定期备份,这是你整理成果的全部
Calibre-Web / Komga 配置目录 中 随容器配置一起备份

metadata.db 是最该备份的东西。 你花几十小时整理好的分类、标签、封面、自定义元数据全在这一个文件里。它只有几十 MB,备份成本极低,丢了却几乎无法重建。

建议把它的备份频率设得比书库文件本身更高——文件坏了能重新下,整理好的元数据丢了是真的心痛。

微信搜一搜 纳思Note
评论经后台审核通过后显示 · 请勿发布广告、外链或无关内容

发表评论

邮箱地址不会被公开。填写昵称与邮箱后方可评论。