One static binary
KMServer is distributed as the kmrs binary: no runtime to install, nothing else to provision.
KMServer
A lightweight, Komga-compatible server with the web UI included.
docker run -d \
--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 \
ghcr.io/kmworks/kmrsThe Komga experience with a much smaller footprint: one static binary instead of a JVM runtime.
KMServer is distributed as the kmrs binary: no runtime to install, nothing else to provision.
Linux, macOS, and Windows, on x86_64 and aarch64. Docker image included.
The Docker image bundles the kmweb UI, so your library works in a browser out of the box.
Same port, same mounts, same environment variables, same API.
REST, OPDS v1.2/v2, SSE, Kobo and KOReader sync. A differential harness compares about 105 endpoints against a live Java instance of komga 1.27.1.
python3 tests/diff/diff.py \
--java-jar komga.jar \
--rust-bin ./kmrsSame port (25600), same /config and /data mounts, same KOMGA_* environment variables. Your existing setup carries over.
Point KMServer at an existing komga data directory and it upgrades database.sqlite in place with byte-for-byte Flyway migrations. The Java version can still open libraries written by KMServer, so you can switch back at any time.
Your files stay where they are.
Upgraded in place, readable by both servers.
Your clients reconnect without changes.
One docker run, or a single static binary from the releases page.
Point /config at your existing komga data. KMServer upgrades it in place.
The bundled web UI, KMReader, KOReader, Kobo, or any OPDS client.
docker run -d \
--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 \
ghcr.io/kmworks/kmrsservices:
kmrs:
image: ghcr.io/kmworks/kmrs:latest
container_name: kmrs
user: "1000:1000"
ports:
- "25600:25600"
volumes:
- ./config:/config
- ./data:/data
restart: unless-stopped# grab the archive for your platform from the releases page:
# https://github.com/kmworks/kmrs/releases/latest
./kmrs # serves on http://localhost:25600Improvements KMServer adds on top of compatibility.
Simplified and traditional Chinese match each other, and CJK unigrams find titles mid-run. Search
简繁Numbered titles order the way you expect: "Page 2" before "Page 10", with a configurable ICU locale.
jemalloc sampling with a pprof endpoint, always on in release builds.
The full lists live in the docs: Enhancements, Compatibility, Known limitations, Development.
Compatible with the Komga API and its reader ecosystem.