admins = { "{{ .Env.JICOFO_AUTH_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}" } plugin_paths = { "/prosody-plugins/", "/prosody-plugins-custom" } http_default_host = "{{ .Env.XMPP_DOMAIN }}" {{ if and (.Env.ENABLE_AUTH | default "0" | toBool) (.Env.JWT_ENABLE_TOKEN_AUTH | default "0" | toBool) .Env.JWT_ACCEPTED_ISSUERS }} asap_accepted_issuers = { "{{ join "\",\"" (splitList "," .Env.JWT_ACCEPTED_ISSUERS) }}" } {{ end }} {{ if and (.Env.ENABLE_AUTH | default "0" | toBool) (.Env.JWT_ENABLE_TOKEN_AUTH | default "0" | toBool) .Env.JWT_ACCEPTED_AUDIENCES }} asap_accepted_audiences = { "{{ join "\",\"" (splitList "," .Env.JWT_ACCEPTED_AUDIENCES) }}" } {{ end }} VirtualHost "{{ .Env.XMPP_DOMAIN }}" {{ if .Env.ENABLE_AUTH | default "0" | toBool }} {{ if .Env.JWT_ENABLE_TOKEN_AUTH | default "0" | toBool }} authentication = "token" app_id = "{{ .Env.JWT_APP_ID }}" app_secret = "{{ .Env.JWT_APP_SECRET }}" allow_empty_token = false {{ else if .Env.ENABLE_LDAP_AUTH | default "0" | toBool }} authentication = "cyrus" cyrus_application_name = "xmpp" allow_unencrypted_plain_auth = true {{ else }} authentication = "internal_plain" {{ end }} {{ else }} authentication = "anonymous" {{ end }} ssl = { key = "/config/certs/{{ .Env.XMPP_DOMAIN }}.key"; certificate = "/config/certs/{{ .Env.XMPP_DOMAIN }}.crt"; } modules_enabled = { "bosh"; "pubsub"; "ping"; {{ if .Env.XMPP_MODULES }} "{{ join "\";\n\"" (splitList "," .Env.XMPP_MODULES) }}"; {{ end }} {{ if .Env.ENABLE_LDAP_AUTH | default "0" | toBool }} "auth_cyrus"; {{end}} } c2s_require_encryption = false {{ if and (.Env.ENABLE_AUTH | default "0" | toBool) (.Env.ENABLE_GUESTS | default "0" | toBool) }} VirtualHost "{{ .Env.XMPP_GUEST_DOMAIN }}" authentication = "anonymous" c2s_require_encryption = false {{ end }} VirtualHost "{{ .Env.XMPP_AUTH_DOMAIN }}" ssl = { key = "/config/certs/{{ .Env.XMPP_AUTH_DOMAIN }}.key"; certificate = "/config/certs/{{ .Env.XMPP_AUTH_DOMAIN }}.crt"; } authentication = "internal_plain" Component "{{ .Env.XMPP_INTERNAL_MUC_DOMAIN }}" "muc" modules_enabled = { "ping"; {{ if .Env.XMPP_INTERNAL_MUC_MODULES }} "{{ join "\";\n\"" (splitList "," .Env.XMPP_INTERNAL_MUC_MODULES) }}"; {{ end }} } storage = "memory" muc_room_cache_size = 1000 Component "{{ .Env.XMPP_MUC_DOMAIN }}" "muc" storage = "memory" modules_enabled = { {{ if .Env.XMPP_MUC_MODULES }} "{{ join "\";\n\"" (splitList "," .Env.XMPP_MUC_MODULES) }}"; {{ end }} {{ if .Env.JWT_ENABLE_TOKEN_AUTH | default "0" | toBool }} "token_verification"; {{ end }} } Component "focus.{{ .Env.XMPP_DOMAIN }}" component_secret = "{{ .Env.JICOFO_COMPONENT_SECRET }}"