内容提要
作者搭建了自托管漫画库,使用Komga服务端管理漫画,通过Kubernetes部署,并在iPhone上用KMReader阅读。流程包括下载漫画、上传至Komga的/data目录、扫描整理后即可在手机阅读。文章详细介绍了K8s部署配置、目录结构、文件传输方法及KMReader连接设置,并分享了五个常见坑,如无网页上传入口、需按系列分目录、/config须用本地存储等。整体简单实用,维护成本低。
延伸解读
为什么选择 Komga 而不是其他方案
作者选择 Komga 是因为它适合自托管环境,支持多种格式,且能与现有 K8s、Traefik、ArgoCD 基础设施无缝集成。相比仅用 iOS 阅读器管理本地文件,Komga 将文件、元数据和阅读进度集中到服务端,便于多设备同步和备份。这种方案尤其适合已有自托管经验、希望统一管理服务的用户。
K8s 部署的关键细节
部署 Komga 到 K8s 时,需注意几个要点:/config 必须使用本地存储,避免网络文件系统;通过 subPath 将同一 Volume 分别挂载到 /config 和 /data,避免目录混淆;使用 initContainer 初始化目录权限,确保主容器以非 root 用户运行。这些细节能避免常见问题,保证服务稳定运行。
文件组织与导入策略
Komga 按目录结构识别系列,因此需将每个系列的漫画放在独立子目录中,避免文件堆在根目录。上传文件可使用 kubectl cp 或设置导入目录(如 /data/import)配合扫描功能。若使用同一 Volume,可考虑硬链接以节省空间。合理的目录规划能减少后期整理工作量。
KMReader 使用注意事项
KMReader 是 Komga 的原生客户端,连接时需填写服务器根地址(如 https://komga.example.com),不要添加 /opds 路径,否则无法正常连接 API。支持手动、最新、全部三种离线策略,手动下载可节省手机空间。阅读进度会自动同步回服务器,实现多设备无缝切换。
Q&A
Komga是什么?它有什么主要功能?
Komga是一个自托管的漫画库服务端,可以扫描本地目录中的漫画文件,将其整理为系列和书籍,并管理封面、元数据和阅读进度。它支持cbz、zip、cbr、rar、pdf和epub等格式,并提供Web界面供浏览器阅读。
如何将漫画文件上传到Komga?
Komga没有网页上传入口,需要将漫画文件直接放到服务器上的/data目录中。在Kubernetes环境中,可以使用kubectl cp命令将本地文件复制到Komga的Pod中,例如:kubectl cp "/本地路径/海贼王 第001卷.epub" app/komga-0:"/data/海贼王/海贼王 第001卷.epub"。上传后,在Komga中执行扫描即可。
在Kubernetes中部署Komga时,存储配置有哪些注意事项?
在Kubernetes中部署Komga时,需要注意:/config目录必须使用本地文件系统,不建议使用CIFS或NFS;/data目录存放漫画文件。可以使用一个Volume,通过subPath分别挂载到/config和/data,避免目录结构混乱。同时,容器应以1000:1000的用户运行,并确保目录权限正确。
KMReader如何连接到Komga服务器?
在iPhone上打开KMReader,点击+添加服务器,服务器地址填写Komga的根地址,例如https://komga.example.com,不需要加/opds。认证方式可以选择Komga用户名密码或API Key。连接后,书库、封面和阅读进度会自动同步。
Komga中漫画目录应该如何组织?
Komga会将书库根目录下的每个子目录视为一个系列,因此建议按系列分目录存放,例如/data/海贼王/海贼王 第001卷.epub。不要将所有文件直接放在根目录,否则书多后会混乱。
使用Komga和KMReader时有哪些常见坑?
常见坑包括:1. Komga网页没有上传入口,需用kubectl cp或挂载目录;2. 一个系列必须放在一个目录,否则整理麻烦;3. /config不能放网络盘,必须用本地文件系统;4. 一个Volume要用subPath分目录,否则/config和/data会混在一起;5. KMReader填服务器根地址即可,不要加/opds路径。
KMReader支持哪些离线阅读策略?
KMReader支持三种离线策略:Manual(手动下载)、Latest(自动保留最新几本)、All(整个系列全部下载)。用户可以根据需要选择,手动下载适合节省手机空间。