Configuring FMD Server
You can configure FMD Server via a config file, environment variables, and CLI flags.
Via config file
The config.example.yml
contains the available options to configure FMD Server.
Copy this file to config.yml and edit it to your liking.
By default, FMD Server will look for the config.yml at /etc/fmd-server/config.yml
and in the current working directory.
You can pass a custom location with --config.
See the respective installation guide for how to set the configuration file. For example, see the Docker guide.
Config file and packaging
When /etc/fmd-server/config.yml is present and used, FMD Server also reads in /etc/fmd-server/local.yml.
Values in local.yml override their counterpart in config.yml.
This is similar to how fail2ban uses jail.conf and jail.local:
it allows packagers to define and maintain config.yml while enabling admins to override their settings in local.yml.
Thus admins don't have to edit the packager's config.yml (which would
cause conflicts if a package update changes the config.yml).
Via environment variables
All values that can be set in the config file can also be set via environment variables.
Simply set FMD_CONFIGFIELDNAME, e.g. FMD_PORTINSECURE.
services:
fmd:
environment:
FMD_PORTINSECURE: 8888
# other lines omitted
Via CLI flags
Some values can also be set via CLI flags.
See fmd-server serve --help for details.
Precedence
FMD Server uses Viper, which has the following precedence rules (from highest to lowest):
CLI flag > env var > config file value > default value
Web static files
The static files for the website are included in the Go binary using go:embed.
This is the recommended way to use FMD Server.
If you want to manually provide the web static files (for example, for custom styling),
you can provide a custom path with the --web-dir option.
This disables the embedded static files and instead reads all static files from the provided path.
Since FMD Server 0.14.0, the web frontend is written in React.
This means that you need to compile it yourself.
Then serve the contents of web/dist/ with --web-dir.