一、介绍
1.1 Komga 是什么?
Komga 是一个自托管的在线书库,用于管理您的漫画、漫画书、杂志和电子书等。
仅需几个简单的步骤,即可使用 Komga:
- 在计算机或者NAS上安装并运行 Komga。
- 按书籍类型创建库,并拷贝图书到库中。
- 使用 Komga 本身提供的 web 界面或者任何第三方兼容的客户端访问。
- 开始阅读。
让我们预览一下软件web界面:
主页
库
系列
阅读
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 镜像发布在以下平台:
- DockerHub
- ghcr.io
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
- 更新镜像:
docker pull gotson/komga
- 停止正在运行的容器:
docker stop komga
- 删除容器:
docker rm komga
- 使用上述相同的
docker create
参数重新创建新容器(如果正确映射到主机文件夹,您的/config
文件夹和设置将被保留)。 - 启动新容器:
docker start komga
- 移除旧的孤立镜像:
docker image prune
2.8.2 通过 Docker Compose
- 更新所有镜像:
docker-compose pull
- 或者更新单个镜像:
docker-compose pull komga
- 让 Compose 根据需要更新所有容器:
docker-compose up -d
- 或者更新单个容器:
docker-compose up -d komga
- 移除旧的孤立镜像:
docker image prune