The LAN/IIS and Linux templates shipped a placeholder secret printed in the manual, and installs that kept it signed logins with a public key; any setting also invited short or reused values (security review F1). The setting is now ignored (one warning at boot if still present): the server generates a key once (48 random bytes) into jwt-signing.key in the data folder (beside the app if there is none; owner-only on Linux) and reuses it, so sign-ins also survive a restart where the server used to make a new key each boot (standalone, Linux desktop). If the file cannot be used, a temporary key is used for that run. Templates and dev launch configs drop the setting; manual updated (key page rewritten, setting steps removed from install pages); changelog line. Checked locally: token forged with the old placeholder 401; key file created and reused after restart (old token 200); auth and 2FA tests pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4.9 KiB
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
FILE STORAGE LOCATIONS
BACKUP UTILITY "pg_dump" PATH
LOGGING
TRANSLATION
API
- AYANOVA_JWT_SECRET (no longer used as of version 8.3.0)
- AYANOVA_USE_URLS
REPORTING
- AYANOVA_REPORT_RENDER_BROWSER_PATH
- AYANOVA_REPORT_RENDERING_TIMEOUT
- AYANOVA_REPORT_RENDER_API_URL_OVERRIDE