The database holds by default all the data and must be configured exactly the same on all nodes.

The following are supported DBs:

  • PostgreSQL (recommended)
  • MariaDB
  • H2

This has to be specified for the rest server and joex. By default, a H2 database in the current /tmp directory is configured.


The config looks like this (both components):

docspell.joex.jdbc {
  url = ...
  user = ...
  password = ...

docspell.server.backend.jdbc {
  url = ...
  user = ...
  password = ...

The url is the connection to the database. It must start with jdbc, followed by name of the database. The rest is specific to the database used: it is either a path to a file for H2 or a host/database url for MariaDB and PostgreSQL.

When using H2, the user and password can be chosen freely on first start, but must stay the same on subsequent starts. Usually, the user is sa and the password is left empty. Additionally, the url must include these options:




url = "jdbc:postgresql://localhost:5432/docspelldb"


url = "jdbc:mariadb://localhost:3306/docspelldb"


url = "jdbc:h2:///path/to/a/file.db;MODE=PostgreSQL;DATABASE_TO_LOWER=TRUE;AUTO_SERVER=TRUE"