NAS 搭建电子书与漫画库:Calibre-Web 与 Komga 怎么选
先分清两类内容
“电子书库”这个需求实际上包含两种差异很大的内容:
| 类型 | 常见格式 | 元数据来源 | 阅读方式 |
|---|---|---|---|
| 文字书 | 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,备份成本极低,丢了却几乎无法重建。
建议把它的备份频率设得比书库文件本身更高——文件坏了能重新下,整理好的元数据丢了是真的心痛。
