2 ###' ejabberd configuration file
6 ### The parameters used in this configuration file are explained in more detail
7 ### in the ejabberd Installation and Operation Guide.
8 ### Please consult the Guide in case of doubts, it is included with
9 ### your copy of ejabberd, and is also available online at
10 ### http://www.process-one.net/en/ejabberd/docs/
12 ### The configuration file is written in YAML.
13 ### Refer to http://en.wikipedia.org/wiki/YAML for the brief description.
14 ### However, ejabberd treats different literals as different types:
16 ### - unquoted or single-quoted strings. They are called "atoms".
17 ### Example: dog, 'Jupiter', '3.14159', YELLOW
19 ### - numeric literals. Example: 3, -45.0, .0
21 ### - quoted or folded strings.
22 ### Examples of quoted string: "Lizzard", "orange".
23 ### Example of folded string:
24 ### > Art thou not Romeo,
31 ## loglevel: Verbosity of log files generated by ejabberd.
32 ## 0: No ejabberd log at all (not recommended)
42 ## rotation: Disable ejabberd's internal log rotation, as the Debian package
48 ## overload protection: If you want to limit the number of messages per second
49 ## allowed from error_logger, which is a good idea if you want to avoid a flood
50 ## of messages when system is overloaded, you can set a limit.
51 ## 100 is ejabberd's default.
55 ## watchdog_admins: Only useful for developers: if an ejabberd process
56 ## consumes a lot of memory, send live notifications to these XMPP
60 ## - "bob@example.com"
66 ## net_ticktime: Specifies net_kernel tick time in seconds. This options must have
67 ## identical value on all nodes, and in most cases shouldn't be changed at all from
76 ## hosts: Domains served by ejabberd.
77 ## You can define one or several, for example:
87 ## route_subdomains: Delegate subdomains to other XMPP servers.
88 ## For example, if this ejabberd serves example.org and you want
89 ## to allow communication with an XMPP server called im.example.org.
91 ## route_subdomains: s2s
97 ## listen: The ports ejabberd will listen on, which service each is handled
98 ## by and what options to start it with.
106 ## If TLS is compiled in and you installed a SSL
107 ## certificate, specify the full path to the
108 ## file and uncomment these lines:
110 certfile: "/etc/ejabberd/ejabberd.pem"
113 ## To enforce TLS encryption for client connections,
114 ## use this instead of the "starttls" option:
116 ## starttls_required: true
118 ## Custom OpenSSL options
123 max_stanza_size: 65536
127 resend_on_timeout: if_offline
131 module: ejabberd_s2s_in
133 ## ejabberd_service: Interact with external components (transports, ...)
137 ## module: ejabberd_service
142 ## "icq.example.org":
143 ## password: "secret"
144 ## "sms.example.org":
145 ## password: "secret"
148 ## ejabberd_stun: Handles STUN Binding requests
153 ## module: ejabberd_stun
156 ## To handle XML-RPC requests that provide admin credentials:
160 ## module: ejabberd_xmlrpc
161 ## access_commands: {}
165 module: ejabberd_http
167 "/websocket": ejabberd_http_ws
168 ## "/pub/archive": mod_http_fileserver
174 certfile: "/etc/ejabberd/ejabberd.pem"
176 ## Disabling digest-md5 SASL authentication. digest-md5 requires plain-text
177 ## password storage (see auth_password_format option).
178 disable_sasl_mechanisms: "digest-md5"
180 ###. ==================
181 ###' S2S GLOBAL OPTIONS
184 ## s2s_use_starttls: Enable STARTTLS + Dialback for S2S connections.
185 ## Allowed values are: false optional required required_trusted
186 ## You must specify a certificate file.
188 s2s_use_starttls: optional
191 ## s2s_certfile: Specify a certificate file.
193 s2s_certfile: "/etc/ejabberd/ejabberd.pem"
195 ## Custom OpenSSL options
197 s2s_protocol_options:
202 ## domain_certfile: Specify a different certificate for each served hostname.
206 ## domain_certfile: "/path/to/example_org.pem"
208 ## domain_certfile: "/path/to/example_com.pem"
211 ## S2S whitelist or blacklist
213 ## Default s2s policy for undefined hosts.
218 ## Outgoing S2S options
220 ## Preferred address families (which to try first) and connect timeout
223 ## outgoing_s2s_families:
226 ## outgoing_s2s_timeout: 10000
232 ## auth_method: Method used to authenticate the users.
233 ## The default method is the internal.
234 ## If you want to use a different method,
235 ## comment this line and enable the correct ones.
237 auth_method: internal
240 ## Store the plain passwords or hashed for SCRAM:
241 ## auth_password_format: plain
242 auth_password_format: scram
244 ## Define the FQDN if ejabberd doesn't detect it:
245 ## fqdn: "server3.example.com"
248 ## Authentication using external script
249 ## Make sure the script is executable by ejabberd.
251 ## auth_method: external
252 ## extauth_program: "/path/to/authentication/script"
255 ## Authentication using ODBC
256 ## Remember to setup a database in the next section.
261 ## Authentication using PAM
264 ## pam_service: "pamservicename"
267 ## Authentication using LDAP
271 ## List of LDAP servers:
275 ## Encryption of connection to LDAP servers:
276 ## ldap_encrypt: none
279 ## Port to connect to on LDAP servers:
284 ## ldap_rootdn: "dc=example,dc=com"
286 ## Password of LDAP manager:
287 ## ldap_password: "******"
289 ## Search base of LDAP directory:
290 ## ldap_base: "dc=example,dc=com"
292 ## LDAP attribute that holds user ID:
294 ## - "mail": "%u@mail.example.org"
297 ## ldap_filter: "(objectClass=shadowAccount)"
300 ## Anonymous login support:
301 ## auth_method: anonymous
302 ## anonymous_protocol: sasl_anon | login_anon | both
303 ## allow_multiple_connections: true | false
306 ## "public.example.org":
307 ## auth_method: anonymous
308 ## allow_multiple_connections: false
309 ## anonymous_protocol: sasl_anon
311 ## To use both anonymous and internal authentication:
314 ## "public.example.org":
322 ## ejabberd by default uses the internal Mnesia database,
323 ## so you do not necessarily need this section.
324 ## This section provides configuration examples in case
325 ## you want to use other database backends.
326 ## Please consult the ejabberd Guide for details on database creation.
332 ## odbc_server: "server"
333 ## odbc_database: "database"
334 ## odbc_username: "username"
335 ## odbc_password: "password"
337 ## If you want to specify the port:
341 ## PostgreSQL server:
344 ## odbc_server: "server"
345 ## odbc_database: "database"
346 ## odbc_username: "username"
347 ## odbc_password: "password"
349 ## If you want to specify the port:
352 ## If you use PostgreSQL, have a large database, and need a
353 ## faster but inexact replacement for "select count(*) from users"
355 ## pgsql_users_number_estimate: true
361 ## odbc_database: "/path/to/database.db"
364 ## ODBC compatible or MSSQL server:
367 ## odbc_server: "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"
370 ## Number of connections to open to the database for each virtual host
372 ## odbc_pool_size: 10
375 ## Interval to make a dummy SQL request to keep the connections to the
376 ## database alive. Specify in seconds: for example 28800 means 8 hours
378 ## odbc_keepalive_interval: undefined
385 ## The "normal" shaper limits traffic speed to 1000 B/s
390 ## The "fast" shaper limits traffic speed to 50000 B/s
395 ## This option specifies the maximum number of elements in the queue
396 ## of the FSM. Refer to the documentation for details.
400 ###. ====================
401 ###' ACCESS CONTROL LISTS
404 ## The 'admin' ACL grants administrative privileges to XMPP accounts.
405 ## You can put here as many accounts as you want.
416 ## - "baduser": "example.org"
419 ## Local users: don't modify this.
425 ## More examples of ACLs
432 ## - "aleksey": "jabber.ru"
434 ## user_regexp: "^test"
435 ## user_glob: "test*"
449 ## - "xmpp.zombie.org"
453 ## Define specific ACLs in a virtual host.
460 ## - "bob-local": "localhost"
465 ## Maximum number of simultaneous sessions allowed for a single user:
468 ## Maximum number of offline messages that users can have:
469 max_user_offline_messages:
472 ## This rule allows access only for local users:
475 ## Only non-blocked users can use c2s connections:
479 ## For C2S connections, all users except admins use the "normal" shaper
483 ## All S2S connections use the "fast" shaper
486 ## Only admins can send announcement messages:
489 ## Only admins can use the configuration interface:
492 ## Admins of this server are also admins of the MUC service:
495 ## Only accounts of the local ejabberd server can create rooms:
498 ## All users are allowed to use the MUC service:
501 ## Only accounts on the local ejabberd server can create Pubsub nodes:
504 ## In-band registration allows registration of any possible username.
505 ## To disable in-band registration, replace 'allow' with 'deny'.
508 ## Only allow to register from localhost
511 ## Do not establish S2S connections with bad servers
516 ## By default the frequency of account registrations from the same IP
517 ## is limited to 1 account every 10 minutes. To disable, specify: infinity
518 ## registration_timeout: 600
521 ## Define specific Access Rules in a virtual host.
532 ###. ================
533 ###' DEFAULT LANGUAGE
536 ## language: Default language used for server messages.
541 ## Set a different default language in a virtual host.
551 ## Full path to a script that generates the image.
553 ## captcha_cmd: "/usr/share/ejabberd/captcha.sh"
556 ## Host for the URL and port where ejabberd listens for CAPTCHA requests.
558 ## captcha_host: "example.org:5280"
561 ## Limit CAPTCHA calls per minute for JID/IP to avoid DoS.
569 ## Modules enabled in all ejabberd virtual hosts.
574 mod_announce: # recommends mod_adhoc
576 mod_blocking: {} # requires mod_privacy
580 mod_configure: {} # requires mod_adhoc
585 ## mod_http_fileserver:
586 ## docroot: "/var/www"
587 ## accesslog: "/var/log/ejabberd/access.log"
590 ## host: "conference.@HOST@"
592 access_create: muc_create
593 access_persistent: muc_create
594 access_admin: muc_admin
599 access_max_user_messages: max_user_offline_messages
608 access_createnode: pubsub_createnode
609 ## reduces resource comsumption, but XEP incompliant
610 ignore_pep_from_offline: true
611 ## XEP compliant, but increases resource comsumption
612 ## ignore_pep_from_offline: false
613 last_item_cache: false
617 - "pep" # pep requires mod_caps
620 ## Protect In-Band account registrations with CAPTCHA.
622 ## captcha_protected: true
625 ## Set the minimum informational entropy for passwords.
627 ## password_strength: 32
630 ## After successful registration, the user receives
631 ## a message with this subject and body.
637 Welcome to this XMPP server.
640 ## When a user registers, send a notification to
641 ## these XMPP accounts.
643 ## registration_watchers:
644 ## - "admin1@example.org"
647 ## Only clients in the server machine can register accounts
649 ip_access: trusted_network
652 ## Local c2s or remote s2s users cannot register accounts
658 mod_shared_roster: {}
666 ## Enable modules with custom options in a specific virtual host
672 ## host: "mirror.localhost"
675 ## Enable modules management via ejabberdctl for installation and
676 ## uninstallation of public/private contributed modules
677 ## (enabled by default)
680 allow_contrib_modules: true
687 ### vim: set filetype=yaml tabstop=8 foldmarker=###',###. foldmethod=marker: