Skip to content

Environment variables

Authoritative source: modules/commons/commons-config/src/main/java/org/eclipse/dirigible/commons/config/DirigibleConfig.java (the enum) plus Configuration.java (the allow-list). The list below covers everything you typically reach for.

For the install-oriented subset see /help/setup/environment-variables.

Server

VariableDefaultPurpose
DIRIGIBLE_SERVER_PORT8080HTTP listen port.
DIRIGIBLE_HOME_URLservices/web/shell-ide/Where / redirects to.
DIRIGIBLE_BASIC_USERNAMEadminDefault basic-auth user.
DIRIGIBLE_BASIC_PASSWORDadminDefault basic-auth password.

Repository

VariableDefaultPurpose
DIRIGIBLE_REPOSITORY_LOCAL_ROOT_FOLDER./target/On-disk registry root.
DIRIGIBLE_REPOSITORY_PROVIDERlocalRepository backend.
DIRIGIBLE_REPOSITORY_MASTER_PROVIDERMaster / upstream repository.
DIRIGIBLE_REGISTRY_EXTERNAL_FOLDERMount an external folder into the registry.
DIRIGIBLE_REGISTRY_EXTERNAL_FOLDER_AS_SUBFOLDERMount under a sub-path.
DIRIGIBLE_REGISTRY_EXTERNAL_FOLDER_IGNORED_FOLDERSComma-separated ignore list.

Data sources

VariableDefaultPurpose
DIRIGIBLE_DATASOURCE_DEFAULT_DRIVERH2 file driverJDBC driver class.
DIRIGIBLE_DATASOURCE_DEFAULT_URLlocal H2JDBC URL.
DIRIGIBLE_DATASOURCE_DEFAULT_USERNAMEJDBC user.
DIRIGIBLE_DATASOURCE_DEFAULT_PASSWORDJDBC password.
DIRIGIBLE_DATABASE_DATASOURCE_NAME_DEFAULTDefaultDBDefault data source name.
DIRIGIBLE_DATABASE_DATASOURCE_NAME_SYSTEMSystemDBSystem data source name.
DIRIGIBLE_LEAKED_CONNECTIONS_CHECK_INTERVAL_SECONDSJDBC leak-check cadence.
DIRIGIBLE_LEAKED_CONNECTIONS_CHECK_MAX_IN_USE_SECONDSThreshold before logging a leak.

Multi-tenancy

VariableDefaultPurpose
DIRIGIBLE_MULTI_TENANT_MODEtrueMulti-tenant switch.
DIRIGIBLE_TENANT_RESOLUTION_STRATEGYSUBDOMAINHow a request's tenant is determined. SUBDOMAIN matches the host header against DIRIGIBLE_TENANT_SUBDOMAIN_REGEX, so each tenant needs a host of its own. TOKEN_GROUPS serves every tenant from one host and takes the tenant the signed-in user selected, out of those their identity provider groups grant.
DIRIGIBLE_TENANT_SUBDOMAIN_REGEXHost pattern the tenant subdomain is captured from, under the SUBDOMAIN strategy. Unused by TOKEN_GROUPS.
DIRIGIBLE_APP_IDThis deployment's application id, the middle part of the group names <tenantId>.<appId>.<role>. Groups naming another application are ignored, so one identity provider can serve several applications. Required under TOKEN_GROUPS, and it must not contain a dot.
DIRIGIBLE_TENANT_GROUPS_CLAIMcognito:groupsThe token claim the user's groups are read from. Set it explicitly on Keycloak - a claim that carries no groups is not an error, the user simply appears to have no tenants.
DIRIGIBLE_TENANTS_PROVISIONING_FREQUENCY_SECONDS900Provisioning poll cadence, in seconds.
DIRIGIBLE_TENANT_PROVISIONING_API_ENABLEDfalseExposes the tenant provisioning API under /services/tenant-provisioning/, through which an external service registers a tenant, registers its data source from credentials it created itself, and activates it. Off by default and off means absent: no endpoint answers and none of its beans exist. The API accepts database credentials over HTTP, so a deployment has to opt in.

See Tenant resolution and Tenant provisioning API.

Synchronizers

VariablePurpose
DIRIGIBLE_SYNCHRONIZER_FREQUENCYReconciliation cadence (seconds).
DIRIGIBLE_SYNCHRONIZER_CROSS_RETRY_COUNTRetry budget for cross-synchronizer dependencies.
DIRIGIBLE_SYNCHRONIZER_CROSS_RETRY_INTERVAL_MILLISRetry interval.

Dynamic dependencies

