
hosts:
  - "{{ XMPP_DOMAIN }}"

loglevel: info

listen:
  - port: 5222
    ip: "::"
    module: ejabberd_c2s
    starttls: true
    starttls_required: true
  - port: 5269
    ip: "::"
    module: ejabberd_s2s_in
  - port: 5280
    ip: "::"
    module: ejabberd_http
    request_handlers:
      "/admin": ejabberd_web_admin
      "/api": mod_http_api
      "/.well-known/host-meta": mod_host_meta
      "/bosh": mod_bosh
      "/ws": ejabberd_http_ws

{% if lookup('config', application_id, 'services.ldap.enabled') | bool %}
auth_method:
  - ldap

ldap_servers:
  - "{{ lookup('config', 'svc-db-openldap', 'services.openldap.name') }}"
ldap_port: {{ lookup('config', 'svc-db-openldap', 'services.openldap.ports.local.ldap') }}
ldap_rootdn: "{{ LDAP.DN.ADMINISTRATOR.DATA }}"
ldap_password: "{{ LDAP.BIND_CREDENTIAL }}"
ldap_base: "{{ LDAP.DN.OU.USERS }}"
ldap_uids: ["uid"]
ldap_filter: "(objectClass=inetOrgPerson)"
{% else %}
auth_method:
  - internal
{% endif %}

shaper:
  normal: 1000
  fast: 50000

acl:
  admin:
    user:
      - "{{ lookup('users', 'administrator').username }}@{{ XMPP_DOMAIN }}"

modules:
  mod_admin_extra: {}
  mod_adhoc: {}
  mod_announce:
    access: announce
  mod_bosh: {}
  mod_caps: {}
  mod_carboncopy: {}
  mod_client_state: {}
  mod_disco: {}
  mod_offline: {}
  mod_ping: {}
  mod_pubsub:
    access_createnode: pubsub_createnode
  mod_register:
    access: deny
  mod_roster: {}
  mod_stream_mgmt: {}
  mod_vcard: {}
