Compare commits
5 commits
977b530dab
...
1791d35f84
Author | SHA1 | Date | |
---|---|---|---|
1791d35f84 | |||
8e1d0b68f1 | |||
aa3f2eeb00 | |||
a63d9ec458 | |||
0cff414884 |
12 changed files with 74 additions and 75 deletions
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
EXPORTER_VERSION_FILE="/usr/local/bin/.prometheus-jitsi-meet-exporter.cdist.version"
|
|
||||||
|
|
||||||
if [ -f "${EXPORTER_VERSION_FILE}" ]; then
|
|
||||||
cat "${EXPORTER_VERSION_FILE}"
|
|
||||||
fi
|
|
|
@ -33,7 +33,7 @@ if grep -qE "^__file/etc/nginx" "${__messages_in}"; then
|
||||||
echo "service nginx reload"
|
echo "service nginx reload"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if grep -qE "^(__line/jitsi_jicofo_secured_domains|(__file|__link)/etc/prosody/conf.d/|__file/etc/jitsi/jicofo/jicofo.conf)" "${__messages_in}"; then
|
if grep -qE "^(__line/jitsi_jicofo_secured_domains|(__file|__link)/etc/prosody/conf.d/|__file/etc/jitsi/(jicofo/jicofo.conf|videobridge/jvb.conf))" "${__messages_in}"; then
|
||||||
RESTART_SERVICES="YES"
|
RESTART_SERVICES="YES"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#!/bin/sh -e
|
#!/bin/sh -e
|
||||||
|
|
||||||
os="$(cat "${__global}/explorer/os")"
|
os="$(cat "${__global}/explorer/os")"
|
||||||
init="$(cat "${__global}/explorer/init")"
|
|
||||||
case "${os}" in
|
case "${os}" in
|
||||||
devuan|debian)
|
devuan|debian)
|
||||||
;;
|
;;
|
||||||
|
@ -27,8 +26,6 @@ if [ -z "${TURN_SERVER}" ]; then
|
||||||
TURN_SERVER="${JITSI_HOST}"
|
TURN_SERVER="${JITSI_HOST}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PROMETHEUS_JITSI_EXPORTER_IS_VERSION="$(cat "${__object}/explorer/prometheus-jitsi-meet-explorer-version")"
|
|
||||||
|
|
||||||
# The rest is loosely based on Jitsi's documentation
|
# The rest is loosely based on Jitsi's documentation
|
||||||
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart
|
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart
|
||||||
|
|
||||||
|
@ -203,65 +200,56 @@ export JITSI_HOST
|
||||||
"${__type}/files/jicofo.conf.sh" | \
|
"${__type}/files/jicofo.conf.sh" | \
|
||||||
__file /etc/jitsi/jicofo/jicofo.conf --mode 0444 --source '-'
|
__file /etc/jitsi/jicofo/jicofo.conf --mode 0444 --source '-'
|
||||||
|
|
||||||
|
# Enable the private colibri REST API end point for better stats
|
||||||
|
__file "/etc/jitsi/videobridge/jvb.conf" --mode 0444 --source '-' <<EOFJVB
|
||||||
|
videobridge {
|
||||||
|
http-servers {
|
||||||
|
public {
|
||||||
|
port = 9090
|
||||||
|
}
|
||||||
|
private {
|
||||||
|
port = 8080
|
||||||
|
}
|
||||||
|
}
|
||||||
|
websockets {
|
||||||
|
enabled = true
|
||||||
|
domain = "${JITSI_HOST}:443"
|
||||||
|
tls = true
|
||||||
|
}
|
||||||
|
apis {
|
||||||
|
rest {
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOFJVB
|
||||||
|
|
||||||
|
# Enable simple per-domain body customisation
|
||||||
|
__file "/usr/share/jitsi-meet/body.html" \
|
||||||
|
--mode 0644 \
|
||||||
|
--source '-' <<EOF
|
||||||
|
<!--#include virtual="body-\${host}.html" -->
|
||||||
|
EOF
|
||||||
|
|
||||||
# These two should be changed on new release
|
# These two should be changed on new release
|
||||||
PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION="1.1.5"
|
EXPORTER_VERSION="1.2.0"
|
||||||
PROMETHEUS_JITSI_EXPORTER_CHECKSUM="sha256:3ddf43a48d9a2f62be1bc6db9e7ba75d61994f9423e5c5b28be019f41f06f745"
|
EXPORTER_CHECKSUM="sha256:6377ffa7be0c7deb66545616add7245da96f8b7746d6712f41cfa9fe72c935ce"
|
||||||
PROMETHEUS_JITSI_EXPORTER_URL="https://github.com/systemli/prometheus-jitsi-meet-exporter/releases/download/${PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION}/prometheus-jitsi-meet-exporter-linux-amd64"
|
EXPORTER_URL="https://github.com/systemli/prometheus-jitsi-meet-exporter/releases/download/${EXPORTER_VERSION}/prometheus-jitsi-meet-exporter_${EXPORTER_VERSION}_linux_amd64.tar.gz"
|
||||||
PROMETHEUS_JITSI_EXPORTER_VERSION_FILE="/usr/local/bin/.prometheus-jitsi-meet-exporter.cdist.version"
|
if [ -f "${__object}/parameter/disable-prometheus-exporter" ]; then
|
||||||
if [ ! -f "${__object}/parameter/disable-prometheus-exporter" ]; then
|
EXPORTER_STATE="absent"
|
||||||
case "${init}" in
|
else
|
||||||
init|sysvinit)
|
EXPORTER_STATE="present"
|
||||||
__runit
|
|
||||||
require="__runit" __runit_service \
|
|
||||||
prometheus-jitsi-meet-exporter --log --source - <<EOF
|
|
||||||
#!/bin/sh -e
|
|
||||||
cd /tmp
|
|
||||||
exec chpst -u "nobody:nogroup" env HOME="/tmp" \\
|
|
||||||
prometheus-jitsi-meet-exporter \\
|
|
||||||
-videobridge-url 'http://localhost:8888/stats' \\
|
|
||||||
-web.listen-address ':9888' 2>&1
|
|
||||||
EOF
|
|
||||||
|
|
||||||
export require="__runit_service/prometheus-jitsi-meet-exporter"
|
|
||||||
JITSI_MEET_EXPORTER_SERVICE="sv %s prometheus-jitsi-meet-exporter"
|
|
||||||
;;
|
|
||||||
systemd)
|
|
||||||
__systemd_unit prometheus-jitsi-meet-exporter.service \
|
|
||||||
--source "-" \
|
|
||||||
--enablement-state "enabled" <<EOF
|
|
||||||
[Unit]
|
|
||||||
Description=Metrics Exporter for Jitsi Meet
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
DynamicUser=yes
|
|
||||||
ExecStart=/usr/local/bin/prometheus-jitsi-meet-exporter -videobridge-url 'http://localhost:8888/stats' -web.listen-address ':9888'
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
export require="__systemd_unit/prometheus-jitsi-meet-exporter.service"
|
|
||||||
JITSI_MEET_EXPORTER_SERVICE="service prometheus-jitsi-meet-exporter %s"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if [ "${PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION}" != \
|
|
||||||
"${PROMETHEUS_JITSI_EXPORTER_IS_VERSION}" ]; then
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
__download \
|
|
||||||
/tmp/prometheus-jitsi-meet-exporter \
|
|
||||||
--url "${PROMETHEUS_JITSI_EXPORTER_URL}" \
|
|
||||||
--download remote \
|
|
||||||
--sum "${PROMETHEUS_JITSI_EXPORTER_CHECKSUM}" \
|
|
||||||
--onchange "$(printf "${JITSI_MEET_EXPORTER_SERVICE}" "stop") || true; chmod 555 /tmp/prometheus-jitsi-meet-exporter && mv /tmp/prometheus-jitsi-meet-exporter /usr/local/bin/prometheus-jitsi-meet-exporter && $(printf "${JITSI_MEET_EXPORTER_SERVICE}" "restart")"
|
|
||||||
printf "%s" "${PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION}" | \
|
|
||||||
require="${require} __download/tmp/prometheus-jitsi-meet-exporter" __file \
|
|
||||||
"${PROMETHEUS_JITSI_EXPORTER_VERSION_FILE}" \
|
|
||||||
--source "-"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
# TODO: disable the exporter if it is deployed and then admin changes their mind
|
__evilham_single_binary_service prometheus-jitsi-meet-exporter \
|
||||||
|
--state "${EXPORTER_STATE}" \
|
||||||
|
--do-not-manage-user \
|
||||||
|
--user "nobody" \
|
||||||
|
--group "nogroup" \
|
||||||
|
--version "${EXPORTER_VERSION}" \
|
||||||
|
--checksum "${EXPORTER_CHECKSUM}" \
|
||||||
|
--url "${EXPORTER_URL}" \
|
||||||
|
--unpack \
|
||||||
|
--service-args "-videobridge-url 'http://localhost:8080/colibri/stats' -web.listen-address ':9888'"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Setup interpreter assets if requested
|
# Setup interpreter assets if requested
|
||||||
|
|
|
@ -32,4 +32,4 @@ download_file doc/debian/jitsi-meet-prosody/prosody.cfg.lua-jvb.example prosody.
|
||||||
|
|
||||||
# Change the version file, maintainers should check that it matches
|
# Change the version file, maintainers should check that it matches
|
||||||
# the deb version
|
# the deb version
|
||||||
printf "2.0.${BRANCH#*_}-1" > jitsi-version
|
printf "2.0.%s-1" "${BRANCH#*_}" > jitsi-version
|
||||||
|
|
|
@ -1028,9 +1028,9 @@ ${ANALYTICS_SETTINGS}
|
||||||
// Endpoint that enables support for salesforce integration with in-meeting resource linking
|
// Endpoint that enables support for salesforce integration with in-meeting resource linking
|
||||||
// This is required for:
|
// This is required for:
|
||||||
// listing the most recent records - salesforceUrl/records/recents
|
// listing the most recent records - salesforceUrl/records/recents
|
||||||
// searching records - salesforceUrl/records?text=${text}
|
// searching records - salesforceUrl/records?text=\${text}
|
||||||
// retrieving record details - salesforceUrl/records/${id}?type=${type}
|
// retrieving record details - salesforceUrl/records/\${id}?type=\${type}
|
||||||
// and linking the meeting - salesforceUrl/sessions/${sessionId}/records/${id}
|
// and linking the meeting - salesforceUrl/sessions/\${sessionId}/records/\${id}
|
||||||
//
|
//
|
||||||
// salesforceUrl: 'https://api.example.com/',
|
// salesforceUrl: 'https://api.example.com/',
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ JITSI_INTERFACE_CONFIG_JS="$(cat <<EOF
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var interfaceConfig = {
|
var interfaceConfig = {
|
||||||
APP_NAME: 'Jitsi Meet',
|
APP_NAME: '${BRANDING_APP_NAME}',
|
||||||
AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)',
|
AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)',
|
||||||
AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)',
|
AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)',
|
||||||
|
|
||||||
|
|
|
@ -153,6 +153,8 @@ Component "internal.auth.${JITSI_DOMAIN:?}" "muc"
|
||||||
admins = { "${FOCUS_USER:?}@auth.${JITSI_HOST:?}", "jvb@auth.${JITSI_HOST:?}" }
|
admins = { "${FOCUS_USER:?}@auth.${JITSI_HOST:?}", "jvb@auth.${JITSI_HOST:?}" }
|
||||||
muc_room_locking = false
|
muc_room_locking = false
|
||||||
muc_room_default_public_jids = true
|
muc_room_default_public_jids = true
|
||||||
|
-- https://prosody.im/doc/modules/mod_muc
|
||||||
|
muc_room_cache_size = 1000
|
||||||
${PROSODY_DOMAIN_END}
|
${PROSODY_DOMAIN_END}
|
||||||
${PROSODY_MAIN_START}
|
${PROSODY_MAIN_START}
|
||||||
-- This will be managed by __jitsi_meet
|
-- This will be managed by __jitsi_meet
|
||||||
|
|
|
@ -93,6 +93,15 @@ video-constraints
|
||||||
It must not have a trailing comma, see `constraints` in
|
It must not have a trailing comma, see `constraints` in
|
||||||
`__jitsi_meet_domain/files/config.js.sh`.
|
`__jitsi_meet_domain/files/config.js.sh`.
|
||||||
|
|
||||||
|
branding-app-name
|
||||||
|
This will change `Jitsi Meet` in many places to the brand you desire.
|
||||||
|
Defaults to `Jitsi Meet`.
|
||||||
|
|
||||||
|
branding-extra-body
|
||||||
|
This must be valid HTML, it will be included server-side and delivered to
|
||||||
|
clients alongside the default `index.html`.
|
||||||
|
This is useful if you would rather not replace the whole `index`, but
|
||||||
|
still want the chance to do some heavier branding / add instructions / etc.
|
||||||
|
|
||||||
branding-json
|
branding-json
|
||||||
Path to a JSON file that will be served as the `dynamicBrandingUrl`.
|
Path to a JSON file that will be served as the `dynamicBrandingUrl`.
|
||||||
|
@ -100,14 +109,12 @@ branding-json
|
||||||
`__jitsi_meet_domain/files/config.js.sh`.
|
`__jitsi_meet_domain/files/config.js.sh`.
|
||||||
If not set, no branding will be set up.
|
If not set, no branding will be set up.
|
||||||
|
|
||||||
|
|
||||||
branding-index
|
branding-index
|
||||||
Path to an HTML file that will be served instead of Jitsi-Meet's default
|
Path to an HTML file that will be served instead of Jitsi-Meet's default
|
||||||
one.
|
one.
|
||||||
If not set, the default index file will be used.
|
If not set, the default index file will be used.
|
||||||
If set to `-`, the type's standard input will be used.
|
If set to `-`, the type's standard input will be used.
|
||||||
|
|
||||||
|
|
||||||
branding-watermark
|
branding-watermark
|
||||||
Path to a png file that will be served instead of Jitsi-Meet's default
|
Path to a png file that will be served instead of Jitsi-Meet's default
|
||||||
one.
|
one.
|
||||||
|
|
|
@ -19,6 +19,7 @@ START_VIDEO_MUTED="$(cat "${__object}/parameter/start-video-muted")"
|
||||||
TURN_SERVER="$(cat "${__object}/parameter/turn-server")"
|
TURN_SERVER="$(cat "${__object}/parameter/turn-server")"
|
||||||
VIDEO_CONSTRAINTS="$(cat "${__object}/parameter/video-constraints")"
|
VIDEO_CONSTRAINTS="$(cat "${__object}/parameter/video-constraints")"
|
||||||
ANALYTICS_SETTINGS="$(cat "${__object}/parameter/analytics-settings")"
|
ANALYTICS_SETTINGS="$(cat "${__object}/parameter/analytics-settings")"
|
||||||
|
BRANDING_APP_NAME="$(cat "${__object}/parameter/branding-app-name")"
|
||||||
BRANDING_INDEX="$(cat "${__object}/parameter/branding-index")"
|
BRANDING_INDEX="$(cat "${__object}/parameter/branding-index")"
|
||||||
BRANDING_JSON="$(cat "${__object}/parameter/branding-json")"
|
BRANDING_JSON="$(cat "${__object}/parameter/branding-json")"
|
||||||
BRANDING_WATERMARK="$(cat "${__object}/parameter/branding-watermark")"
|
BRANDING_WATERMARK="$(cat "${__object}/parameter/branding-watermark")"
|
||||||
|
@ -131,6 +132,11 @@ __file "/usr/share/jitsi-meet/images/watermark-${DOMAIN}.png" \
|
||||||
--mode 0644 \
|
--mode 0644 \
|
||||||
--state "$(_var_state "${BRANDING_WATERMARK}")" \
|
--state "$(_var_state "${BRANDING_WATERMARK}")" \
|
||||||
--source "${BRANDING_WATERMARK}"
|
--source "${BRANDING_WATERMARK}"
|
||||||
|
# Simple body customisation
|
||||||
|
__file "/usr/share/jitsi-meet/body-${DOMAIN}.html" \
|
||||||
|
--mode 0644 \
|
||||||
|
--state "$(_var_state "${STATE}")" \
|
||||||
|
--source "${__object}/parameter/branding-extra-body"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Take care of prosody settings for the domain
|
# Take care of prosody settings for the domain
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Jitsi Meet
|
|
@ -5,7 +5,9 @@ notice-message
|
||||||
start-video-muted
|
start-video-muted
|
||||||
turn-server
|
turn-server
|
||||||
video-constraints
|
video-constraints
|
||||||
|
branding-app-name
|
||||||
branding-json
|
branding-json
|
||||||
branding-index
|
branding-index
|
||||||
|
branding-extra-body
|
||||||
branding-watermark
|
branding-watermark
|
||||||
state
|
state
|
||||||
|
|
Loading…
Reference in a new issue