Configuration Reference (4.x)

1. Configuration (4.x)

Most of the CleanSpeak configuration is performed in the app in the browser. However, some configuration is provided through a configuration file. You may modify this file in order to change your configuration, CleanSpeak will need to be restarted to pick up changes to this configuration. Assuming you installed it in the default locations, the configuration file may be found in the following directory. If you have installed it in an alternate location the path to this file will be different.

Linux and macOS
/usr/local/cleanspeak/config/cleanspeak.properties
Windows
C:\cleanspeak\config\cleanspeak.properties

1.1. Options

The following table contains all the configuration options that CleanSpeak uses. For your convenience, you may select the type of configuration you plan to use, and the names will be updated to correspond to your preference.

Display configuration values in format:

Table 1. Properties

database.url [String] Required

A JDBC URL for your database.

For MySQL, this URL will look something like this:

database.url=jdbc:mysql://localhost:3306/cleanspeak?serverTimezone=UTC

For PostgreSQL, this URL will look something like this:

database.url=jdbc:postgresql://localhost:5432/cleanspeak

If you are using MySQL, you must include the serverTimezone=UTC parameter in the URL. The ? character is the same as a standard URL parameter, so if you have additional parameters, you should only have a single ? and parameters should be separated by &.

Some MySQL services such as Microsoft Azure may require a specific version of TLS to connect successfully. At the time of writing this note, the MySQL connector will not attempt to utilize TLSv1.2 by default, so when connecting to a service that requires this version you will need to explicitly request this version of TLS on the connection string. For example, appending this enabledTLSProtocols=TLSv1.2 to the connection string will allow you to successfully connect to an Azure managed MySQL database. See MySQL Connector : Connecting Securely UsingSSL for additional information.

database.username [String] Required

The username used to connect to the database.

database.password String Required

The password used to connect to the database.

database.mysql.enforce-utf8mb4 [String] defaults to true

When set to true and using MySQL, full 4 byte unique configuration is enforced at startup.

If this validation is not desired or not it is not possible to modify your MySQL configuration so satisfy the validation, disable this check by setting this value to false.

cleanspeak-app.additional-java-args [String]

Any additional arguments that you want to pass to the Java VM where this service will run.

cleanspeak-app.http.port [Integer] Required

The port number that CleanSpeak will use to accept HTTP requests.

cleanspeak-webservice.http.port [Integer] Deprecated

The port number that CleanSpeak will use to accept HTTP requests. Deprecated in favor of cleanspeak-app.http.port.

cleanspeak-app.https.enabled [Boolean] defaults to false

Whether CleanSpeak will serve HTTPS requests from cleanspeak-app.https.port

cleanspeak-app.https.port [Integer]

The port number that CleanSpeak will use to accept HTTPS requests IF cleanspeak-app.https.enabled is set to true

cleanspeak-webservice.https.port [Integer] Deprecated

The port number that CleanSpeak will use to accept HTTPS requests IF cleanspeak-app.https.enabled is set to true. Deprecated in favor of cleanspeak-app.https.port.

cleanspeak-app.https.certificate [String]

PEM encoded TLS certificates to use. Either this or cleanspeak-app.https.certificate-file must be set if cleanspeak-app.https.enabled is set to true

cleanspeak-app.https.certificate-file [String]

Path to a file containing a PEM encoded TLS certificate. Either this or cleanspeak-app.https.certificate must be set if cleanspeak-app.https.enabled is set to true

cleanspeak-app.https.private-key [String]

PEM encoded TLS private key to use. Either this or cleanspeak-app.https.private-key-file must be set if cleanspeak-app.https.enabled is set to true

cleanspeak-app.https.private-key-file [String]

Path to a file containing a PEM encoded TLS private key. Either this or cleanspeak-app.https.private-key must be set if cleanspeak-app.https.enabled is set to true

cleanspeak-app.local-metrics.enabled [Boolean] defaults to false

If enabled, HTTP requests without a browser session and without an API key that originate from localhost will be allowed to access /status, /api/status, and /prometheus/metrics.

cleanspeak-app.memory [String]

The amount of memory to allocate dedicate to Java VM where this service will run. Use the M or G suffix to denote megabytes and gigabytes respectively.

For example, 512M will allocate 512 Megabytes to the Java VM and 1G will allocate 1 gigabyte. This value must be an integer, for example use 1536M to allocate 1.5 gigabytes.

cleanspeak-app.runtime-mode [String] Defaults to development

The CleanSpeak runtime mode. The runtime mode causes some features to be modified based upon this configuration.

The possible values are:

  • development

  • production

When in the development runtime mode, maintenance mode will interactively assist you configuring the database and connecting to Elasticsearch if configured. Once you move CleanSpeak into production, it is recommended that you modify the runtime mode to production. When in production runtime mode maintenance mode will no longer be available to you which means you can be certain that your system will be sitting waiting for human input to start the upgrade process. When in production mode you will either need to leverage Silent Mode to automatically apply database migrations, or you will need to apply the database migrations yourself (either by hand or via a script of some sort).

cleanspeak-webservice.runtime-mode [String] Deprecated

The CleanSpeak runtime mode. Deprecated in favor of cleanspeak-app.runtime-mode.

cleanspeak-app.session.timeout [String] Defaults to 30M

The maximum idle time of a CleanSpeak user’s session before they must login again, formatted as a Java duration (see format). As long as the user’s browser is active with CleanSpeak, their session will keep extending up until the value of cleanspeak-app.session.max-age.

cleanspeak-app.session.max-age [String] Defaults to 24H

The absolute maximum length of a CleanSpeak user’s session before they must login again, formatted as a Java duration (see format).

cleanspeak-app.silent-mode [String] Defaults to false

Determines if CleanSpeak should use Silent Mode during the startup process. Silent Mode automatically applies all database migrations during startup such that you do not need to run them manually. This is the preferred mode when in production. If database.url, database.root.username, and database.username are set, then the default for silent-mode is true.

cleanspeak-webservice.silent-mode [String] Deprecated

Determines if CleanSpeak should use Silent Mode during the startup process. Deprecated in favor of cleanspeak-app.silent-mode.

proxy.host [String]

The proxy host used for egress network traffic. To enable this egress proxy, you must configure both the proxy.host and proxy.port.

proxy.port [String]

The proxy port used for egress network traffic. To enable this egress proxy, you must configure both the proxy.host and proxy.port.

proxy.username [String]

The proxy username for egress network traffic. To enable authentication with your proxy, you must configure both the proxy.username and proxy.password.

proxy.password [String]

The proxy password for egress network traffic. To enable authentication with your proxy, you must configure both the proxy.username and proxy.password.

search.servers [String] Required

The http or https URL to the Elasticsearch service. To specify more than one value, use a comma separated list.

Single host example: http://localhost:9200 Multiple hosts example: http://localhost:9200,http://192.168.1.42:9200