一、介绍

1.1 Komga 是什么?

Komga 是一个自托管的在线书库,用于管理您的漫画、漫画书、杂志和电子书等。

仅需几个简单的步骤,即可使用 Komga:

  1. 在计算机或者NAS上安装并运行 Komga。
  2. 按书籍类型创建库,并拷贝图书到库中。
  3. 使用 Komga 本身提供的 web 界面或者任何第三方兼容的客户端访问。
  4. 开始阅读。

让我们预览一下软件web界面:

主页
1


2

系列
3

阅读
4

1.2 支持的媒体和设备有哪些?

Komga 支持以下文件类型

  • 漫画书档案:CBZ 和 CBR(不支持固态档案,对于 RAR5 见下文)
  • EPUB 格式的电子书
  • PDF 文件
  • ZIP 压缩包

RAR 5 仅在某些平台上受支持,因为它依赖于用于解码的本地库。

Platform RAR 5
macOS 应用 ✔️
Windows 应用 ✔️
Docker amd64 ✔️
Docker arm64 ✔️
Docker arm

当使用 jar 时,您需要自行提供本地库,并使用正确的参数运行 Java。

Komga 服务器兼容性

Komga 可以在任何能够运行 Java 或 Docker 的系统上运行:

  • Windows
  • macOS
  • Linux
  • 许多流行的 NAS 设备,如 QNAP、Synology 等

1.3 官方演示网站

在部署前,您可能想了解一下软件功能和界面,那么您可以访问官方演示网站: https://demo.komga.org

您可以使用以下凭据登录:

  • 登录名:demo@komga.org
  • 密码:komga-demo

二、使用 Docker 部署

2.1 镜像仓库

Komga 的 Docker 镜像发布在以下平台:

2.2 版本

Docker 镜像提供了可用的不同版本。

标签 描述
latest 最新的提交
MAJOR.x 最新的 MAJOR 版本,例如 0.x
x.y.z 版本 x.y.z

2.3 用法

以下是一些示例片段,帮助您开始。

2.3.1 原生 Docker 命令方式

创建容器

docker create \
  --name=komga \
  --user 1000:1000 \
  -p 25600:25600 \
  --mount type=bind,source=/path/to/config,target=/config \
  --mount type=bind,source=/path/to/data,target=/data \
  --restart unless-stopped \
  gotson/komga

启动容器:

docker start komga

2.3.2 docker-compose 方式

---
version: '3.3'
services:
  komga:
    image: gotson/komga
    container_name: komga
    volumes:
      - type: bind
        source: /path/to/config
        target: /config
      - type: bind
        source: /path/to/data
        target: /data
      - type: bind
        source: /etc/timezone # 或者您可以使用 TZ 环境变量,例如 TZ=Europe/London
        target: /etc/timezone
        read_only: true
    ports:
      - 25600:25600
    user: "1000:1000"
    # 如果您不需要,可以删除整个环境变量部分
    environment:
      - <ENV_VAR>=<extra configuration>
    restart: unless-stopped

2.4 参数

容器镜像通过运行时传递的参数进行配置。这些参数用冒号分隔,分别表示外部:内部。例如,-p 8080:80 将容器内部的 80 端口暴露为主机 IP 的 8080 端口。

参数 功能
-p 25600:25600 Komga API 和网页界面的端口
--user 1000:1000 用户:组标识符 - 见下文说明
--mount type=bind,source=/path/to/config,target=/config 数据库和 Komga 配置
--mount type=bind,source=/path/to/data,target=/data 磁盘上数据目录的位置。选择一个包含书籍和硬链接所需导入位置的文件夹。
-e ENV_VAR=value 任何配置环境变量

2.5 用户 / 组标识符

使用卷(-v 标志)时,主机操作系统和容器之间可能会出现权限问题,Komga 允许您指定用户 ID 和组 ID 来避免此问题。

确保主机上的任何卷目录都由您指定的相同用户拥有,这样权限问题就会神奇地消失。

在此实例中,UID=1000 和 GID=1000,要查找您的 UID 和 GID,可以使用 id <your_user>,如下所示:

$ id <your_user>
  uid=1000(jdoe) gid=1000(jdgroup) groups=1000(jdgroup)

2.6 内存限制

默认情况下,Java 进程的最大内存(RAM)使用量通常被限制为 1GB。如果您在日志中遇到一些 OutOfMemoryException异常,您可能需要增加 Komga 可以使用的最大内存。

为此,您可以使用 JAVA_TOOL_OPTIONS=-Xmx<limit> 环境变量,其中 <limit> 可以是任意数量,例如 2048m、4g 等。例如,要以最大 4GB 内存运行 Komga:

JAVA_TOOL_OPTIONS=-Xmx4g

2.7 查询日志

在容器运行时访问 Shell:docker exec -it komga /bin/bash
实时监控容器日志:docker logs -f komga

2.8 更新

容器更新方法

2.8.1 通过 Docker Run/Create

  1. 更新镜像:docker pull gotson/komga
  2. 停止正在运行的容器:docker stop komga
  3. 删除容器:docker rm komga
  4. 使用上述相同的 docker create 参数重新创建新容器(如果正确映射到主机文件夹,您的 /config 文件夹和设置将被保留)。
  5. 启动新容器:docker start komga
  6. 移除旧的孤立镜像:docker image prune

2.8.2 通过 Docker Compose

  1. 更新所有镜像:docker-compose pull
  2. 或者更新单个镜像:docker-compose pull komga
  3. 让 Compose 根据需要更新所有容器:docker-compose up -d
  4. 或者更新单个容器:docker-compose up -d komga
  5. 移除旧的孤立镜像:docker image prune