VariableDefaultPurpose
DIRIGIBLE_DEPENDENCIES_DYNAMICtrueRuntime resolution of project.json maven declarations. Disable on immutable production images.
DIRIGIBLE_DEPENDENCIES_FROZENfalseActivate the lockfile's set only - checksum-verified, no re-mediation, network never consulted.
DIRIGIBLE_DEPENDENCIES_DIR~/.dirigible/resolved-modulesDirectory the resolved jars are linked into (the launch-classpath seed).
DIRIGIBLE_DEPENDENCIES_LOCKFILEproject-lock.json in the dependencies dirLockfile location.
DIRIGIBLE_MAVEN_REPOSITORIESMaven CentralComma-separated id=url pairs; an entry with id central overrides the default Central URL.
DIRIGIBLE_MAVEN_[ID]_USERNAME / ..._PASSWORDCredentials per repository id (uppercased, non-alphanumerics become _).
DIRIGIBLE_MAVEN_LOCAL_REPO~/.m2/repository when presentLocal Maven repository the artifacts resolve into.
DIRIGIBLE_MAVEN_OFFLINEfalseResolve from the local repository only.

See Maven dependencies and How dependency versions are decided.

Debuggers and language tooling

VariableDefaultPurpose
DIRIGIBLE_JAVASCRIPT_GRAALVM_DEBUGGER_PORT8081Graalium JS debugger port.
DIRIGIBLE_GRAALIUM_ENABLE_DEBUGtrue (in Docker)Toggle JS debug.
DIRIGIBLE_JAVA_DEBUG_JDWP_PORT8000JDWP for the Java debugger view.
DIRIGIBLE_JAVA_LSP_ENABLEDToggle JDT.LS.
DIRIGIBLE_JAVA_LSP_INSTALL_DIRJDT.LS install directory.

Mail

VariablePurpose
DIRIGIBLE_MAIL_USERNAMESMTP username.
DIRIGIBLE_MAIL_PASSWORDSMTP password.
DIRIGIBLE_MAIL_TRANSPORT_PROTOCOLsmtp or smtps.
DIRIGIBLE_MAIL_SMTPS_HOST / DIRIGIBLE_MAIL_SMTP_HOSTSMTP host.
DIRIGIBLE_MAIL_SMTPS_PORT / DIRIGIBLE_MAIL_SMTP_PORTSMTP port.
DIRIGIBLE_MAIL_SMTPS_AUTH / DIRIGIBLE_MAIL_SMTP_AUTHAuth toggle.

Flowable

VariablePurpose
DIRIGIBLE_FLOWABLE_DATABASE_*Flowable's own data source.
DIRIGIBLE_FLOWABLE_MAIL_*Flowable mail settings.

Messaging

VariableDefaultPurpose
DIRIGIBLE_MESSAGING_BROKER_URLConnect to an external ActiveMQ broker instead of the embedded one - tcp://activemq:61616, ssl://b-....mq.eu-central-1.amazonaws.com:61617, failover:(tcp://one:61616,tcp://two:61616). Unset or blank starts the embedded broker and attaches over vm://localhost.
DIRIGIBLE_MESSAGING_BROKER_USERNAMEBroker username. Unset connects anonymously.
DIRIGIBLE_MESSAGING_BROKER_PASSWORDBroker password.
DIRIGIBLE_MESSAGING_USE_DEFAULT_DATABASEtruePersist the embedded broker's messages in the system database. Ignored (and logged as such) when a broker URL is set - an external broker owns its own persistence.

Setting a broker URL replaces the in-process broker entirely: nothing is started locally, and every producer and consumer - .listener artefacts, @Component listeners, the messaging SDK - connects to the configured broker. Two consequences to plan for:

  • The Messaging perspective goes dark. It reads the in-process broker object, so its endpoints are not registered against an external broker and return 404. Administer that broker from its own console.
  • An unreachable broker fails startup, deliberately, rather than leaving messaging silently inoperative.

See Message listeners.

CMS / S3 / SharePoint

VariablePurpose
DIRIGIBLE_CMS_INTERNAL_ROOT_FOLDERInternal CMIS root.
DIRIGIBLE_S3_PROVIDERaws or localstack.
DIRIGIBLE_MS_SHAREPOINT_*SharePoint CMS credentials.

Authentication providers

VariablePurpose
DIRIGIBLE_GITHUB_CLIENT_ID / _CLIENT_SECRET / _SCOPEGitHub OAuth (github profile).
DIRIGIBLE_KEYCLOAK_*Keycloak.
DIRIGIBLE_COGNITO_*AWS Cognito.
DIRIGIBLE_SNOWFLAKE_*Snowflake OAuth.

Encryption

VariablePurpose
DIRIGIBLE_ENCRYPTION_KEYBase64 master key.
DIRIGIBLE_ENCRYPTION_KEYSTORE_*Java keystore alternative.

Misc

VariablePurpose
DIRIGIBLE_EXEC_COMMAND_LOGGING_ENABLEDAudit shell-exec calls.
DIRIGIBLE_TRIAL_ENABLEDTrial-mode flag.
SPRING_PROFILES_ACTIVESpring profile selector (github, keycloak, cognito, snowflake, ...).

The platform reads variables only through DirigibleConfig / Configuration. New tunables are added to those classes - don't introduce ad-hoc System.getProperty reads.

See also

Released under the EPL-2.0 License.