Run with Podman
This method is not officially supported.
Usage
Here are some example snippets to help you get started creating a container.
Refer to Run with Docker for information about images and version tags.
podman
Create the container:
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 \
docker.io/gotson/komga:latest
Start the container:
podman start komga
podman quadlet file
These quadlet files were tested with podman version 4.5.3
-
Create the following quadlet file
~/.config/containers/systemd/komga.container
:[Unit]
Description=Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
[Container]
## General
AutoUpdate=registry
Image=docker.io/gotson/komga:latest
## Network
PublishPort=25600:25600
## Volumes
# %h is for user home directory.
# see https://man.archlinux.org/man/systemd.unit.5.en#SPECIFIERS for more info about this.
Volume=%h/path/to/config:/config
Volume=%h/path/to/data:/data
## Environment Variables
Environment=<ENV_VAR>=<extra configuration>
[Service]
# Add 143 exit code to prevent the systemd service entering a failed state when stopping it
SuccessExitStatus=0 143
# Extend Timeout to allow time to pull the image
TimeoutStartSec=900
[Install]
# Start komga on boot
WantedBy=multi-user.target default.target -
Run
systemctl --user daemon-reload
to generate the systemd service from the quadlet file. -
Run
systemctl --user start komga.service
to start the container. -
Make sure to create the folders under the Volumes section of the quadlet file before starting the container.
podman quadlet files for using komf
These quadlet files were tested with podman version 4.5.3
-
Create the following quadlet files in
~/.config/containers/systemd/komga
-
komga.pod
[Pod]
# Komga
PublishPort=25600:25600
# Komf
PublishPort=8085:8085
[Install]
# Start the pod on boot
WantedBy=multi-user.target default.target -
komga.container
[Unit]
Description=Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
[Container]
## General
AutoUpdate=registry
Image=docker.io/gotson/komga:latest
Pod=komga.pod
## Volumes
# %h is for user home directory.
# see https://man.archlinux.org/man/systemd.unit.5.en#SPECIFIERS for more info about this.
Volume=%h/path/to/config:/config
Volume=%h/path/to/data:/data
## Environment Variables
Environment=<ENV_VAR>=<extra configuration>
[Service]
# Add 143 exit code to prevent the systemd service entering a failed state when stopping it
SuccessExitStatus=0 143
# Extend Timeout to allow time to pull the image
TimeoutStartSec=900 -
komf.container
Create a podman secret called
komga_password
for the komga admin password. Check the official Podman documentation for more details on how to create a podman secret.[Unit]
Description=Komga and Kavita metadata fetcher
After=komga.service
[Container]
## General
AutoUpdate=registry
Image=docker.io/sndxr/komf:latest
Pod=komga.pod
## Volumes
# %h is for user home directory.
# see https://man.archlinux.org/man/systemd.unit.5.en#SPECIFIERS for more info about this.
Volume=%h/path/to/config:/config
## Environment Variables
Environment="KOMF_KOMGA_BASE_URI=http://localhost:25600"
Environment="[email protected]"
Environment="JAVA_TOOL_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact -XX:ShenandoahGuaranteedGCInterval=3600000 -XX:TrimNativeHeapInterval=3600000"
Secret=komga_password,type=env,target=KOMF_KOMGA_PASSWORD
[Service]
# Add 143 exit code to prevent the systemd service entering a failed state when stopping it
SuccessExitStatus=0 143
# Extend Timeout to allow time to pull the image
TimeoutStartSec=900
-
-
Run
systemctl --user daemon-reload
to generate the systemd services from the quadlet files. -
Run
systemctl --user start komga-pod.service
to start the pod. -
Make sure to create the folders under the Volumes section of the quadlet files before starting the pod.
Parameters
Refer to Run with Docker for information about parameters and memory limit.
Support info
- Shell access whilst the container is running:
podman exec -it komga /bin/bash
- To monitor the logs of the container in realtime:
podman logs -f komga
Updating
Below are the instructions for updating containers:
Via podman auto-update
- Add
AutoUpdate=registry
under the[Container]
section of the quadlet file. - Use any tag for the image that isn't version specific like the
latest
tag. - Check if a new image is available:
podman auto-update --dry-run
- Update containers:
podman auto-update
Automatic updates
- Follow the instructions on the previous section to configure
podman auto-update
- Enable the systemd timer:
systemctl --user enable podman-auto-update.timer
- By default the timer will update the containers daily at midnight. You can customize the timer by running
systemctl --user edit podman-auto-update.timer
- Check this page for more info about systemd timers.
Example systemd timer override for weekly updates:
[Timer]
OnCalendar=weekly