LinuxWindowsmacOS

Where Does Komga Store Its Database and Config?

Where Komga keeps database.sqlite, application.yml, and logs in Docker installs and desktop apps.

Last updated

Komga keeps its state in a config directory: database.sqlite and tasks.sqlite for data, application.yml for settings, logs beside them. Docker mounts it at /config, the Windows app uses %LOCALAPPDATA%\Komga, macOS uses ~/Library/Application Support/Komga, and the bare jar defaults to ~/.komga.

The library itself (/data in Docker) is separate from all of that. Backups must cover both mounts: config for the read progress and users, data for the books. The local filesystem rule for SQLite is the detail that bites newcomers.

Where Komga stores this, by platform

Linux
/config (Docker volume)

database.sqlite, tasks.sqlite, application.yml, and logs here. Bind it to a host folder on a local disk; network shares fail the startup check. Set the library path (/data) on a separate mount.

Linux
~/.komga

Same database and yml files natively. The jar honors komga.config-dir to relocate the tree. Desktop library folders default beside it unless changed in the UI.

Windows
%LOCALAPPDATA%\Komga

Config directory for the Windows desktop app. Note the folder is virtualized by Windows, so browse it through Explorer rather than assuming a plain path. Same database filenames as elsewhere.

macOS
~/Library/Application Support/Komga

Same contents as the other native installs. Finder hides Library, so reach it via Go > Go to Folder. Library paths configured in the UI can point anywhere on disk.

Frequently asked questions

how do i migrate komga to a new server

Stop the container and copy the whole mapped /config folder (database.sqlite, tasks.sqlite, application.yml, logs). Restore by mounting it at /config on the new host. The library folders (/data) hold the books and move separately.

where is the komga config file

In application.yml inside the config directory, or via KOMGA_ environment variables (the Docker native way). The yml wins for file set values; env vars cover the rest. Two space YAML indentation matters, as always.

does komga need a persistent volume

Yes. Map /config to a local filesystem volume, never a network share: Komga checks the database filesystem on startup and refuses CIFS or NFS. That refused start is the classic first Docker run error.

Notice an outdated path? Let us know.