[__jitsi_meet*] Update to 2.0.7210

While there, make things a tad easier to maintain.

Note that in this version, jitsi switches to using nginx upstreams; it shouldn't
be relevant for instances fully managed with these types.

Sponsored by:   camilion.eu, eXO.cat
This commit is contained in:
evilham 2022-04-21 15:52:47 +02:00
parent c5070a3a33
commit 1658121549
Signed by: evilham
GPG key ID: AE3EE30D970886BF
10 changed files with 246 additions and 42 deletions

View file

@ -1 +0,0 @@
2.0.7001-1

View file

@ -0,0 +1 @@
../../__jitsi_meet_domain/files/jitsi-version

View file

@ -155,6 +155,27 @@ server {
} }
EOF EOF
# Starting from 2.0.7210, jitsi defines following nginx upstreams
__directory "${NGINX_ETC}/conf.d" --state present
require="__directory${NGINX_ETC}/conf.d" __file "${NGINX_ETC}/conf.d/prosody.conf" \
--mode 644 \
--source - << EOF
upstream prosody {
zone upstreams 64K;
server 127.0.0.1:5280;
keepalive 2;
}
EOF
require="__directory${NGINX_ETC}/conf.d" __file "${NGINX_ETC}/conf.d/jvb1.conf" \
--mode 644 \
--source - << EOF
upstream jvb1 {
zone upstreams 64K;
server 127.0.0.1:9090;
keepalive 2;
}
EOF
if [ -f "${__object}/parameter/secured-domains" ]; then if [ -f "${__object}/parameter/secured-domains" ]; then
SECURED_DOMAINS_STATE='present' SECURED_DOMAINS_STATE='present'
else else

View file

@ -7,7 +7,7 @@
# We could automate this, but are using it as an indicator for the # We could automate this, but are using it as an indicator for the
# latest branch with which we conciliated changes. # latest branch with which we conciliated changes.
BRANCH="jitsi-meet_7001" BRANCH="jitsi-meet_7210"
REPO="https://github.com/jitsi/jitsi-meet" REPO="https://github.com/jitsi/jitsi-meet"
get_url() { get_url() {
@ -29,3 +29,7 @@ download_file config.js
download_file interface_config.js download_file interface_config.js
download_file doc/debian/jitsi-meet/jitsi-meet.example nginx.sh.orig download_file doc/debian/jitsi-meet/jitsi-meet.example nginx.sh.orig
download_file doc/debian/jitsi-meet-prosody/prosody.cfg.lua-jvb.example prosody.cfg.lua.sh.orig download_file doc/debian/jitsi-meet-prosody/prosody.cfg.lua-jvb.example prosody.cfg.lua.sh.orig
# Change the version file, maintainers should check that it matches
# the deb version
printf "2.0.${BRANCH#*_}-1" > jitsi-version

View file

@ -85,6 +85,10 @@ var config = {
flags: { flags: {
// Enables source names in the signaling. // Enables source names in the signaling.
// sourceNameSignaling: false, // sourceNameSignaling: false,
// Enables sending multiple video streams, i.e., camera and desktop tracks can be shared in the conference
// separately as two different streams instead of one composite stream.
// sendMultipleVideoStreams: false
}, },
// Disables moderator indicators. // Disables moderator indicators.
@ -481,6 +485,9 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi)
// If Lobby is enabled starts knocking automatically. // If Lobby is enabled starts knocking automatically.
// autoKnockLobby: false, // autoKnockLobby: false,
// Enable lobby chat.
// enableLobbyChat: true,
// DEPRECATED! Use \`breakoutRooms.hideAddRoomButton\` instead. // DEPRECATED! Use \`breakoutRooms.hideAddRoomButton\` instead.
// Hides add breakout room button // Hides add breakout room button
// hideAddRoomButton: false, // hideAddRoomButton: false,
@ -520,7 +527,7 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi)
// Hides the dominant speaker name badge that hovers above the toolbox // Hides the dominant speaker name badge that hovers above the toolbox
// hideDominantSpeakerBadge: false, // hideDominantSpeakerBadge: false,
// Default language for the user interface. // Default language for the user interface. Cannot be overwritten.
defaultLanguage: '${DEFAULT_LANGUAGE}', defaultLanguage: '${DEFAULT_LANGUAGE}',
// Disables profile and the edit of all fields from the profile settings (display name and email) // Disables profile and the edit of all fields from the profile settings (display name and email)
@ -607,7 +614,9 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi)
// 'fullscreen', // 'fullscreen',
// 'hangup', // 'hangup',
// 'help', // 'help',
// 'highlight',
// 'invite', // 'invite',
// 'linktosalesforce',
// 'livestreaming', // 'livestreaming',
// 'microphone', // 'microphone',
// 'mute-everyone', // 'mute-everyone',
@ -639,7 +648,9 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi)
// timeout: 4000, // timeout: 4000,
// // Moved from interfaceConfig.TOOLBAR_ALWAYS_VISIBLE // // Moved from interfaceConfig.TOOLBAR_ALWAYS_VISIBLE
// // Whether toolbar should be always visible or should hide after x miliseconds. // // Whether toolbar should be always visible or should hide after x miliseconds.
// alwaysVisible: false // alwaysVisible: false,
// // Indicates whether the toolbar should still autohide when chat is open
// autoHideWhileChatIsOpen: false
// }, // },
// Toolbar buttons which have their click/tap event exposed through the API on // Toolbar buttons which have their click/tap event exposed through the API on
@ -748,11 +759,22 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi)
// Enables sending participants' emails (if available) to callstats and other analytics // Enables sending participants' emails (if available) to callstats and other analytics
// enableEmailInStats: false, // enableEmailInStats: false,
// Enables detecting faces of participants and get their expression and send it to other participants // faceLandmarks: {
// enableFacialRecognition: true, // // Enables sharing your face cordinates. Used for centering faces within a video.
// enableFaceCentering: false,
// Enables displaying facial expressions in speaker stats // // Enables detecting face expressions and sharing data with other participants
// enableDisplayFacialExpressions: true, // enableFaceExpressionsDetection: false,
// // Enables displaying face expressions in speaker stats
// enableDisplayFaceExpressions: false,
// // Minimum required face movement percentage threshold for sending new face centering coordinates data.
// faceCenteringThreshold: 10,
// // Miliseconds for processing a new image capture in order to detect face coordinates if they exist.
// captureInterval: 100
// },
// Controls the percentage of automatic feedback shown to participants when callstats is enabled. // Controls the percentage of automatic feedback shown to participants when callstats is enabled.
// The default value is 100%. If set to 0, no automatic feedback will be requested // The default value is 100%. If set to 0, no automatic feedback will be requested
@ -940,14 +962,18 @@ ${ANALYTICS_SETTINGS}
// Options related to end-to-end (participant to participant) ping. // Options related to end-to-end (participant to participant) ping.
// e2eping: { // e2eping: {
// // The interval in milliseconds at which pings will be sent. // // Whether ene-to-end pings should be enabled.
// // Defaults to 10000, set to <= 0 to disable. // enabled: false,
// pingInterval: 10000,
// //
// // The interval in milliseconds at which analytics events // // The number of responses to wait for.
// // with the measured RTT will be sent. Defaults to 60000, set // numRequests: 5,
// // to <= 0 to disable. //
// analyticsInterval: 60000, // // The max conference size in which e2e pings will be sent.
// maxConferenceSize: 200,
//
// // The maximum number of e2e ping messages per second for the whole conference to aim for.
// // This is used to contol the pacing of messages in order to reduce the load on the backend.
// maxMessagesPerSecond: 250
// }, // },
// If set, will attempt to use the provided video input device label when // If set, will attempt to use the provided video input device label when
@ -989,12 +1015,25 @@ ${ANALYTICS_SETTINGS}
// Options related to the remote participant menu. // Options related to the remote participant menu.
// remoteVideoMenu: { // remoteVideoMenu: {
// // Whether the remote video context menu to be rendered or not.
// disabled: true,
// // If set to true the 'Kick out' button will be disabled. // // If set to true the 'Kick out' button will be disabled.
// disableKick: true, // disableKick: true,
// // If set to true the 'Grant moderator' button will be disabled. // // If set to true the 'Grant moderator' button will be disabled.
// disableGrantModerator: true // disableGrantModerator: true,
// // If set to true the 'Send private message' button will be disabled.
// disablePrivateChat: true
// }, // },
// Endpoint that enables support for salesforce integration with in-meeting resource linking
// This is required for:
// listing the most recent records - salesforceUrl/records/recents
// searching records - salesforceUrl/records?text=${text}
// retrieving record details - salesforceUrl/records/${id}?type=${type}
// and linking the meeting - salesforceUrl/sessions/${sessionId}/records/${id}
//
// salesforceUrl: 'https://api.example.com/',
// If set to true all muting operations of remote participants will be disabled. // If set to true all muting operations of remote participants will be disabled.
// disableRemoteMute: true, // disableRemoteMute: true,
@ -1101,7 +1140,8 @@ ${ANALYTICS_SETTINGS}
// 'e2ee', // 'e2ee',
// 'transcribing', // 'transcribing',
// 'video-quality', // 'video-quality',
// 'insecure-room' // 'insecure-room',
// 'highlight-moment'
// ] // ]
// }, // },
@ -1241,6 +1281,7 @@ ${ANALYTICS_SETTINGS}
// 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited // 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited
// 'notify.invitedTwoMembers', // shown when 2 participants have been invited // 'notify.invitedTwoMembers', // shown when 2 participants have been invited
// 'notify.kickParticipant', // shown when a participant is kicked // 'notify.kickParticipant', // shown when a participant is kicked
// 'notify.linkToSalesforce', // shown when joining a meeting with salesforce integration
// 'notify.moderationStartedTitle', // shown when AV moderation is activated // 'notify.moderationStartedTitle', // shown when AV moderation is activated
// 'notify.moderationStoppedTitle', // shown when AV moderation is deactivated // 'notify.moderationStoppedTitle', // shown when AV moderation is deactivated
// 'notify.moderationInEffectTitle', // shown when user attempts to unmute audio during AV moderation // 'notify.moderationInEffectTitle', // shown when user attempts to unmute audio during AV moderation
@ -1256,6 +1297,7 @@ ${ANALYTICS_SETTINGS}
// 'notify.raisedHand', // shown when a partcipant used raise hand, // 'notify.raisedHand', // shown when a partcipant used raise hand,
// 'notify.startSilentTitle', // shown when user joined with no audio // 'notify.startSilentTitle', // shown when user joined with no audio
// 'notify.unmute', // shown to moderator when user raises hand during AV moderation // 'notify.unmute', // shown to moderator when user raises hand during AV moderation
// 'notify.hostAskedUnmute', // shown to participant when host asks them to unmute
// 'prejoin.errorDialOut', // 'prejoin.errorDialOut',
// 'prejoin.errorDialOutDisconnected', // 'prejoin.errorDialOutDisconnected',
// 'prejoin.errorDialOutFailed', // 'prejoin.errorDialOutFailed',
@ -1278,12 +1320,37 @@ ${ANALYTICS_SETTINGS}
// // Disables user resizable filmstrip. Also, allows configuration of the filmstrip // // Disables user resizable filmstrip. Also, allows configuration of the filmstrip
// // (width, tiles aspect ratios) through the interfaceConfig options. // // (width, tiles aspect ratios) through the interfaceConfig options.
// disableResizable: false, // disableResizable: false,
// }
// // Disables the stage filmstrip
// // (displaying multiple participants on stage besides the vertical filmstrip)
// disableStageFilmstrip: false
// },
// Tile view related config options.
// tileView: {
// // The optimal number of tiles that are going to be shown in tile view. Depending on the screen size it may
// // not be possible to show the exact number of participants specified here.
// numberOfVisibleTiles: 25
// },
// Specifies whether the chat emoticons are disabled or not // Specifies whether the chat emoticons are disabled or not
// disableChatSmileys: false, // disableChatSmileys: false,
// Settings for the GIPHY integration.
// giphy: {
// // Whether the feature is enabled or not.
// enabled: false,
// // SDK API Key from Giphy.
// sdkKey: '',
// // Display mode can be one of:
// // - tile: show the GIF on the tile of the participant that sent it.
// // - chat: show the GIF as a message in chat
// // - all: all of the above. This is the default option
// displayMode: 'all',
// // How long the GIF should be displayed on the tile (in miliseconds).
// tileTime: 5000
// },
// Allow all above example options to include a trailing comma and // Allow all above example options to include a trailing comma and
// prevent fear when commenting out the last value. // prevent fear when commenting out the last value.
makeJsonParserHappy: 'even if last key had a trailing comma' makeJsonParserHappy: 'even if last key had a trailing comma'

