Run with Docker
Registries
The Docker images are published on:
Version tags
This image provides various versions that are available via tags.
Tag | Description |
---|---|
latest | latest commit |
MAJOR.x | latest MAJOR version, for example 0.x |
x.y.z | version x.y.z |
Usage
Here are some example snippets to help you get started creating a container.
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
Then start the container:
docker start komga
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 #alternatively you can use a TZ environment variable, like TZ=Europe/London
target: /etc/timezone
read_only: true
ports:
- 25600:25600
user: "1000:1000"
# remove the whole environment section if you don't need it
environment:
- <ENV_VAR>=<extra configuration>
restart: unless-stopped
Parameters
Container images are configured using parameters passed at runtime (such as those above).
These parameters are separated by a colon and indicate external:internal
respectively.
For example, -p 8080:80
would expose port 80
from inside the container to be accessible from the host's IP on port 8080
outside the container.
Parameter | Function |
---|---|
-p 25600:25600 | The port for the Komga APIs and web interface |
--user 1000:1000 | User:Group identifier - see below for explanation |
--mount type=bind,source=/path/to/config,target=/config | Database and Komga configurations |
--mount type=bind,source=/path/to/data,target=/data | Location of your data directory on disk. Choose a folder that contains both your books and your preferred import location for hardlinks to work. |
-e ENV_VAR=value | Any configuration environment variable |
User / Group Identifiers
When using volumes (-v
flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user ID and group ID.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance UID=1000
and GID=1000
, to find yours use id <your_user>
as below:
$ id <your_user>
uid=1000(jdoe) gid=1000(jdgroup) groups=1000(jdgroup)