Configuration Reference

Configuration Reference

Much of the FusionAuth configuration is performed in the UI. Some additional advanced configuration is provided through a configuration file. You may modify this file in order to change your configuration, FusionAuth will need to be restarted to pick up changes to this configuration. Assuming you installed in the default locations, the configuration file may be found in the following directory. If you have installed in an alternate location the path to this file will be different.

Linux and macOS
/usr/local/fusionauth/config/fusionauth.properties
Windows
\fusionauth\config\fusionauth.properties

This table contains all of the configuration options available in the fusionauth.properties file.

Table 1. Properties

database.url [String]

The JDBC connection URL to your database. The following are example values.

  • Example MySQL URL: database.url=jdbc:mysql://localhost:3306/fusionauth?serverTimezone=UTC

  • Example PostgreSQL URL: database.url=jdbc:postgresql://localhost:5432/fusionauth

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 &.

database.username [String]

The username used to connect to the database.

database.password [String]

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.

fusionauth-search.transport-port [Integer] defaults to 9020

The port that the search engine will use for optimized TCP communications instead of HTTP communications. This port is used internally by the search engine to communicate between clustered nodes.

fusionauth-search.http-port [Integer] defaults to 9021

The port number that the Search Engine will use to accept HTTP requests. This value is also utilized by FusionAuth to make HTTP requests to the FusionAuth Search.

fusionauth-search.memory [String (Memory)] defaults to 256M

The amount of memory to allocate 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.

fusionauth-search.additional-java-args [String]

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

fusionauth-search.hosts [String] defaults to _local_

This parameter indicates which address or network interfaces to bind during service startup. The default value will cause the service to bind any loopback address on the system such as 127.0.0.1.

This default value is sufficient for running FusionAuth and the Search Engine on the same server. If you run FusionAuth Search on a separate system than FusionAuth App you will need to modify this value. You may specify a single hostname or IP address or one of the special values in any combination.

Special values include:

  • _[networkInterface]_ - Addresses of a network interface, for example _en0_

  • _local_ - Any loopback address on the system, for example 127.0.0.1

  • _site_ - Any site-local addresses on the system, for example 192.168.0.1.

  • _global_ - Any globally-scoped addresses on the system, for example 8.8.8.8.

The following is an example to bind to localhost as well as any site local addresses on the system such at 192.168.1.42.

fusionauth-search.hosts=_local_,_site_

fusionauth-search.servers [String] defaults to localhost:9020

A comma separated list of stand-alone search engine servers that will be used by FusionAuth. The port specified on the server should be the Search Engine Transport port, not the HTTP port.

The following is an example of a configuration for two separate search engines, one running on localhost and the other is on remote system.

fusionauth-search.servers=localhost:9020,search2.example.com:9020

This configuration value is used by the FusionAuth Search and the FusionAuth App services. Even when running FusionAuth App without FusionAuth Search on the same server this configuration value will need to be provided.

fusionauth-search.data-directory [String (Path)]

The location on disk where FusionAuth Search will store its data. This value is defaulted if not specified and generally should not be modified.

fusionauth-app.public-url [String]

The FusionAuth App URL that is used to communicate with other FusionAuth nodes. This value is defaulted if not specified and generally should not be modified. FusionAuth will attempt to use a localhost address or a site local if available. Unless you have multiple FusionAuth nodes the generated value should always work. You may need to manually specify this value if you have multiple FusionAuth nodes and the only way the nodes can communicate is on a public network.

fusionauth-app.search-servers [String] defaults to http://localhost:9021

A comma separated list of URLS that will be used by FusionAuth to connect to the search engine. The port specified on the URL should be the Search Engine HTTP port. (see fusionauth-search.http-port) It is not recommended to ever run the FusionAuth Search open to the public internet.

Generally this should be the same list provided by fusionauth-search.servers except this list will be a list of URLs and this value is utilized by the FusionAuth webservice. If this property is not defined it will be generated based upon the value of fusionauth-search.servers.

The following is an example of a configuration for two separate search engines, one running on localhost and the other is on a remote system.

fusionauth-app.search-servers=http://localhost:9021,http://search2.example.com:9021

fusionauth-app.management-port [Integer] defaults to 9010

The port number used for internal Tomcat administration.

fusionauth-app.http-port [Integer] defaults to 9011

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

fusionauth-app.https-port [Integer] defaults to 9013

The port number that FusionAuth will use to accept HTTPS requests.

fusionauth-app.ajp-port [Integer] defaults to 9019

The port number that FusionAuth will use to accept AJP requests.

fusionauth-app.memory [String] defaults to 256M

The amount of memory to allocate 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.

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

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