View file

@ -1,3 +1,4 @@
/* eslint-disable no-unused-vars, no-var */ /* eslint-disable no-unused-vars, no-var */
var config = { var config = {
@ -78,6 +79,10 @@ var config = {
flags: { flags: {
// Enables source names in the signaling. // Enables source names in the signaling.
// sourceNameSignaling: false, // sourceNameSignaling: false,
// Enables sending multiple video streams, i.e., camera and desktop tracks can be shared in the conference
// separately as two different streams instead of one composite stream.
// sendMultipleVideoStreams: false
}, },
// Disables moderator indicators. // Disables moderator indicators.
@ -473,6 +478,9 @@ var config = {
// If Lobby is enabled starts knocking automatically. // If Lobby is enabled starts knocking automatically.
// autoKnockLobby: false, // autoKnockLobby: false,
// Enable lobby chat.
// enableLobbyChat: true,
// DEPRECATED! Use `breakoutRooms.hideAddRoomButton` instead. // DEPRECATED! Use `breakoutRooms.hideAddRoomButton` instead.
// Hides add breakout room button // Hides add breakout room button
// hideAddRoomButton: false, // hideAddRoomButton: false,
@ -512,7 +520,7 @@ var config = {
// Hides the dominant speaker name badge that hovers above the toolbox // Hides the dominant speaker name badge that hovers above the toolbox
// hideDominantSpeakerBadge: false, // hideDominantSpeakerBadge: false,
// Default language for the user interface. // Default language for the user interface. Cannot be overwritten.
// defaultLanguage: 'en', // defaultLanguage: 'en',
// Disables profile and the edit of all fields from the profile settings (display name and email) // Disables profile and the edit of all fields from the profile settings (display name and email)
@ -599,7 +607,9 @@ var config = {
// 'fullscreen', // 'fullscreen',
// 'hangup', // 'hangup',
// 'help', // 'help',
// 'highlight',
// 'invite', // 'invite',
// 'linktosalesforce',
// 'livestreaming', // 'livestreaming',
// 'microphone', // 'microphone',
// 'mute-everyone', // 'mute-everyone',
@ -631,7 +641,9 @@ var config = {
// timeout: 4000, // timeout: 4000,
// // Moved from interfaceConfig.TOOLBAR_ALWAYS_VISIBLE // // Moved from interfaceConfig.TOOLBAR_ALWAYS_VISIBLE
// // Whether toolbar should be always visible or should hide after x miliseconds. // // Whether toolbar should be always visible or should hide after x miliseconds.
// alwaysVisible: false // alwaysVisible: false,
// // Indicates whether the toolbar should still autohide when chat is open
// autoHideWhileChatIsOpen: false
// }, // },
// Toolbar buttons which have their click/tap event exposed through the API on // Toolbar buttons which have their click/tap event exposed through the API on
@ -740,11 +752,22 @@ var config = {
// Enables sending participants' emails (if available) to callstats and other analytics // Enables sending participants' emails (if available) to callstats and other analytics
// enableEmailInStats: false, // enableEmailInStats: false,
// Enables detecting faces of participants and get their expression and send it to other participants // faceLandmarks: {
// enableFacialRecognition: true, // // Enables sharing your face cordinates. Used for centering faces within a video.
// enableFaceCentering: false,
// Enables displaying facial expressions in speaker stats // // Enables detecting face expressions and sharing data with other participants
// enableDisplayFacialExpressions: true, // enableFaceExpressionsDetection: false,
// // Enables displaying face expressions in speaker stats
// enableDisplayFaceExpressions: false,
// // Minimum required face movement percentage threshold for sending new face centering coordinates data.
// faceCenteringThreshold: 10,
// // Miliseconds for processing a new image capture in order to detect face coordinates if they exist.
// captureInterval: 100
// },
// Controls the percentage of automatic feedback shown to participants when callstats is enabled. // Controls the percentage of automatic feedback shown to participants when callstats is enabled.
// The default value is 100%. If set to 0, no automatic feedback will be requested // The default value is 100%. If set to 0, no automatic feedback will be requested
@ -931,14 +954,18 @@ var config = {
// Options related to end-to-end (participant to participant) ping. // Options related to end-to-end (participant to participant) ping.
// e2eping: { // e2eping: {
// // The interval in milliseconds at which pings will be sent. // // Whether ene-to-end pings should be enabled.
// // Defaults to 10000, set to <= 0 to disable. // enabled: false,
// pingInterval: 10000,
// //
// // The interval in milliseconds at which analytics events // // The number of responses to wait for.
// // with the measured RTT will be sent. Defaults to 60000, set // numRequests: 5,
// // to <= 0 to disable. //
// analyticsInterval: 60000, // // The max conference size in which e2e pings will be sent.
// maxConferenceSize: 200,
//
// // The maximum number of e2e ping messages per second for the whole conference to aim for.
// // This is used to contol the pacing of messages in order to reduce the load on the backend.
// maxMessagesPerSecond: 250
// }, // },
// If set, will attempt to use the provided video input device label when // If set, will attempt to use the provided video input device label when
@ -980,12 +1007,25 @@ var config = {
// Options related to the remote participant menu. // Options related to the remote participant menu.
// remoteVideoMenu: { // remoteVideoMenu: {
// // Whether the remote video context menu to be rendered or not.
// disabled: true,
// // If set to true the 'Kick out' button will be disabled. // // If set to true the 'Kick out' button will be disabled.
// disableKick: true, // disableKick: true,
// // If set to true the 'Grant moderator' button will be disabled. // // If set to true the 'Grant moderator' button will be disabled.
// disableGrantModerator: true // disableGrantModerator: true,
// // If set to true the 'Send private message' button will be disabled.
// disablePrivateChat: true
// }, // },
// Endpoint that enables support for salesforce integration with in-meeting resource linking
// This is required for:
// listing the most recent records - salesforceUrl/records/recents
// searching records - salesforceUrl/records?text=${text}
// retrieving record details - salesforceUrl/records/${id}?type=${type}
// and linking the meeting - salesforceUrl/sessions/${sessionId}/records/${id}
//
// salesforceUrl: 'https://api.example.com/',
// If set to true all muting operations of remote participants will be disabled. // If set to true all muting operations of remote participants will be disabled.
// disableRemoteMute: true, // disableRemoteMute: true,
@ -1092,7 +1132,8 @@ var config = {
// 'e2ee', // 'e2ee',
// 'transcribing', // 'transcribing',
// 'video-quality', // 'video-quality',
// 'insecure-room' // 'insecure-room',
// 'highlight-moment'
// ] // ]
// }, // },
@ -1232,6 +1273,7 @@ var config = {
// 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited // 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited
// 'notify.invitedTwoMembers', // shown when 2 participants have been invited // 'notify.invitedTwoMembers', // shown when 2 participants have been invited
// 'notify.kickParticipant', // shown when a participant is kicked // 'notify.kickParticipant', // shown when a participant is kicked
// 'notify.linkToSalesforce', // shown when joining a meeting with salesforce integration
// 'notify.moderationStartedTitle', // shown when AV moderation is activated // 'notify.moderationStartedTitle', // shown when AV moderation is activated
// 'notify.moderationStoppedTitle', // shown when AV moderation is deactivated // 'notify.moderationStoppedTitle', // shown when AV moderation is deactivated
// 'notify.moderationInEffectTitle', // shown when user attempts to unmute audio during AV moderation // 'notify.moderationInEffectTitle', // shown when user attempts to unmute audio during AV moderation
@ -1247,6 +1289,7 @@ var config = {
// 'notify.raisedHand', // shown when a partcipant used raise hand, // 'notify.raisedHand', // shown when a partcipant used raise hand,
// 'notify.startSilentTitle', // shown when user joined with no audio // 'notify.startSilentTitle', // shown when user joined with no audio
// 'notify.unmute', // shown to moderator when user raises hand during AV moderation // 'notify.unmute', // shown to moderator when user raises hand during AV moderation
// 'notify.hostAskedUnmute', // shown to participant when host asks them to unmute
// 'prejoin.errorDialOut', // 'prejoin.errorDialOut',
// 'prejoin.errorDialOutDisconnected', // 'prejoin.errorDialOutDisconnected',
// 'prejoin.errorDialOutFailed', // 'prejoin.errorDialOutFailed',
@ -1269,12 +1312,37 @@ var config = {
// // Disables user resizable filmstrip. Also, allows configuration of the filmstrip // // Disables user resizable filmstrip. Also, allows configuration of the filmstrip
// // (width, tiles aspect ratios) through the interfaceConfig options. // // (width, tiles aspect ratios) through the interfaceConfig options.
// disableResizable: false, // disableResizable: false,
// }
// // Disables the stage filmstrip
// // (displaying multiple participants on stage besides the vertical filmstrip)
// disableStageFilmstrip: false
// },
// Tile view related config options.
// tileView: {
// // The optimal number of tiles that are going to be shown in tile view. Depending on the screen size it may
// // not be possible to show the exact number of participants specified here.
// numberOfVisibleTiles: 25
// },
// Specifies whether the chat emoticons are disabled or not // Specifies whether the chat emoticons are disabled or not
// disableChatSmileys: false, // disableChatSmileys: false,
// Settings for the GIPHY integration.
// giphy: {
// // Whether the feature is enabled or not.
// enabled: false,
// // SDK API Key from Giphy.
// sdkKey: '',
// // Display mode can be one of:
// // - tile: show the GIF on the tile of the participant that sent it.
// // - chat: show the GIF as a message in chat
// // - all: all of the above. This is the default option
// displayMode: 'all',
// // How long the GIF should be displayed on the tile (in miliseconds).
// tileTime: 5000
// },
// Allow all above example options to include a trailing comma and // Allow all above example options to include a trailing comma and
// prevent fear when commenting out the last value. // prevent fear when commenting out the last value.
makeJsonParserHappy: 'even if last key had a trailing comma' makeJsonParserHappy: 'even if last key had a trailing comma'

View file

@ -0,0 +1 @@
2.0.7210-1

View file

@ -10,6 +10,17 @@ JITSI_NGINX_CONFIG="$(cat <<EOF
## nginx's default mime.types doesn't include a mapping for wasm ## nginx's default mime.types doesn't include a mapping for wasm
# application/wasm wasm; # application/wasm wasm;
#} #}
# These upstreams are managed by __jitsi_meet
#upstream prosody {
# zone upstreams 64K;
# server 127.0.0.1:5280;
# keepalive 2;
#}
#upstream jvb1 {
# zone upstreams 64K;
# server 127.0.0.1:9090;
# keepalive 2;
#}
server { server {
listen 80; listen 80;
listen [::]:80; listen [::]:80;
@ -94,18 +105,18 @@ server {
# BOSH # BOSH
location = /http-bind { location = /http-bind {
# We are using 127.0.0.1, because we are not specifying a resolver proxy_pass http://prosody/http-bind?prefix=\$prefix&\$args;
# otherwise nginx will fail to resolve 'localhost' proxy_http_version 1.1;
proxy_pass http://127.0.0.1:5280/http-bind?prefix=\$prefix&\$args;
proxy_set_header X-Forwarded-For \$remote_addr; proxy_set_header X-Forwarded-For \$remote_addr;
# Prevision for 'multi-domain' jitsi instances # Prevision for 'multi-domain' jitsi instances
# https://community.jitsi.org/t/same-jitsi-meet-instance-with-multiple-domain-names/17391 # https://community.jitsi.org/t/same-jitsi-meet-instance-with-multiple-domain-names/17391
proxy_set_header Host ${DOMAIN}; proxy_set_header Host ${DOMAIN};
proxy_set_header Connection "";
} }
# xmpp websockets # xmpp websockets
location = /xmpp-websocket { location = /xmpp-websocket {
proxy_pass http://127.0.0.1:5280/xmpp-websocket?prefix=\$prefix&\$args; proxy_pass http://prosody/xmpp-websocket?prefix=\$prefix&\$args;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade; proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade"; proxy_set_header Connection "upgrade";
@ -117,7 +128,7 @@ server {
# colibri (JVB) websockets for jvb1 # colibri (JVB) websockets for jvb1
location ~ ^/colibri-ws/default-id/(.*) { location ~ ^/colibri-ws/default-id/(.*) {
proxy_pass http://127.0.0.1:9090/colibri-ws/default-id/\$1\$is_args\$args; proxy_pass http://jvb1/colibri-ws/default-id/\$1\$is_args\$args;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade; proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade"; proxy_set_header Connection "upgrade";

View file

@ -4,6 +4,16 @@ types {
# nginx's default mime.types doesn't include a mapping for wasm # nginx's default mime.types doesn't include a mapping for wasm
application/wasm wasm; application/wasm wasm;
} }
upstream prosody {
zone upstreams 64K;
server 127.0.0.1:5280;
keepalive 2;
}
upstream jvb1 {
zone upstreams 64K;
server 127.0.0.1:9090;
keepalive 2;
}
server { server {
listen 80; listen 80;
listen [::]:80; listen [::]:80;
@ -77,14 +87,16 @@ server {
# BOSH # BOSH
location = /http-bind { location = /http-bind {
proxy_pass http://127.0.0.1:5280/http-bind?prefix=$prefix&$args; proxy_pass http://prosody/http-bind?prefix=$prefix&$args;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host; proxy_set_header Host $http_host;
proxy_set_header Connection "";
} }
# xmpp websockets # xmpp websockets
location = /xmpp-websocket { location = /xmpp-websocket {
proxy_pass http://127.0.0.1:5280/xmpp-websocket?prefix=$prefix&$args; proxy_pass http://prosody/xmpp-websocket?prefix=$prefix&$args;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade"; proxy_set_header Connection "upgrade";
@ -94,7 +106,7 @@ server {
# colibri (JVB) websockets for jvb1 # colibri (JVB) websockets for jvb1
location ~ ^/colibri-ws/default-id/(.*) { location ~ ^/colibri-ws/default-id/(.*) {
proxy_pass http://127.0.0.1:9090/colibri-ws/default-id/$1$is_args$args; proxy_pass http://jvb1/colibri-ws/default-id/$1$is_args$args;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade"; proxy_set_header Connection "upgrade";

View file

@ -50,6 +50,16 @@ ${PROSODY_WEBSOCKET}consider_websocket_secure = true;
-- https_ports = { }; -- Remove this line to prevent listening on port 5284 -- https_ports = { }; -- Remove this line to prevent listening on port 5284
-- by default prosody 0.12 sends cors headers, if you want to disable it uncomment the following (the config is available on 0.12.1)
--http_cors_override = {
-- bosh = {
-- enabled = false;
-- };
-- websocket = {
-- enabled = false;
-- };
--}
-- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4 -- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4
ssl = { ssl = {
protocol = "tlsv1_2+"; protocol = "tlsv1_2+";

View file

@ -14,6 +14,16 @@ cross_domain_bosh = false;
consider_bosh_secure = true; consider_bosh_secure = true;
-- https_ports = { }; -- Remove this line to prevent listening on port 5284 -- https_ports = { }; -- Remove this line to prevent listening on port 5284
-- by default prosody 0.12 sends cors headers, if you want to disable it uncomment the following (the config is available on 0.12.1)
--http_cors_override = {
-- bosh = {
-- enabled = false;
-- };
-- websocket = {
-- enabled = false;
-- };
--}
-- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4 -- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4
ssl = { ssl = {
protocol = "tlsv1_2+"; protocol = "tlsv1_2+";