Linux

Where Does Uptime Kuma Store Its Database?

Where Uptime Kuma keeps its SQLite database and uploaded files in bare metal installs versus Docker.

Last updated

Uptime Kuma keeps nearly everything in one SQLite database named kuma.db inside its data directory. Bare installs use a data folder next to the checkout; the Docker image uses /app/data, which must be a mounted volume.

Uploads like status page icons sit beside the database in the same tree. Backups therefore mean copying one folder with the service stopped, including the WAL sidecars. A surprising number of empty after update reports trace back to an unmounted /app/data. Notifications read the same database, so they restore together.

Where Uptime Kuma stores this, by platform

Linux
/app/data (Docker volume)

kuma.db plus -wal/-shm sidecars and an uploads folder. Bind this tree to a host folder or named volume. Exact host path is your compose choice; the container side is always /app/data.

Frequently asked questions

how do i back up uptime kuma docker

Stop the container and copy the whole mapped data folder (kuma.db plus uploads). Restore means mounting the same files at /app/data on the new host. The database holds monitors, incidents, and settings together, so one folder is the whole backup.

where is the uptime kuma database

In kuma.db inside the data directory. It uses WAL mode, so copy the -wal and -shm sidecars along with it while stopped. A lone kuma.db without its sidecars can open stale or refuse to open at all.

does uptime kuma need a data volume

Yes. Mount a persistent volume at /app/data or every recreate starts with a blank dashboard. That missing mount is the classic empty Uptime Kuma after an update. The image itself holds no state worth keeping.

Notice an outdated path? Let us know.