Skip to content
Configuration

Configuration

Healdan’s stack reads its settings from .env, in the folder you run docker compose from. Only DB_PASSWORD is required. After changing .env, run docker compose up -d.

Settings

SettingDefaultWhat it does
DB_PASSWORD(required)The MariaDB password for DB_USER
DB_NAMElogicaldocThe database’s name
DB_USERlogicaldocThe database user
DB_HOST / DB_PORTdb / 3306Change these only to use a MariaDB outside the stack
LOGICALDOC_PUBLIC_URLunsetThe public HTTPS address when Healdan is behind a proxy, for example https://docs.example.org. Used in links and emails
LOGICALDOC_BIND127.0.0.1The host address the app is published on. 127.0.0.1 means this machine only
LOGICALDOC_PORT8080The host port the app is published on
CATALINA_OPTS-Xmx2gJava options, such as the memory limit
TZUTCThe time zone
DB_WAIT_SECONDS60How long the app waits for the database when it starts
COMPOSE_FILEunsetPicks overlays, such as the proxy overlay in Reverse Proxy
PROXY_NETWORKnpm_defaultWith the proxy overlay: the proxy’s Docker network

What .env Controls

.env owns these settings, and writes them into context.properties on every start:

  • the database connection: jdbc.url, jdbc.username and jdbc.password;
  • the public address (server.url), when LOGICALDOC_PUBLIC_URL is set.

Change those in .env. Everything else is set in the app’s admin screens, and survives restarts, recreating the containers and rebuilding the image.

Passwords and Special Characters

  • Quote values in .env. Inside single quotes nothing is interpreted: DB_PASSWORD='p@ss $word #1'.
  • A password containing a single quote needs double quotes instead, with every $ written as $$.
  • DB_PASSWORD must not start with a space or a tab, contain ${, or start with _b64_. The configuration file can’t keep leading spaces, and it expands or decodes the other two when it’s read.
  • Use only Latin-1 characters, and no line breaks, in DB_PASSWORD, DB_USER, DB_NAME, DB_HOST and LOGICALDOC_PUBLIC_URL. The configuration file is stored as Latin-1, so a € or a non-Latin domain name can’t be kept. The app checks what it wrote, and refuses such a value when it starts, naming the setting.

Changing the Database Password

MariaDB only reads DB_PASSWORD when it first creates its data volume. To change the password later:

Open a Database Session

Run this, and enter the current password when asked. Use your DB_USER if you changed it.

docker compose exec db mariadb -u logicaldoc -p

Set the New Password

At the MariaDB prompt:

SET PASSWORD = PASSWORD('new-password');

Inside the quotes, write a ' as '' and a \ as \\. Nothing else needs escaping.

Update .env

Put the new password in .env, then run docker compose up -d.