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: Describe how to rotate logs. Either size and/or date can trigger
43 ## log rotation. Setting count to N keeps N rotated logs. Setting count to 0
44 ## does not disable rotation, it instead rotates the file and keeps no previous
45 ## versions around. Setting size to X rotate log when it reaches X bytes.
46 ## To disable rotation set the size to 0 and the date to ""
47 ## Date syntax is taken from the syntax newsyslog uses in newsyslog.conf.
49 ## $D0 rotate every night at midnight
50 ## $D23 rotate every day at 23:00 hr
51 ## $W0D23 rotate every week on Sunday at 23:00 hr
52 ## $W5D16 rotate every week on Friday at 16:00 hr
53 ## $M1D0 rotate on the first day of every month at midnight
54 ## $M5D6 rotate on every 5th day of the month at 6:00 hr
56 log_rotate_size: 10485760
61 ## overload protection: If you want to limit the number of messages per second
62 ## allowed from error_logger, which is a good idea if you want to avoid a flood
63 ## of messages when system is overloaded, you can set a limit.
64 ## 100 is ejabberd's default.
68 ## watchdog_admins: Only useful for developers: if an ejabberd process
69 ## consumes a lot of memory, send live notifications to these XMPP
73 ## - "bob@example.com"
79 ## net_ticktime: Specifies net_kernel tick time in seconds. This options must have
80 ## identical value on all nodes, and in most cases shouldn't be changed at all from
89 ## hosts: Domains served by ejabberd.
90 ## You can define one or several, for example:
100 ## route_subdomains: Delegate subdomains to other XMPP servers.
101 ## For example, if this ejabberd serves example.org and you want
102 ## to allow communication with an XMPP server called im.example.org.
104 ## route_subdomains: s2s
110 ## listen: The ports ejabberd will listen on, which service each is handled
111 ## by and what options to start it with.
118 ## If TLS is compiled in and you installed a SSL
119 ## certificate, specify the full path to the
120 ## file and uncomment these lines:
122 ## certfile: "/path/to/ssl.pem"
125 ## To enforce TLS encryption for client connections,
126 ## use this instead of the "starttls" option:
128 ## starttls_required: true
130 ## Custom OpenSSL options
135 max_stanza_size: 65536
140 module: ejabberd_s2s_in
142 ## ejabberd_service: Interact with external components (transports, ...)
146 ## module: ejabberd_service
151 ## "icq.example.org":
152 ## password: "secret"
153 ## "sms.example.org":
154 ## password: "secret"
157 ## ejabberd_stun: Handles STUN Binding requests
162 ## module: ejabberd_stun
165 ## To handle XML-RPC requests that provide admin credentials:
169 ## module: ejabberd_xmlrpc
170 ## access_commands: {}
173 module: ejabberd_http
175 "/websocket": ejabberd_http_ws
176 ## "/pub/archive": mod_http_fileserver
182 ###. ==================
183 ###' S2S GLOBAL OPTIONS
186 ## s2s_use_starttls: Enable STARTTLS + Dialback for S2S connections.
187 ## Allowed values are: false optional required required_trusted
188 ## You must specify a certificate file.
190 ## s2s_use_starttls: optional
193 ## s2s_certfile: Specify a certificate file.
195 ## s2s_certfile: "/path/to/ssl.pem"
197 ## Custom OpenSSL options
199 ## s2s_protocol_options:
204 ## domain_certfile: Specify a different certificate for each served hostname.
208 ## domain_certfile: "/path/to/example_org.pem"
210 ## domain_certfile: "/path/to/example_com.pem"
213 ## S2S whitelist or blacklist
215 ## Default s2s policy for undefined hosts.
220 ## Outgoing S2S options
222 ## Preferred address families (which to try first) and connect timeout
225 ## outgoing_s2s_families:
228 ## outgoing_s2s_timeout: 10000
234 ## auth_method: Method used to authenticate the users.
235 ## The default method is the internal.
236 ## If you want to use a different method,
237 ## comment this line and enable the correct ones.
239 auth_method: internal
242 ## Store the plain passwords or hashed for SCRAM:
243 ## auth_password_format: plain
244 ## auth_password_format: scram
246 ## Define the FQDN if ejabberd doesn't detect it:
247 ## fqdn: "server3.example.com"
250 ## Authentication using external script
251 ## Make sure the script is executable by ejabberd.
253 ## auth_method: external
254 ## extauth_program: "/path/to/authentication/script"
257 ## Authentication using SQL
258 ## Remember to setup a database in the next section.
263 ## Authentication using PAM
266 ## pam_service: "pamservicename"
269 ## Authentication using LDAP
273 ## List of LDAP servers:
277 ## Encryption of connection to LDAP servers:
278 ## ldap_encrypt: none
281 ## Port to connect to on LDAP servers:
286 ## ldap_rootdn: "dc=example,dc=com"
288 ## Password of LDAP manager:
289 ## ldap_password: "******"
291 ## Search base of LDAP directory:
292 ## ldap_base: "dc=example,dc=com"
294 ## LDAP attribute that holds user ID:
296 ## - "mail": "%u@mail.example.org"
299 ## ldap_filter: "(objectClass=shadowAccount)"
302 ## Anonymous login support:
303 ## auth_method: anonymous
304 ## anonymous_protocol: sasl_anon | login_anon | both
305 ## allow_multiple_connections: true | false
308 ## "public.example.org":
309 ## auth_method: anonymous
310 ## allow_multiple_connections: false
311 ## anonymous_protocol: sasl_anon
313 ## To use both anonymous and internal authentication:
316 ## "public.example.org":
324 ## ejabberd by default uses the internal Mnesia database,
325 ## so you do not necessarily need this section.
326 ## This section provides configuration examples in case
327 ## you want to use other database backends.
328 ## Please consult the ejabberd Guide for details on database creation.
334 ## sql_server: "server"
335 ## sql_database: "database"
336 ## sql_username: "username"
337 ## sql_password: "password"
339 ## If you want to specify the port:
343 ## PostgreSQL server:
346 ## sql_server: "server"
347 ## sql_database: "database"
348 ## sql_username: "username"
349 ## sql_password: "password"
351 ## If you want to specify the port:
354 ## If you use PostgreSQL, have a large database, and need a
355 ## faster but inexact replacement for "select count(*) from users"
357 ## pgsql_users_number_estimate: true
363 ## sql_database: "/path/to/database.db"
366 ## ODBC compatible or MSSQL server:
369 ## sql_server: "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"
372 ## Number of connections to open to the database for each virtual host
377 ## Interval to make a dummy SQL request to keep the connections to the
378 ## database alive. Specify in seconds: for example 28800 means 8 hours
380 ## sql_keepalive_interval: undefined
387 ## The "normal" shaper limits traffic speed to 1000 B/s
392 ## The "fast" shaper limits traffic speed to 50000 B/s
397 ## This option specifies the maximum number of elements in the queue
398 ## of the FSM. Refer to the documentation for details.
402 ###. ====================
403 ###' ACCESS CONTROL LISTS
406 ## The 'admin' ACL grants administrative privileges to XMPP accounts.
407 ## You can put here as many accounts as you want.
411 ## - "aleksey@localhost"
412 ## - "ermine@example.org"
418 ## - "baduser@example.org"
421 ## Local users: don't modify this.
427 ## More examples of ACLs
434 ## - "aleksey@jabber.ru"
436 ## user_regexp: "^test"
437 ## user_glob: "test*"
451 ## - "xmpp.zombie.org"
455 ## Define specific ACLs in a virtual host.
462 ## - "bob-local@localhost"
468 ## Maximum number of simultaneous sessions allowed for a single user:
469 max_user_sessions: 10
470 ## Maximum number of offline messages that users can have:
471 max_user_offline_messages:
474 ## For C2S connections, all users except admins use the "normal" shaper
478 ## All S2S connections use the "fast" shaper
484 ## This rule allows access only for local users:
487 ## Only non-blocked users can use c2s connections:
491 ## Only admins can send announcement messages:
494 ## Only admins can use the configuration interface:
497 ## Only accounts of the local ejabberd server can create rooms:
500 ## Only accounts on the local ejabberd server can create Pubsub nodes:
503 ## In-band registration allows registration of any possible username.
504 ## To disable in-band registration, replace 'allow' with 'deny'.
507 ## Only allow to register from localhost
510 ## Do not establish S2S connections with bad servers
513 ## - ip: "XXX.XXX.XXX.XXX/32"
515 ## - ip: "XXX.XXX.XXX.XXX/32"
518 ## By default the frequency of account registrations from the same IP
519 ## is limited to 1 account every 10 minutes. To disable, specify: infinity
520 ## registration_timeout: 600
523 ## Define specific Access Rules in a virtual host.
534 ###. ================
535 ###' DEFAULT LANGUAGE
538 ## language: Default language used for server messages.
543 ## Set a different default language in a virtual host.
553 ## Full path to a script that generates the image.
555 ## captcha_cmd: "/lib/ejabberd/priv/bin/captcha.sh"
558 ## Host for the URL and port where ejabberd listens for CAPTCHA requests.
560 ## captcha_host: "example.org:5280"
563 ## Limit CAPTCHA calls per minute for JID/IP to avoid DoS.
571 ## Modules enabled in all ejabberd virtual hosts.
575 ## mod_admin_extra: {}
576 mod_announce: # recommends mod_adhoc
578 mod_blocking: {} # requires mod_privacy
582 mod_configure: {} # requires mod_adhoc
587 ## mod_http_fileserver:
588 ## docroot: "/var/www"
589 ## accesslog: "/var/log/ejabberd/access.log"
592 ## host: "conference.@HOST@"
597 access_create: muc_create
598 access_persistent: muc_create
602 access_max_user_messages: max_user_offline_messages
611 access_createnode: pubsub_createnode
612 ## reduces resource comsumption, but XEP incompliant
613 ignore_pep_from_offline: true
614 ## XEP compliant, but increases resource comsumption
615 ## ignore_pep_from_offline: false
616 last_item_cache: false
620 - "pep" # pep requires mod_caps
623 ## Protect In-Band account registrations with CAPTCHA.
625 ## captcha_protected: true
627 ## Set the minimum informational entropy for passwords.
629 ## password_strength: 32
631 ## After successful registration, the user receives
632 ## a message with this subject and body.
635 ## subject: "Welcome!"
638 ## 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"
646 ## Only clients in the server machine can register accounts
648 ## ip_access: trusted_network
650 ## Local c2s or remote s2s users cannot register accounts
655 mod_shared_roster: {}
663 ## Enable modules with custom options in a specific virtual host
669 ## host: "mirror.localhost"
672 ## Enable modules management via ejabberdctl for installation and
673 ## uninstallation of public/private contributed modules
674 ## (enabled by default)
677 allow_contrib_modules: true
684 ### vim: set filetype=yaml tabstop=8 foldmarker=###',###. foldmethod=marker: