Added Configuration Section to README

This commit is contained in:
Mia Rose Winter 2024-01-18 15:24:41 +01:00
parent 33e5f32970
commit a0d5264870
Signed by: miawinter
GPG key ID: 4B6F6A83178F595E

View file

@ -9,10 +9,76 @@ ## The Open Source Blogging Engine
Under Construction Under Construction
## Configuring Wave
Wave allows you to configure it in many different formats and in multiple places, and
you can even use multiple of the following methods to supply configuration information.
Please keep in mind that first, asp.net configuration keys are case-insensitive, and second,
that there is a precedence in the different formats, so a value for the same key in two
formats will be overwritten by one.
### Configuration Locations
There are two main locations where Wave (and asp.net) takes it's configuration from:
The Environment, and the `/configuration` volume. Environment variables allow you to quickly
set up a docker container, but the more you need to configure the more unmaintainable an
`.env` file (or an `environment:` section in docker compose) becomes, so if you find yourself
customizing a lot of Waves behavior, consider using one of the many supported configuration
file formats.
### Configuration Keys
I will provide you the different configuration keys with a dot notation, like `Email.Smtp.Host`.
In environment variables, these dots need to be replaced with two underscore characters: `__`
and prefixed with `WAVE_`.
In config files, those dots are hierarchy level, and you need to implement that dialects'
syntax for it. Here some examples for `Email.Smtp.Host`:
**Environment**
```
WAVE_Email__Smtp__Host=smtp.example.com
```
**JSON**
```json
{
"Email": {
"Smtp:": {
"Host": "smtp.example.com"
}
}
}
```
**YAML**
```yml
Email:
Smtp:
Host: smtp.example.com
```
### Supported Configuration Formats
Wave will take configuration from the following files in the `/configuration` volume, files
later in this chain will have precedence over files earlier in that chain:
- config.json
- config.yml
- config.toml
- config.ini
- config.xml
After this, values from the Environment will take the highest precedence.
## Installation ## Installation
TODO TODO
## Configuring Email
TODO
## License and Attribution ## License and Attribution