xmpp: add ability to add custom prosody modules

This commit is contained in:
Paul Tiedtke 2019-01-15 14:29:50 +01:00 committed by Saúl Ibarra Corretgé
parent fb1fdb1d53
commit 95a55915b7
5 changed files with 31 additions and 5 deletions

View File

@ -153,6 +153,9 @@ Variable | Description | Default value
`XMPP_MUC_DOMAIN` | XMPP domain for the MUC | muc.meet.jitsi `XMPP_MUC_DOMAIN` | XMPP domain for the MUC | muc.meet.jitsi
`XMPP_INTERNAL_MUC_DOMAIN` | XMPP domain for the internal MUC | internal-muc.meet.jitsi `XMPP_INTERNAL_MUC_DOMAIN` | XMPP domain for the internal MUC | internal-muc.meet.jitsi
`XMPP_GUEST_DOMAIN` | XMPP domain for unauthenticated users | guest.meet.jitsi `XMPP_GUEST_DOMAIN` | XMPP domain for unauthenticated users | guest.meet.jitsi
`XMPP_MODULES` | Custom Prosody modules for XMPP_DOMAIN (comma separated) | mod_info,mod_alert
`XMPP_MUC_MODULES` | Custom Prosody modules for MUC component (comma separated) | mod_info,mod_alert
`XMPP_INTERNAL_MUC_MODULES` | Custom Prosody modules for internal MUC component (comma separated) | mod_info,mod_alert
`JICOFO_COMPONENT_SECRET` | XMPP component password for Jicofo | s3cr37 `JICOFO_COMPONENT_SECRET` | XMPP component password for Jicofo | s3cr37
`JICOFO_AUTH_USER` | XMPP user for Jicofo client connections | focus `JICOFO_AUTH_USER` | XMPP user for Jicofo client connections | focus
`JICOFO_AUTH_PASSWORD` | XMPP password for Jicofo client connections | passw0rd `JICOFO_AUTH_PASSWORD` | XMPP password for Jicofo client connections | passw0rd

View File

@ -44,6 +44,9 @@ services:
- XMPP_GUEST_DOMAIN - XMPP_GUEST_DOMAIN
- XMPP_MUC_DOMAIN - XMPP_MUC_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN - XMPP_INTERNAL_MUC_DOMAIN
- XMPP_MODULES
- XMPP_MUC_MODULES
- XMPP_INTERNAL_MUC_MODULES
- JICOFO_COMPONENT_SECRET - JICOFO_COMPONENT_SECRET
- JICOFO_AUTH_USER - JICOFO_AUTH_USER
- JICOFO_AUTH_PASSWORD - JICOFO_AUTH_PASSWORD

View File

@ -81,6 +81,15 @@ XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi
# XMPP domain for unauthenticated users. # XMPP domain for unauthenticated users.
XMPP_GUEST_DOMAIN=guest.meet.jitsi XMPP_GUEST_DOMAIN=guest.meet.jitsi
# Custom Prosody modules for XMPP_DOMAIN (comma separated)
XMPP_MODULES=
# Custom Prosody modules for MUC component (comma separated)
XMPP_MUC_MODULES=
# Custom Prosody modules for internal MUC component (comma separated)
XMPP_INTERNAL_MUC_MODULES=
# MUC for the JVB pool. # MUC for the JVB pool.
JVB_BREWERY_MUC=jvbbrewery JVB_BREWERY_MUC=jvbbrewery

View File

@ -10,5 +10,4 @@ COPY rootfs/ /
EXPOSE 5222 5269 5347 5280 EXPOSE 5222 5269 5347 5280
VOLUME /config VOLUME ["/config", "/prosody-plugins-custom"]

View File

@ -1,4 +1,5 @@
admins = { "{{ .Env.JICOFO_AUTH_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}" } admins = { "{{ .Env.JICOFO_AUTH_USER }}@{{ .Env.XMPP_AUTH_DOMAIN }}" }
plugin_paths = { "/prosody-plugins-custom" }
VirtualHost "{{ .Env.XMPP_DOMAIN }}" VirtualHost "{{ .Env.XMPP_DOMAIN }}"
{{ if .Env.ENABLE_AUTH }} {{ if .Env.ENABLE_AUTH }}
@ -7,13 +8,16 @@ VirtualHost "{{ .Env.XMPP_DOMAIN }}"
authentication = "anonymous" authentication = "anonymous"
{{ end }} {{ end }}
ssl = { ssl = {
key = "/config/certs/{{ .Env.XMPP_DOMAIN }}.key"; key = "/config/certs/{{ .Env.XMPP_DOMAIN }}.key";
certificate = "/config/certs/{{ .Env.XMPP_DOMAIN }}.crt"; certificate = "/config/certs/{{ .Env.XMPP_DOMAIN }}.crt";
} }
modules_enabled = { modules_enabled = {
"bosh"; "bosh";
"pubsub"; "pubsub";
"ping"; "ping";
{{ if .Env.XMPP_MODULES }}
"{{ join "\";\n\"" (splitList "," .Env.XMPP_MODULES) }}";
{{ end }}
} }
c2s_require_encryption = false c2s_require_encryption = false
@ -33,13 +37,21 @@ VirtualHost "{{ .Env.XMPP_AUTH_DOMAIN }}"
Component "{{ .Env.XMPP_INTERNAL_MUC_DOMAIN }}" "muc" Component "{{ .Env.XMPP_INTERNAL_MUC_DOMAIN }}" "muc"
modules_enabled = { modules_enabled = {
"ping"; "ping";
{{ if .Env.XMPP_INTERNAL_MUC_MODULES }}
"{{ join "\";\n\"" (splitList "," .Env.XMPP_INTERNAL_MUC_MODULES) }}";
{{ end }}
} }
storage = "internal" storage = "internal"
muc_room_cache_size = 1000 muc_room_cache_size = 1000
Component "{{ .Env.XMPP_MUC_DOMAIN }}" "muc" Component "{{ .Env.XMPP_MUC_DOMAIN }}" "muc"
storage = "internal" storage = "internal"
modules_enabled = {
{{ if .Env.XMPP_MUC_MODULES }}
"{{ join "\";\n\"" (splitList "," .Env.XMPP_MUC_MODULES) }}";
{{ end }}
}
Component "focus.{{ .Env.XMPP_DOMAIN }}" Component "focus.{{ .Env.XMPP_DOMAIN }}"
component_secret = "{{ .Env.JICOFO_COMPONENT_SECRET }}" component_secret = "{{ .Env.JICOFO_COMPONENT_SECRET }}"