Skip to content

# AyaNova configuration guide

Most of the AyaNova configuration is stored inside the database and set from within the AyaNova web application, however anything related to starting the server can not be stored in the database so external configuration is required for some settings.

Configuration values can be specified in a `config.json` file in the AyaNova program files folder, an operating system environment variable or as a command line parameter to the AyaNova.exe server application. There are three sources of configuration available to support a wide range of scenarios and operating systems.

The AyaNova server looks for all three sources of configuration during startup and loads them in this order: config.json, environment variables, command line parameters. If any identical configuration settings are found in more than one of those sources the last one loaded wins. In other words the command line parameter has the highest precedence, environment variables second highest and and the config.json file has the lowest precedence.

No single source of configuration is required. Not all settings need to be specified; if any mandatory settings are mising AyaNova will report them in the application window / command line console if possible or to the IIS log if running in an IIS hosted configuration. In some cases it may be helpful for troubleshooting purposes to start AyaNova from the command line console "manually" to see the missing required settings.

While all three sources of configuration are valid to use together, we recommend sticking with one only to avoid confusion. Choose the method that is most appropriate for the situation keeping in mind security needs and ease of use. Once the server is up and running you can see which settings are in use by looking at the server log file which logs the settings in use when it boots or within the AyaNova web interface by logging in as an Operations role user and viewing the "Server settings" page.

Unless there is a specific need, it's generally easiest to use the `config.json` configuration file method.

## CONFIG.JSON

The first and lowest priority source of configuration settings that AyaNova looks for is the `config.json` file co-located with the `AyaNova.exe` executable. By default during installation this file is created in the AyaNova program files folder at `c:\Program Files\ayanova\`.

Here is an example config.json file contents, note that each property and value are quoted and comma separated and are required to be inside braces:

    {
      "AYANOVA_USE_URLS": "http://*:7575",
      "AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=YOUR_PASSWORD_HERE;Database=AyaNova;",
      "AYANOVA_DEFAULT_TRANSLATION": "en",
      "AYANOVA_BACKUP_PG_DUMP_PATH": "postgres\\bin\\",
      "AYANOVA_DATA_PATH": "%ProgramData%\\ayanova",
      "AYANOVA_LOG_LEVEL": "Info"
    }

If you add a property to this file be sure to place a comma after the preceding item or the config.json file will be invalid.

### Backslashes in config.json

JSON files require double backslashes to be valid.

Windows paths in config.json must have double backslashes as in the example above.

Linux uses the forward slash character for paths so this rule doesn't apply.

## ENVIRONMENT VARIABLES

Set the AyaNova environment variables in the manner appropriate for your operating system, either from the command line or as a host setting. For example:

Windows:

`set "AYANOVA_DB_CONNECTION=Server=localhost;Database=MyAyaNovaDB;"`

Linux:

`export AYANOVA_DB_CONNECTION="Server=localhost;Database=MyAyaNovaDB;"`

## COMMAND LINE PARAMETERS

Command line parameters are appended to the command to start the ayanova server, for example:

`AyaNova.exe --AYANOVA_DB_CONNECTION="Server=localhost;Username=postgres;Password=YOUR_PASSWORD_HERE;Database=AyaNova;"`

## PARAMETERS AVAILABLE

### DATABASE

- AYANOVA_DB_CONNECTION

### FILE STORAGE LOCATIONS

- AYANOVA_DATA_PATH
- AYANOVA_BACKUP_FILES_PATH
- AYANOVA_ATTACHMENT_FILES_PATH
- AYANOVA_TEMP_FILES_PATH

### BACKUP UTILITY "pg_dump" PATH

- AYANOVA_BACKUP_PG_DUMP_PATH

### LOGGING

- AYANOVA_LOG_ENABLE_LOGGER_DIAGNOSTIC_LOG
- AYANOVA_LOG_LEVEL
- AYANOVA_LOG_PATH

### TRANSLATION

- AYANOVA_DEFAULT_TRANSLATION

### API

- AYANOVA_JWT_SECRET
- AYANOVA_USE_URLS

### REPORTING

- AYANOVA_REPORT_RENDER_BROWSER_PATH
- AYANOVA_REPORT_RENDERING_TIMEOUT
- AYANOVA_REPORT_RENDER_API_URL_OVERRIDE

### SECURITY

- AYANOVA_SET_SUPERUSER_PW