
It works on top of the TCP/IP protocol and it is designed for connections with remote locations where a “small code footprint” is required or the network bandwidth is limited. If several methods are defined, authentication is considered successful as long as authentication of at least one of the methods succeeds.MQTT (Message Queuing Telemetry Transport) is a publish-subscribe-based messaging protocol that is used on many Internet of Things (IoT) projects. auth_method: Ī list of authentication methods to use. If not set, the value from cache_size will be used. Same as cache_size, but applied to authentication cache only. auth_cache_size: pos_integer() | infinity If not set, the value from cache_missed will be used. Same as cache_missed, but applied to authentication cache only. If not set, the value from cache_life_time will be used. Same as cache_life_time, but applied to authentication cache only. To accomplish that, append_host_config option can be used. To define specific ejabberd modules in a virtual host, you can define the global modules option with the common modules, and later add specific modules to certain virtual hosts. This section describes top level options of ejabberd 20.04 access_rules: It will be quite hard to understand how to configure ejabberd by reading this document only - for this purpose the reader is recommended to read online Configuration Guide available at. Note that this document is intended to provide comprehensive description of all configuration options that can be consulted to understand the meaning of a particular option, its format and possible values. Once you get ejabberd running you can start changing configuration options to meet your requirements.

Instead it is better to start from "default" configuration file available at. It is not recommended to write ejabberd.yml from scratch. It is a configuration mistake to put global options under host_config or append_host_config section - ejabberd will refuse to load such configuration. Examples are loglevel, certfiles and listen. The options that cannot be defined per virtual host are called global. Examples are modules, auth_method and default_db.

Some options can be specified for particular virtual host(s) only using host_config or append_host_config options. Configuration reload is atomic: either all options are accepted and applied simultaneously or the new configuration is refused without any impact on currently running configuration. So, the contents of ejabberd.yml will typically look like this: hosts:Īny configuration error (such as syntax error, unknown option or invalid option value) is fatal in the sense that ejabberd will refuse to load the whole configuration file and will not start or will abort configuration reload.Īll options can be changed in runtime by running ejabberdctl reload-config command. Thus this document is splitted into 3 main chapters describing each category separately. Logically, configuration options are splitted into 3 main categories: Modules, Listeners and everything else called Top Level options. YAML is indentation sensitive, so make sure you respect indentation, or otherwise you will get pretty cryptic configuration errors.

The configuration file is written in YAML language.
