mirror of
https://github.com/jitsi/docker-jitsi-meet.git
synced 2025-09-21 03:21:00 +02:00
Use default values everywhere so they don't need to be specified in the .env file. This makes the default .env file much smaller (the larger config options are documented in the handbook) and should make it easier to port the setup to runtimes other than Docker Compose.
410 lines
15 KiB
JavaScript
410 lines
15 KiB
JavaScript
{{ $DEPLOYMENTINFO_USERREGION := .Env.DEPLOYMENTINFO_USERREGION | default "" -}}
|
|
{{ $ENABLE_AUDIO_PROCESSING := .Env.ENABLE_AUDIO_PROCESSING | default "true" | toBool -}}
|
|
{{ $ENABLE_BREAKOUT_ROOMS := .Env.ENABLE_BREAKOUT_ROOMS | default "true" | toBool -}}
|
|
{{ $ENABLE_CALENDAR := .Env.ENABLE_CALENDAR | default "false" | toBool -}}
|
|
{{ $ENABLE_FILE_RECORDING_SERVICE := .Env.ENABLE_FILE_RECORDING_SERVICE | default "false" | toBool -}}
|
|
{{ $ENABLE_FILE_RECORDING_SERVICE_SHARING := .Env.ENABLE_FILE_RECORDING_SERVICE_SHARING | default "false" | toBool -}}
|
|
{{ $ENABLE_IPV6 := .Env.ENABLE_IPV6 | default "true" | toBool -}}
|
|
{{ $ENABLE_LIPSYNC := .Env.ENABLE_LIPSYNC | default "false" | toBool -}}
|
|
{{ $ENABLE_NO_AUDIO_DETECTION := .Env.ENABLE_NO_AUDIO_DETECTION | default "true" | toBool -}}
|
|
{{ $ENABLE_P2P := .Env.ENABLE_P2P | default "true" | toBool -}}
|
|
{{ $ENABLE_PREJOIN_PAGE := .Env.ENABLE_PREJOIN_PAGE | default "true" | toBool -}}
|
|
{{ $ENABLE_WELCOME_PAGE := .Env.ENABLE_WELCOME_PAGE | default "true" | toBool -}}
|
|
{{ $ENABLE_CLOSE_PAGE := .Env.ENABLE_CLOSE_PAGE | default "false" | toBool -}}
|
|
{{ $ENABLE_RECORDING := .Env.ENABLE_RECORDING | default "false" | toBool -}}
|
|
{{ $ENABLE_REMB := .Env.ENABLE_REMB | default "true" | toBool -}}
|
|
{{ $ENABLE_REQUIRE_DISPLAY_NAME := .Env.ENABLE_REQUIRE_DISPLAY_NAME | default "false" | toBool -}}
|
|
{{ $ENABLE_SIMULCAST := .Env.ENABLE_SIMULCAST | default "true" | toBool -}}
|
|
{{ $ENABLE_STATS_ID := .Env.ENABLE_STATS_ID | default "false" | toBool -}}
|
|
{{ $ENABLE_STEREO := .Env.ENABLE_STEREO | default "false" | toBool -}}
|
|
{{ $ENABLE_OPUS_RED := .Env.ENABLE_OPUS_RED | default "false" | toBool -}}
|
|
{{ $ENABLE_TALK_WHILE_MUTED := .Env.ENABLE_TALK_WHILE_MUTED | default "false" | toBool -}}
|
|
{{ $ENABLE_TCC := .Env.ENABLE_TCC | default "true" | toBool -}}
|
|
{{ $ENABLE_TRANSCRIPTIONS := .Env.ENABLE_TRANSCRIPTIONS | default "false" | toBool -}}
|
|
{{ $RESOLUTION := .Env.RESOLUTION | default "720" -}}
|
|
{{ $RESOLUTION_MIN := .Env.RESOLUTION_MIN | default "180" -}}
|
|
{{ $RESOLUTION_WIDTH := .Env.RESOLUTION_WIDTH | default "1280" -}}
|
|
{{ $RESOLUTION_WIDTH_MIN := .Env.RESOLUTION_WIDTH_MIN | default "320" -}}
|
|
{{ $START_AUDIO_ONLY := .Env.START_AUDIO_ONLY | default "false" | toBool -}}
|
|
{{ $START_AUDIO_MUTED := .Env.START_AUDIO_MUTED | default 10 -}}
|
|
{{ $START_WITH_AUDIO_MUTED := .Env.START_WITH_AUDIO_MUTED | default "false" | toBool -}}
|
|
{{ $START_SILENT := .Env.START_SILENT | default "false" | toBool -}}
|
|
{{ $DISABLE_AUDIO_LEVELS := .Env.DISABLE_AUDIO_LEVELS | default "false" | toBool -}}
|
|
{{ $ENABLE_NOISY_MIC_DETECTION := .Env.ENABLE_NOISY_MIC_DETECTION | default "true" | toBool -}}
|
|
{{ $START_VIDEO_MUTED := .Env.START_VIDEO_MUTED | default 10 -}}
|
|
{{ $START_WITH_VIDEO_MUTED := .Env.START_WITH_VIDEO_MUTED | default "false" | toBool -}}
|
|
{{ $DESKTOP_SHARING_FRAMERATE_MIN := .Env.DESKTOP_SHARING_FRAMERATE_MIN | default 5 -}}
|
|
{{ $DESKTOP_SHARING_FRAMERATE_MAX := .Env.DESKTOP_SHARING_FRAMERATE_MAX | default 5 -}}
|
|
{{ $TESTING_OCTO_PROBABILITY := .Env.TESTING_OCTO_PROBABILITY | default "0" -}}
|
|
{{ $TESTING_CAP_SCREENSHARE_BITRATE := .Env.TESTING_CAP_SCREENSHARE_BITRATE | default "1" -}}
|
|
{{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "meet.jitsi" -}}
|
|
{{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}}
|
|
{{ $DISABLE_DEEP_LINKING := .Env.DISABLE_DEEP_LINKING | default "false" | toBool -}}
|
|
{{ $VIDEOQUALITY_ENFORCE_PREFERRED_CODEC := .Env.VIDEOQUALITY_ENFORCE_PREFERRED_CODEC | default "false" | toBool -}}
|
|
{{ $DISABLE_POLLS := .Env.DISABLE_POLLS | default "false" | toBool -}}
|
|
{{ $DISABLE_REACTIONS := .Env.DISABLE_REACTIONS | default "false" | toBool -}}
|
|
{{ $DISABLE_REMOTE_VIDEO_MENU := .Env.DISABLE_REMOTE_VIDEO_MENU | default "false" | toBool -}}
|
|
{{ $DISABLE_PRIVATE_CHAT:= .Env.DISABLE_PRIVATE_CHAT | default "false" | toBool -}}
|
|
{{ $DISABLE_KICKOUT := .Env.DISABLE_KICKOUT | default "false" | toBool -}}
|
|
{{ $DISABLE_GRANT_MODERATOR := .Env.DISABLE_GRANT_MODERATOR | default "false" | toBool -}}
|
|
{{ $ENABLE_E2EPING := .Env.ENABLE_E2EPING | default "false" | toBool -}}
|
|
|
|
// Video configuration.
|
|
//
|
|
|
|
if (!config.hasOwnProperty('constraints')) config.constraints = {};
|
|
if (!config.constraints.hasOwnProperty('video')) config.constraints.video = {};
|
|
|
|
config.resolution = {{ $RESOLUTION }};
|
|
config.constraints.video.height = { ideal: {{ $RESOLUTION }}, max: {{ $RESOLUTION }}, min: {{ $RESOLUTION_MIN }} };
|
|
config.constraints.video.width = { ideal: {{ $RESOLUTION_WIDTH }}, max: {{ $RESOLUTION_WIDTH }}, min: {{ $RESOLUTION_WIDTH_MIN }}};
|
|
config.disableSimulcast = {{ not $ENABLE_SIMULCAST }};
|
|
config.startVideoMuted = {{ $START_VIDEO_MUTED }};
|
|
config.startWithVideoMuted = {{ $START_WITH_VIDEO_MUTED }};
|
|
|
|
{{ if .Env.START_BITRATE -}}
|
|
config.startBitrate = '{{ .Env.START_BITRATE }}';
|
|
{{ end -}}
|
|
|
|
// ScreenShare Configuration.
|
|
//
|
|
config.desktopSharingFrameRate = { min: {{ $DESKTOP_SHARING_FRAMERATE_MIN }}, max: {{ $DESKTOP_SHARING_FRAMERATE_MAX }} };
|
|
|
|
// Audio configuration.
|
|
//
|
|
|
|
config.enableNoAudioDetection = {{ $ENABLE_NO_AUDIO_DETECTION }};
|
|
config.enableTalkWhileMuted = {{ $ENABLE_TALK_WHILE_MUTED }};
|
|
config.disableAP = {{ not $ENABLE_AUDIO_PROCESSING }};
|
|
|
|
if (!config.hasOwnProperty('audioQuality')) config.audioQuality = {};
|
|
config.audioQuality.stereo = {{ $ENABLE_STEREO }};
|
|
|
|
{{ if .Env.AUDIO_QUALITY_OPUS_BITRATE -}}
|
|
config.audioQuality.opusMaxAverageBitrate = '{{ .Env.AUDIO_QUALITY_OPUS_BITRATE }}';
|
|
{{ end -}}
|
|
|
|
config.startAudioOnly = {{ $START_AUDIO_ONLY }};
|
|
config.startAudioMuted = {{ $START_AUDIO_MUTED }};
|
|
config.startWithAudioMuted = {{ $START_WITH_AUDIO_MUTED }};
|
|
config.startSilent = {{ $START_SILENT }};
|
|
config.enableOpusRed = {{ $ENABLE_OPUS_RED }};
|
|
config.disableAudioLevels = {{ $DISABLE_AUDIO_LEVELS }};
|
|
config.enableNoisyMicDetection = {{ $ENABLE_NOISY_MIC_DETECTION }};
|
|
|
|
|
|
// Peer-to-Peer options.
|
|
//
|
|
|
|
if (!config.hasOwnProperty('p2p')) config.p2p = {};
|
|
|
|
config.p2p.enabled = {{ $ENABLE_P2P }};
|
|
|
|
|
|
// Breakout Rooms
|
|
//
|
|
|
|
config.hideAddRoomButton = {{ $ENABLE_BREAKOUT_ROOMS | not }};
|
|
|
|
|
|
// Etherpad
|
|
//
|
|
|
|
{{ if .Env.ETHERPAD_PUBLIC_URL -}}
|
|
config.etherpad_base = '{{ .Env.ETHERPAD_PUBLIC_URL }}';
|
|
{{ else if .Env.ETHERPAD_URL_BASE -}}
|
|
config.etherpad_base = '{{.Env.PUBLIC_URL}}/etherpad/p/';
|
|
{{ end -}}
|
|
|
|
|
|
// Recording.
|
|
//
|
|
|
|
{{ if $ENABLE_RECORDING -}}
|
|
|
|
config.hiddenDomain = '{{ $XMPP_RECORDER_DOMAIN }}';
|
|
|
|
// Whether to enable file recording or not
|
|
config.fileRecordingsEnabled = true;
|
|
|
|
// Whether to enable live streaming or not.
|
|
config.liveStreamingEnabled = true;
|
|
|
|
{{ if .Env.DROPBOX_APPKEY -}}
|
|
// Enable the dropbox integration.
|
|
if (!config.hasOwnProperty('dropbox')) config.dropbox = {};
|
|
config.dropbox.appKey = '{{ .Env.DROPBOX_APPKEY }}';
|
|
{{ if .Env.DROPBOX_REDIRECT_URI -}}
|
|
// A URL to redirect the user to, after authenticating
|
|
// by default uses:
|
|
// 'https://jitsi-meet.example.com/static/oauth.html'
|
|
config.dropbox.redirectURI = '{{ .Env.DROPBOX_REDIRECT_URI }}';
|
|
{{ end -}}
|
|
{{ end -}}
|
|
|
|
{{ if $ENABLE_FILE_RECORDING_SERVICE -}}
|
|
// When integrations like dropbox are enabled only that will be shown,
|
|
// by enabling fileRecordingsServiceEnabled, we show both the integrations
|
|
// and the generic recording service (its configuration and storage type
|
|
// depends on jibri configuration)
|
|
config.fileRecordingsServiceEnabled = true;
|
|
{{ end -}}
|
|
{{ if $ENABLE_FILE_RECORDING_SERVICE_SHARING -}}
|
|
// Whether to show the possibility to share file recording with other people
|
|
// (e.g. meeting participants), based on the actual implementation
|
|
// on the backend.
|
|
config.fileRecordingsServiceSharingEnabled = true;
|
|
{{ end -}}
|
|
{{ end -}}
|
|
|
|
|
|
// Analytics.
|
|
//
|
|
|
|
if (!config.hasOwnProperty('analytics')) config.analytics = {};
|
|
|
|
{{ if .Env.AMPLITUDE_ID -}}
|
|
// The Amplitude APP Key:
|
|
config.analytics.amplitudeAPPKey = '{{ .Env.AMPLITUDE_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.GOOGLE_ANALYTICS_ID -}}
|
|
// The Google Analytics Tracking ID:
|
|
config.analytics.googleAnalyticsTrackingId = '{{ .Env.GOOGLE_ANALYTICS_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.MATOMO_ENDPOINT -}}
|
|
// Matomo endpoint:
|
|
config.analytics.matomoEndpoint = '{{ .Env.MATOMO_ENDPOINT }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.MATOMO_SITE_ID -}}
|
|
// Matomo site ID:
|
|
config.analytics.matomoSiteID = '{{ .Env.MATOMO_SITE_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.ANALYTICS_SCRIPT_URLS -}}
|
|
// Array of script URLs to load as lib-jitsi-meet "analytics handlers".
|
|
config.analytics.scriptURLs = [ '{{ join "','" (splitList "," .Env.ANALYTICS_SCRIPT_URLS) }}' ];
|
|
{{ end -}}
|
|
|
|
{{ if .Env.ANALYTICS_WHITELISTED_EVENTS -}}
|
|
config.analytics.whiteListedEvents = [ '{{ join "','" (splitList "," .Env.ANALYTICS_WHITELISTED_EVENTS) }}' ];
|
|
{{ end -}}
|
|
|
|
{{ if .Env.CALLSTATS_CUSTOM_SCRIPT_URL -}}
|
|
config.callStatsCustomScriptUrl = '{{ .Env.CALLSTATS_CUSTOM_SCRIPT_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.CALLSTATS_ID -}}
|
|
// To enable sending statistics to callstats.io you must provide the
|
|
// Application ID and Secret.
|
|
config.callStatsID = '{{ .Env.CALLSTATS_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.CALLSTATS_ID -}}
|
|
config.callStatsSecret = '{{ .Env.CALLSTATS_SECRET }}';
|
|
{{ end -}}
|
|
|
|
// Enables callstatsUsername to be reported as statsId and used
|
|
// by callstats as repoted remote id.
|
|
config.enableStatsID = {{ $ENABLE_STATS_ID }};
|
|
|
|
|
|
// Dial in/out services.
|
|
//
|
|
|
|
{{ if .Env.CONFCODE_URL -}}
|
|
config.dialInConfCodeUrl = '{{ .Env.CONFCODE_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DIALIN_NUMBERS_URL -}}
|
|
config.dialInNumbersUrl = '{{ .Env.DIALIN_NUMBERS_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DIALOUT_AUTH_URL -}}
|
|
config.dialOutAuthUrl = '{{ .Env.DIALOUT_AUTH_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DIALOUT_CODES_URL -}}
|
|
config.dialOutCodesUrl = '{{ .Env.DIALOUT_CODES_URL }}';
|
|
{{ end -}}
|
|
|
|
|
|
// Calendar service integration.
|
|
//
|
|
|
|
config.enableCalendarIntegration = {{ $ENABLE_CALENDAR }};
|
|
|
|
{{ if .Env.GOOGLE_API_APP_CLIENT_ID -}}
|
|
config.googleApiApplicationClientID = '{{ .Env.GOOGLE_API_APP_CLIENT_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.MICROSOFT_API_APP_CLIENT_ID -}}
|
|
config.microsoftApiApplicationClientID = '{{ .Env.MICROSOFT_API_APP_CLIENT_ID }}';
|
|
{{ end -}}
|
|
|
|
|
|
// Invitation service.
|
|
//
|
|
|
|
{{ if .Env.INVITE_SERVICE_URL -}}
|
|
config.inviteServiceUrl = '{{ .Env.INVITE_SERVICE_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.PEOPLE_SEARCH_URL -}}
|
|
config.peopleSearchUrl = '{{ .Env.PEOPLE_SEARCH_URL }}';
|
|
config.peopleSearchQueryTypes = ['user','conferenceRooms'];
|
|
{{ end -}}
|
|
|
|
|
|
// Miscellaneous.
|
|
//
|
|
|
|
// Prejoin page.
|
|
config.prejoinPageEnabled = {{ $ENABLE_PREJOIN_PAGE }};
|
|
|
|
// Welcome page.
|
|
config.enableWelcomePage = {{ $ENABLE_WELCOME_PAGE }};
|
|
|
|
// Close page.
|
|
config.enableClosePage = {{ $ENABLE_CLOSE_PAGE }};
|
|
|
|
// Default language.
|
|
{{ if .Env.DEFAULT_LANGUAGE -}}
|
|
config.defaultLanguage = '{{ .Env.DEFAULT_LANGUAGE }}';
|
|
{{ end -}}
|
|
|
|
// Require users to always specify a display name.
|
|
config.requireDisplayName = {{ $ENABLE_REQUIRE_DISPLAY_NAME }};
|
|
|
|
// Chrome extension banner.
|
|
{{ if .Env.CHROME_EXTENSION_BANNER_JSON -}}
|
|
config.chromeExtensionBanner = {{ .Env.CHROME_EXTENSION_BANNER_JSON }};
|
|
{{ end -}}
|
|
|
|
|
|
// Advanced.
|
|
//
|
|
|
|
// Lipsync hack in jicofo, may not be safe.
|
|
config.enableLipSync = {{ $ENABLE_LIPSYNC }};
|
|
|
|
config.enableRemb = {{ $ENABLE_REMB }};
|
|
config.enableTcc = {{ $ENABLE_TCC }};
|
|
|
|
// Enable IPv6 support.
|
|
config.useIPv6 = {{ $ENABLE_IPV6 }};
|
|
|
|
// Transcriptions (subtitles and buttons can be configured in interface_config)
|
|
config.transcribingEnabled = {{ $ENABLE_TRANSCRIPTIONS }};
|
|
|
|
{{ if .Env.DYNAMIC_BRANDING_URL -}}
|
|
// External API url used to receive branding specific information.
|
|
config.dynamicBrandingUrl = '{{ .Env.DYNAMIC_BRANDING_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.TOKEN_AUTH_URL -}}
|
|
// Authenticate using external service or just focus external auth window if there is one already.
|
|
config.tokenAuthUrl = '{{ .Env.TOKEN_AUTH_URL }}';
|
|
{{ end -}}
|
|
|
|
|
|
// Deployment information.
|
|
//
|
|
|
|
if (!config.hasOwnProperty('deploymentInfo')) config.deploymentInfo = {};
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_ENVIRONMENT -}}
|
|
config.deploymentInfo.environment = '{{ .Env.DEPLOYMENTINFO_ENVIRONMENT }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_SHARD -}}
|
|
config.deploymentInfo.shard = '{{ .Env.DEPLOYMENTINFO_SHARD }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_ENVIRONMENT_TYPE -}}
|
|
config.deploymentInfo.envType = '{{ .Env.DEPLOYMENTINFO_ENVIRONMENT_TYPE }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_REGION -}}
|
|
config.deploymentInfo.region = '{{ .Env.DEPLOYMENTINFO_REGION }}';
|
|
{{ end -}}
|
|
|
|
{{ if $DEPLOYMENTINFO_USERREGION -}}
|
|
config.deploymentInfo.userRegion = '{{ $DEPLOYMENTINFO_USERREGION }}';
|
|
{{ end -}}
|
|
|
|
|
|
// Testing
|
|
//
|
|
|
|
if (!config.hasOwnProperty('testing')) config.testing = {};
|
|
if (!config.testing.hasOwnProperty('octo')) config.testing.octo = {};
|
|
|
|
config.testing.capScreenshareBitrate = {{ $TESTING_CAP_SCREENSHARE_BITRATE }};
|
|
config.testing.octo.probability = {{ $TESTING_OCTO_PROBABILITY }};
|
|
|
|
// Deep Linking
|
|
config.disableDeepLinking = {{ $DISABLE_DEEP_LINKING }};
|
|
|
|
// P2P preferred codec
|
|
{{ if .Env.P2P_PREFERRED_CODEC -}}
|
|
config.p2p.preferredCodec = '{{ .Env.P2P_PREFERRED_CODEC }}';
|
|
{{ end -}}
|
|
|
|
// enable preffered video Codec
|
|
if (!config.hasOwnProperty('videoQuality')) config.videoQuality = {};
|
|
{{ if .Env.VIDEOQUALITY_PREFERRED_CODEC -}}
|
|
config.videoQuality.preferredCodec = '{{ .Env.VIDEOQUALITY_PREFERRED_CODEC }}';
|
|
{{ end -}}
|
|
|
|
config.videoQuality.enforcePreferredCodec = {{ $VIDEOQUALITY_ENFORCE_PREFERRED_CODEC }};
|
|
|
|
if (!config.videoQuality.hasOwnProperty('maxBitratesVideo')) config.videoQuality.maxBitratesVideo = {};
|
|
{{ if and .Env.VIDEOQUALITY_BITRATE_H264_LOW .Env.VIDEOQUALITY_BITRATE_H264_STANDARD .Env.VIDEOQUALITY_BITRATE_H264_HIGH -}}
|
|
config.videoQuality.maxBitratesVideo.H264 = { low: {{ .Env.VIDEOQUALITY_BITRATE_H264_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_H264_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_H264_HIGH }} };
|
|
{{ end -}}
|
|
{{ if and .Env.VIDEOQUALITY_BITRATE_VP8_LOW .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD .Env.VIDEOQUALITY_BITRATE_VP8_HIGH -}}
|
|
config.videoQuality.maxBitratesVideo.VP8 = { low: {{ .Env.VIDEOQUALITY_BITRATE_VP8_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_VP8_HIGH }} };
|
|
{{ end -}}
|
|
{{ if and .Env.VIDEOQUALITY_BITRATE_VP9_LOW .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD .Env.VIDEOQUALITY_BITRATE_VP9_HIGH -}}
|
|
config.videoQuality.maxBitratesVideo.VP9 = { low: {{ .Env.VIDEOQUALITY_BITRATE_VP9_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_VP9_HIGH }} };
|
|
{{ end -}}
|
|
|
|
// Reactions
|
|
config.disableReactions = {{ $DISABLE_REACTIONS }};
|
|
|
|
// Polls
|
|
config.disablePolls = {{ $DISABLE_POLLS }};
|
|
|
|
// Configure toolbar buttons
|
|
{{ if .Env.TOOLBAR_BUTTONS -}}
|
|
config.toolbarButtons = [ '{{ join "','" (splitList "," .Env.TOOLBAR_BUTTONS) }}' ];
|
|
{{ end -}}
|
|
|
|
// Hides the buttons at pre-join screen
|
|
{{ if .Env.HIDE_PREMEETING_BUTTONS -}}
|
|
config.hiddenPremeetingButtons = [ '{{ join "','" (splitList "," .Env.HIDE_PREMEETING_BUTTONS) }}' ];
|
|
{{ end -}}
|
|
|
|
// Configure remote participant video menu
|
|
if (!config.hasOwnProperty('remoteVideoMenu')) config.remoteVideoMenu = {};
|
|
config.remoteVideoMenu.disabled = {{ $DISABLE_REMOTE_VIDEO_MENU }};
|
|
config.remoteVideoMenu.disableKick = {{ $DISABLE_KICKOUT }};
|
|
config.remoteVideoMenu.disableGrantModerator = {{ $DISABLE_GRANT_MODERATOR }};
|
|
config.remoteVideoMenu.disablePrivateChat = {{ $DISABLE_PRIVATE_CHAT }};
|
|
|
|
// Configure e2eping
|
|
if (!config.hasOwnProperty('e2eping')) config.e2eping = {};
|
|
config.e2eping.enabled = {{ $ENABLE_E2EPING }};
|
|
{{ if .Env.E2EPING_NUM_REQUESTS -}}
|
|
config.e2eping.numRequests = {{ .Env.E2EPING_NUM_REQUESTS }};
|
|
{{ end -}}
|
|
{{ if .Env.E2EPING_MAX_CONFERENCE_SIZE -}}
|
|
config.e2eping.maxConferenceSize = {{ .Env.E2EPING_MAX_CONFERENCE_SIZE }};
|
|
{{ end -}}
|
|
{{ if .Env.E2EPING_MAX_MESSAGE_PER_SECOND -}}
|
|
config.e2eping.maxMessagePerSecond = {{ .Env.E2EPING_MAX_MESSAGE_PER_SECOND }};
|
|
{{ end }}
|