Settings Loader

Implementations for loading configurations from YAML files. This essentially includes the configuration of the (SearXNG appl) server. The default configuration for the application server is loaded from the DEFAULT_SETTINGS_FILE. This default configuration can be completely replaced or customized individually and the SEARXNG_SETTINGS_PATH environment variable can be used to set the location from which the local customizations are to be loaded. The rules used for this can be found in the get_user_cfg_folder function.

  • By default, local configurations are expected in folder /etc/searxng from where applications can load them with the get_yaml_cfg function.

  • By default, customized SearXNG appl settings are expected in a file named settings.yml.

searx.settings_loader.get_user_cfg_folder() Path | None[source]

Returns folder where the local configurations are located.

  1. If the SEARXNG_SETTINGS_PATH environment is set and points to a folder (e.g. /etc/mysxng/), all local configurations are expected in this folder. The settings of the SearXNG appl then expected in settings.yml (e.g. /etc/mysxng/settings.yml).

  2. If the SEARXNG_SETTINGS_PATH environment is set and points to a file (e.g. /etc/mysxng/myinstance.yml), this file contains the settings of the SearXNG appl and the folder (e.g. /etc/mysxng/) is used for all other configurations.

    This type (SEARXNG_SETTINGS_PATH points to a file) is suitable for use cases in which different profiles of the SearXNG appl are to be managed, such as in test scenarios.

  3. If folder /etc/searxng exists, it is used.

In case none of the above path exists, None is returned. In case of environment SEARXNG_SETTINGS_PATH is set, but the (folder or file) does not exists, a EnvironmentError is raised.

searx.settings_loader.get_yaml_cfg(file_name: str | Path) dict[source]

Shortcut to load a YAML config from a file, located in the

searx.settings_loader.load_settings(load_user_settings=True) tuple[dict, str][source]

Function for loading the settings of the SearXNG application (settings.yml).

searx.settings_loader.load_yaml(file_name: str | Path)[source]

Load YAML config from a file.

searx.settings_loader.DEFAULT_SETTINGS_FILE = PosixPath('/home/runner/work/searxng/searxng/searx/settings.yml')

The git://searx/settings.yml file with all the default settings.