You can decide what modules to include in your Ferron installation by copying the ferron-build.yaml file to ferron-build-override.yaml, and editing the file.
The modules are defined in the modules section, which is a list of modules to be included in the build. Below are the supported properties for the modules:
- builtin (bool)
- Determines if the module is built-in (in the
ferron-modules-builtincrate). Default:false
- Determines if the module is built-in (in the
- cargo_feature (String)
- The Cargo feature for
ferron-modules-builtincrate to enable for this module. Used with built-in modules. Default: none
- The Cargo feature for
- git (String)
- The Git repository URL for the module. Default: none
- branch (String)
- The Git branch for the module. Used with Git repositories. Default: none
- path (String)
- The local path (absolute paths are recommended) to the module. Default: none
- crate (String)
- The name of the Rust crate corresponding to the module. Used with modules from Git or local paths. Default: none
- loader (String)
- The name of the struct name that will be used to load the module (usually ends with
Loader). The struct must have anewmethod. Default: none
- The name of the struct name that will be used to load the module (usually ends with
For example, you can specify a module from a Git repository:
modules:
# ...
- git: https://git.example.com/ferron-module-example.git
crate: ferron-module-example
loader: ExampleLoaderOr a built-in module:
modules:
# ...
- builtin: true
cargo_feature: example
loader: ExampleLoaderThe modules will be executed in the order they are defined in the modules section.
You can also decide what DNS providers to include in your Ferron installation by copying the ferron-build.yaml file to ferron-build-override.yaml, and editing the file.
The providers are defined in the dns section, which is a list of DNS providers to be included in the build. Below are the supported properties for the DNS providers:
- builtin (bool)
- Determines if the module is built-in (in the
ferron-modules-builtincrate). Default:false
- Determines if the module is built-in (in the
- id (String)
- The DNS provider ID, as specified in the
providerprop in theauto_tls_challengedirective in KDL configuration. Default: none
- The DNS provider ID, as specified in the
- cargo_feature (String)
- The Cargo feature for
ferron-modules-builtincrate to enable for this module. Used with built-in modules. Default: none
- The Cargo feature for
- git (String)
- The Git repository URL for the module. Default: none
- branch (String)
- The Git branch for the module. Used with Git repositories. Default: none
- path (String)
- The local path (absolute paths are recommended) to the module. Default: none
- crate (String)
- The name of the Rust crate corresponding to the module. Used with modules from Git or local paths. Default: none
- provider (String)
- The name of the struct name that will be used to initialize the DNS provider (usually ends with
Provider). The struct must have awith_parametersmethod. Default: none
- The name of the struct name that will be used to initialize the DNS provider (usually ends with
For example, you can specify a provider from a Git repository:
dns:
# ...
- git: https://git.example.com/ferron-dns-mock.git
crate: ferron-dns-mock
provider: MockProviderOr a built-in provider:
dns:
# ...
- builtin: true
cargo_feature: mock
provider: MockProviderYou can also decide what observability backends to include in your Ferron installation by copying the ferron-build.yaml file to ferron-build-override.yaml, and editing the file.
The supported observability backends are defined in the observability section, which is a list of supported observability backends to be included in the build. Below are the supported properties for the observability backends:
- builtin (bool)
- Determines if support for a specific observability backend is built-in (in the
ferron-observability-builtincrate). Default:false
- Determines if support for a specific observability backend is built-in (in the
- cargo_feature (String)
- The Cargo feature for
ferron-observability-builtincrate to enable for support for a specific observability backend. Used with built-in support. Default: none
- The Cargo feature for
- git (String)
- The Git repository URL for support for a specific observability backend. Default: none
- branch (String)
- The Git branch for support for a specific observability backend. Used with Git repositories. Default: none
- path (String)
- The local path (absolute paths are recommended) to support for a specific observability backend. Default: none
- crate (String)
- The name of the Rust crate corresponding to support for a specific observability backend. Used with observability backend support crates from Git or local paths. Default: none
- loader (String)
- The name of the struct name that will be used to load support for a specific observability backend (usually ends with
ObservabilityBackendLoader). The struct must have anewmethod. Default: none
- The name of the struct name that will be used to load support for a specific observability backend (usually ends with
For example, you can specify observability backend support from a Git repository:
observability:
# ...
- git: https://git.example.com/ferron-observability-example.git
crate: ferron-observability-example
loader: ExampleObservabilityBackendLoaderOr a built-in observability backend:
observability:
# ...
- builtin: true
cargo_feature: example
loader: ExampleObservabilityBackendLoader