Linux

Where Does Vikunja Store Config, Database, and Files?

Where Vikunja keeps its config.yml settings file, task database, and attachment files on servers.

Last updated

Vikunja splits state three ways: config.yml for options and secrets, a database (SQLite file or MySQL) for tasks and users, and a files tree for attachments. The frontend is stateless and points at the API.

Migrations move all three with matched versions. The usual failure is copying the database without the config secret, which logs out every user at once. Attachments travel as plain files beside the database, so include them in the same backup job. Search indexes rebuild separately.

Where Vikunja stores this, by platform

Linux
/app/vikunja (Docker data + config)

config.yml plus vikunja.db (SQLite default) and files/ attachments here in typical installs. Docker maps the same trio under /app/vikunja. Keep the JWT secret stable across moves to preserve sessions.

Frequently asked questions

how do i migrate vikunja to a new server

Copy config.yml plus the database (SQLite file or MySQL dump) and the files/ attachments tree to the new host, keeping versions matched. Frontend builds need no backup beyond the API URL it points at. Redis holds only sessions and rebuilds itself.

where is the vikunja config file

In config.yml at the install root (or /etc/vikunja/config.yml for packages). It holds database credentials, JWT secret, and mailer options. The secret invalidates all sessions when changed, so that file joins every backup.

does vikunja need persistent volumes

Yes. Map the config, database, and files trees to persistent volumes or every recreate starts blank. The frontend container is stateless and needs no volume. One compose file with three mounts covers a full instance.

Notice an outdated path? Let us know.