
The server configuration is done with two files located within the server folder:
The second file is intended to contain confidential parameters and should be in .gitignore, therefore,
it would not be included in the version control system.
When starting the server, if it detects the existence of the aoc-server-secrets.json file, it will merge its content
with aoc-server-config.json, overwriting only the defined properties. Therefore, it is a good place to
specify the database password, etc.
In the configuration file, you can specify as many configurations as you need. You will see that by default
there is a configuration named "base". This configuration is taken as a reference.
If you specify another configuration, named "production", it will automatically merge with the "base" configuration,
overwriting repeated parameters.
When starting the server application, the configuration to use is determined following this order:
AOC_CONFIG_ENV environment variable exists, it is used as the configuration name.NODE_ENV environment variable exists, it is used as the configuration name."base" is used.The last point refers to specifying environment variables with the name AOC_ followed by the property
in question, for example, AOC_programName, AOC_postgres_password, or AOC_mail_options_auth_pass.
All properties are explained through the schema file aoc-server-config.schema.json.
Here is an example of aoc-server-config.json:
{
"$schema": "node_modules/@atlantis-of-code/aoc-server/aoc-server-config.schema.json",
"base": {
"appId": "myApp",
"programName": "MyApp",
"locale": "en",
"multiTenancy": false,
"node": {
"port": 3000,
"logLevel": "trace",
"requestLimit": "10mb",
"useAuthHelper": true,
"sessionSecret": "m1s3cr37",
"socketIo": {
"postgresAdapter": {}
}
},
"postgres": {
"host": "localhost",
"port": 5432,
"username": "postgres",
"password": "xxx",
"db": "myapp", // for multi tenancy, use any representative database
"debug": false // true to see SQL queries in the console
},
"mail": { // RECOMMENDED: to send emails through the application
"options": {
"host": "smtp.myserver.com",
"port": 587,
"secure": false,
"auth": {
"user": "my@email.com",
"pass": "xxx"
},
"tls": {
"rejectUnauthorized": false
}
},
"defaults": {
"from": "my@email.com"
}
},
"reports": {
"workflows": { // OPTIONAL: in case you need extra data in reports workflows
"qpdfAbsolutePath": "H:\\Path\\To\\qpdf.exe"
}
},
"custom": { // OPTIONAL: in case you need extra values
...
}
}
}
Please note, browse Issues and Discussions in Github for more information