diff --git a/website/docs/community/podman.md b/website/docs/community/podman.md index e69de29b..17a6cd08 100644 --- a/website/docs/community/podman.md +++ b/website/docs/community/podman.md @@ -0,0 +1,117 @@ +# Run with Podman Quadlet files +Tested with podman version 5.2.4 +## Registries + +Container images are published on: +- [DockerHub](https://hub.docker.com/r/gotson/komga) +- [ghcr.io](https://github.com/gotson/komga/pkgs/container/komga) + +## 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 + + + +### podman + +``` +podman create \ + --name=komga \ + -p 25600:25600 \ + --mount type=bind,source=/path/to/config,target=/config \ + --mount type=bind,source=/path/to/data,target=/data \ + --restart unless-stopped \ + docker.io/gotson/komga:latest +``` + +Then start the container: + +``` +docker start komga +``` + +### podman quadlet + +``` +--- +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: + - = + 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](/installation/configuration.md) 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 ` as below: + +``` +$ id + uid=1000(jdoe) gid=1000(jdgroup) groups=1000(jdgroup) +``` + +## Increase memory limit + +By default the `java` process will be limited in the maximum amount of memory (RAM) it can use, usually 1gb. If you encounter some `OutOfMemoryException` in the logs you probably need to increase the maximum memory Komga can use. + +To do so, you can use the `JAVA_TOOL_OPTIONS=-Xmx` environment variable, where `` can be any amount like `2048m`, `4g` etc. For example to run Komga with a maximum of 4gb of memory: + +```shell script +JAVA_TOOL_OPTIONS=-Xmx4g +``` + +## Support info + +- Shell access whilst the container is running: `podmam exec -it komga /bin/bash` +- To monitor the logs of the container in realtime: `podmam logs -f komga` + +## Updating + +Below are the instructions for updating containers: + +###