Преглед на файлове

web: config.js now built from templates
web: many additional variables instrumented from environment

Aaron van Meerten преди 5 години
родител
ревизия
a266c9201f
променени са 2 файла, в които са добавени 247 реда и са изтрити 110 реда
  1. 238 91
      web/rootfs/defaults/config.js
  2. 9 19
      web/rootfs/etc/cont-init.d/10-config

+ 238 - 91
web/rootfs/defaults/config.js

@@ -1,5 +1,45 @@
 /* eslint-disable no-unused-vars, no-var */
-
+{{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "jitsi-meet.example.com" -}}
+{{ $XMPP_MUC_DOMAIN := .Env.XMPP_MUC_DOMAIN | default "conference.example.com" -}}
+{{ $CONFIG_RESOLUTION := .Env.CONFIG_RESOLUTION | default "720" -}}
+{{ $CONFIG_RESOLUTION_WIDTH := .Env.CONFIG_RESOLUTION_WIDTH | default "1280" -}}
+{{ $CONFIG_DISABLE_SIMULCAST := .Env.CONFIG_DISABLE_SIMULCAST | default "false" -}}
+{{ $CONFIG_ENABLE_REMB := .Env.CONFIG_ENABLE_REMB | default "true" -}}
+{{ $CONFIG_ENABLE_TCC := .Env.CONFIG_ENABLE_TCC | default "true" -}}
+{{ $ENABLE_RECORDING := .Env.ENABLE_RECORDING | default "false" | toBool -}}
+{{ $CONFIG_FILE_RECORDING_SERVICE_ENABLED := .Env.CONFIG_FILE_RECORDING_SERVICE_ENABLED | default "false" | toBool -}}
+{{ $CONFIG_FILE_RECORDING_SERVICE_SHARING_ENABLED := .Env.CONFIG_FILE_RECORDING_SERVICE_SHARING_ENABLED | default "false" | toBool -}}
+{{ $CONFIG_EXTERNAL_CONNECT := .Env.CONFIG_EXTERNAL_CONNECT | default "false" | toBool -}}
+{{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.example.com" -}}
+{{ $CONFIG_CHROME_MIN_EXT_VERSION := .Env.CONFIG_CHROME_MIN_EXT_VERSION | default "0.1" -}}
+{{ $CONFIG_ENABLE_USER_ROLES_BASED_ON_TOKEN := .Env.CONFIG_ENABLE_USER_ROLES_BASED_ON_TOKEN | default "false" -}}
+{{ $CONFIG_TESTING_OCTO_PROBABILITY := .Env.CONFIG_TESTING_OCTO_PROBABILITY | default "0" -}}
+{{ $CONFIG_TESTING_CAP_SCREENSHARE_BITRATE := .Env.CONFIG_TESTING_CAP_SCREENSHARE_BITRATE | default "1" -}}
+{{ $ENABLE_LIPSYNC := .Env.ENABLE_LIPSYNC | default "false" | toBool -}}
+{{ $ENABLE_SUBDOMAINS := .Env.ENABLE_SUBDOMAINS | default "false" | toBool -}}
+{{ $ENABLE_GUESTS := .Env.ENABLE_GUESTS | default "false" | toBool -}}
+{{ $ENABLE_AUTH := .Env.ENABLE_AUTH | default "false" | toBool -}}
+{{ $ENABLE_TRANSCRIPTIONS := .Env.ENABLE_TRANSCRIPTIONS | default "false" | toBool -}}
+{{ $CONFIG_ENABLE_STATS_ID := .Env.CONFIG_ENABLE_STATS_ID | default "false" | toBool -}}
+{{ $CONFIG_OPEN_BRIDGE_CHANNEL := .Env.CONFIG_OPEN_BRIDGE_CHANNEL | default "datachannel" -}}
+{{ $CONFIG_STEREO := .Env.CONFIG_STEREO | default "false" | toBool -}}
+{{ $CONFIG_ENABLE_TALK_WHILE_MUTED := .Env.CONFIG_ENABLE_TALK_WHILE_MUTED | default "false" | toBool -}}
+{{ $CONFIG_ENABLE_NO_AUDIO_DETECTION := .Env.CONFIG_ENABLE_NO_AUDIO_DETECTION | default "false" | toBool -}}
+{{ $CONFIG_ENABLE_CALENDAR := .Env.CONFIG_ENABLE_CALENDAR | default "false" | toBool -}}
+{{ $CONFIG_REQUIRE_DISPLAY_NAME := .Env.CONFIG_REQUIRE_DISPLAY_NAME | default "false" | toBool -}}
+{{ $CONFIG_REQUIRE_DISPLAY_NAME := .Env.CONFIG_REQUIRE_DISPLAY_NAME | default "false" | toBool -}}
+{{ $CONFIG_START_VIDEO_MUTED := .Env.CONFIG_START_VIDEO_MUTED | default 10 -}}
+{{ $CONFIG_START_AUDIO_MUTED := .Env.CONFIG_START_AUDIO_MUTED | default 10 -}}
+{{ $CONFIG_USE_STUN_TURN := .Env.CONFIG_USE_STUN_TURN | default "true" | toBool -}}
+
+
+
+{{ if $ENABLE_SUBDOMAINS -}}
+var subdomain = "<!--# echo var="subdomain" default="" -->";
+if (subdomain) {
+    subdomain = subdomain.substr(0,subdomain.length-1).split('.').join('_').toLowerCase() + '.';
+}
+{{ end -}}
 var config = {
     // Configuration
     //
@@ -10,47 +50,48 @@ var config = {
     // Custom function which given the URL path should return a room name.
     // getroomnode: function (path) { return 'someprefixpossiblybasedonpath'; },
 
-
     // Connection
     //
 
     hosts: {
         // XMPP domain.
-        domain: 'jitsi-meet.example.com',
-
+        domain: '{{ $XMPP_DOMAIN }}',
+        {{ if $ENABLE_GUESTS -}}
         // When using authentication, domain for guest users.
-        // anonymousdomain: 'guest.example.com',
-
+        anonymousdomain: '{{ .Env.XMPP_GUEST_DOMAIN }}',
+        {{ end -}}
+        {{ if $ENABLE_AUTH -}}
         // Domain for authenticated users. Defaults to <domain>.
-        // authdomain: 'jitsi-meet.example.com',
-
-        // Jirecon recording component domain.
-        // jirecon: 'jirecon.jitsi-meet.example.com',
-
-        // Call control component (Jigasi).
-        // call_control: 'callcontrol.jitsi-meet.example.com',
-
+        authdomain: '{{ .Env.XMPP_DOMAIN }}',
+        {{ end -}}
         // Focus component domain. Defaults to focus.<domain>.
-        // focus: 'focus.jitsi-meet.example.com',
-
+        focus: 'focus.{{ $XMPP_DOMAIN }}',
         // XMPP MUC domain. FIXME: use XEP-0030 to discover it.
-        muc: 'conference.jitsi-meet.example.com'
+        {{ if $ENABLE_SUBDOMAINS -}}
+        muc: 'conference.'+subdomain+'{{ $XMPP_DOMAIN }}'
+        {{ else -}}
+        muc: {{ $XMPP_MUC_DOMAIN }}'
+        {{ end -}}
     },
-
     // BOSH URL. FIXME: use XEP-0156 to discover it.
-    bosh: '//jitsi-meet.example.com/http-bind',
+    bosh: '{{ if .Env.CONFIG_BOSH_HOST }}https://{{ $.Env.CONFIG_BOSH_HOST }}{{ end }}/http-bind',
+    {{ if .Env.ENABLE_WEBSOCKETS -}}
+    websocket: 'wss://{{ if .Env.CONFIG_BOSH_HOST }}{{ .Env.CONFIG_BOSH_HOST }}{{end}}/xmpp-websocket',
+    {{ end -}}
 
     // The name of client node advertised in XEP-0115 'c' stanza
     clientNode: 'http://jitsi.org/jitsimeet',
 
-    // The real JID of focus participant - can be overridden here
-    // focusUserJid: 'focus@auth.jitsi-meet.example.com',
-
-
     // Testing / experimental features.
-    //
-
     testing: {
+        // enable screensharing bitrate cap
+        capScreenshareBitrate: {{ $CONFIG_TESTING_CAP_SCREENSHARE_BITRATE }},
+
+        // enable octo
+        octo: {
+            probability: {{ $CONFIG_TESTING_OCTO_PROBABILITY }}
+        },
+
         // Enables experimental simulcast support on Firefox.
         enableFirefoxSimulcast: false,
 
@@ -84,7 +125,7 @@ var config = {
     // startAudioOnly: false,
 
     // Every participant after the Nth will start audio muted.
-    // startAudioMuted: 10,
+    startAudioMuted: {{ $CONFIG_START_AUDIO_MUTED }},
 
     // Start calls with audio muted. Unlike the option above, this one is only
     // applied locally. FIXME: having these 2 options is confusing.
@@ -97,26 +138,40 @@ var config = {
     // Video
 
     // Sets the preferred resolution (height) for local video. Defaults to 720.
-    // resolution: 720,
+    resolution: {{ $CONFIG_RESOLUTION }},
 
     // w3c spec-compliant video constraints to use for video capture. Currently
     // used by browsers that return true from lib-jitsi-meet's
     // util#browser#usesNewGumFlow. The constraints are independency from
     // this config's resolution value. Defaults to requesting an ideal aspect
     // ratio of 16:9 with an ideal resolution of 720.
-    // constraints: {
-    //     video: {
-    //         aspectRatio: 16 / 9,
-    //         height: {
-    //             ideal: 720,
-    //             max: 720,
-    //             min: 240
-    //         }
-    //     }
-    // },
+    constraints: {
+        video: {
+            aspectRatio: 16 / 9,
+            height: {
+                ideal: {{ $CONFIG_RESOLUTION }},
+                max: {{ $CONFIG_RESOLUTION }},
+                min: 180
+            },
+            width: {
+                ideal: {{ $CONFIG_RESOLUTION_WIDTH }},
+                max: {{ $CONFIG_RESOLUTION_WIDTH }},
+                min: 320
+            }
+        }
+    },
+
+    // URL for pre-bind BOSH session setup service
+{{ if $CONFIG_EXTERNAL_CONNECT -}}
+    {{ if $ENABLE_SUBDOMAINS -}}
+    externalConnectUrl: '//{{ if .Env.CONFIG_BOSH_HOST }}{{ .Env.CONFIG_BOSH_HOST }}{{ end }}/<!--# echo var="subdir" default="" -->http-pre-bind',
+    {{ else -}}
+    externalConnectUrl: '//{{ if .Env.CONFIG_BOSH_HOST }}{{ .Env.CONFIG_BOSH_HOST }}{{ end }}/http-pre-bind',
+    {{ end -}}
+{{ end -}}
 
     // Enable / disable simulcast support.
-    // disableSimulcast: false,
+    disableSimulcast: {{ $CONFIG_DISABLE_SIMULCAST }},
 
     // Enable / disable layer suspension.  If enabled, endpoints whose HD
     // layers are not in use will be suspended (no longer sent) until they
@@ -128,7 +183,7 @@ var config = {
     disableSuspendVideo: true,
 
     // Every participant after the Nth will start video muted.
-    // startVideoMuted: 10,
+    startVideoMuted: {{ $CONFIG_START_VIDEO_MUTED }},
 
     // Start calls with video muted. Unlike the option above, this one is only
     // applied locally. FIXME: having these 2 options is confusing.
@@ -147,8 +202,11 @@ var config = {
     // Desktop sharing
 
     // The ID of the jidesha extension for Chrome.
+    {{ if .Env.CONFIG_CHROME_EXT_ID }}
+    desktopSharingChromeExtId: '{{.Env.CONFIG_CHROME_EXT_ID}}',
+    {{ else }}
     desktopSharingChromeExtId: null,
-
+    {{ end }}
     // Whether desktop sharing should be disabled on Chrome.
     // desktopSharingChromeDisabled: false,
 
@@ -157,7 +215,7 @@ var config = {
     desktopSharingChromeSources: [ 'screen', 'window', 'tab' ],
 
     // Required version of Chrome extension
-    desktopSharingChromeMinExtVersion: '0.1',
+    desktopSharingChromeMinExtVersion: '{{ $CONFIG_CHROME_MIN_EXT_VERSION }}',
 
     // Whether desktop sharing should be disabled on Firefox.
     // desktopSharingFirefoxDisabled: false,
@@ -174,32 +232,45 @@ var config = {
     // Recording
 
     // Whether to enable file recording or not.
-    // fileRecordingsEnabled: false,
+    {{ if $ENABLE_RECORDING }}
+    hiddenDomain: '{{ $XMPP_RECORDER_DOMAIN }}',
+    fileRecordingsEnabled: true,
+
+    // Whether to enable live streaming or not.
+    liveStreamingEnabled: true,
+    {{ if .Env.CONFIG_DROPBOX_APPKEY }}
     // Enable the dropbox integration.
-    // dropbox: {
-    //     appKey: '<APP_KEY>' // Specify your app key here.
-    //     // A URL to redirect the user to, after authenticating
-    //     // by default uses:
-    //     // 'https://jitsi-meet.example.com/static/oauth.html'
-    //     redirectURI:
-    //          'https://jitsi-meet.example.com/subfolder/static/oauth.html'
-    // },
+    dropbox: {
+        // Specify your app key here.
+        appKey: '{{ .Env.CONFIG_DROPBOX_APPKEY }}',
+    {{ if .Env.CONFIG_DROPBOX_REDIRECT_URI }}
+        // A URL to redirect the user to, after authenticating
+        // by default uses:
+        // 'https://jitsi-meet.example.com/static/oauth.html'
+        redirectURI: '{{ .Env.CONFIG_DROPBOX_REDIRECT_URI }}'
+    {{ end }}
+    },
+    {{ end }}
+    {{ if $CONFIG_FILE_RECORDING_SERVICE_ENABLED }}
     // 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)
-    // fileRecordingsServiceEnabled: false,
+    fileRecordingsServiceEnabled: true,
+    {{ end }}
+    {{ if $CONFIG_FILE_RECORDING_SERVICE_SHARING_ENABLED }}
     // Whether to show the possibility to share file recording with other people
     // (e.g. meeting participants), based on the actual implementation
     // on the backend.
-    // fileRecordingsServiceSharingEnabled: false,
-
-    // Whether to enable live streaming or not.
-    // liveStreamingEnabled: false,
+    fileRecordingsServiceSharingEnabled: true,
+    {{ end }}
+    {{ end }}
 
+    {{ if $ENABLE_TRANSCRIPTIONS }}
     // Transcription (in interface_config,
     // subtitles and buttons can be configured)
-    // transcribingEnabled: false,
+    transcribingEnabled: true,
+    {{ end }}
 
     // Misc
 
@@ -213,30 +284,38 @@ var config = {
     // (draft-holmer-rmcat-transport-wide-cc-extensions-01). This setting
     // affects congestion control, it practically enables send-side bandwidth
     // estimations.
-    // enableTcc: true,
+    enableTcc:  {{ $CONFIG_ENABLE_TCC }},
 
     // Disables or enables REMB (the default is in Jicofo and set to false)
     // (draft-alvestrand-rmcat-remb-03). This setting affects congestion
     // control, it practically enables recv-side bandwidth estimations. When
     // both TCC and REMB are enabled, TCC takes precedence. When both are
     // disabled, then bandwidth estimations are disabled.
-    // enableRemb: false,
+    enableRemb: {{ $CONFIG_ENABLE_REMB }},
 
     // Defines the minimum number of participants to start a call (the default
     // is set in Jicofo and set to 2).
     // minParticipants: 2,
 
+    {{ if $CONFIG_USE_STUN_TURN -}}
     // Use XEP-0215 to fetch STUN and TURN servers.
-    // useStunTurn: true,
+    useStunTurn: true,
+    {{ else -}}
+    // Skip STUN and TURN.
+    useStunTurn: false,
+    {{ end -}}
 
     // Enable IPv6 support.
-    // useIPv6: true,
+    {{ if .Env.CONFIG_USE_IPV6 -}}
+    useIPv6: true,
+    {{ end -}}
 
     // Enables / disables a data communication channel with the Videobridge.
     // Values can be 'datachannel', 'websocket', true (treat it as
     // 'datachannel'), undefined (treat it as 'datachannel') and false (don't
     // open any channel).
     // openBridgeChannel: true,
+    openBridgeChannel: '{{ $CONFIG_OPEN_BRIDGE_CHANNEL }}', // One of true, 'datachannel', or 'websocket'
 
 
     // UI
@@ -245,8 +324,13 @@ var config = {
     // Use display name as XMPP nickname.
     // useNicks: false,
 
+    {{ if $CONFIG_REQUIRE_DISPLAY_NAME }}
     // Require users to always specify a display name.
-    // requireDisplayName: true,
+    requireDisplayName: true,
+    {{ else }}
+    // No need to specify a display name.
+    requireDisplayName: false,
+    {{ end }}
 
     // Whether to use a welcome page or not. In case it's false a random room
     // will be joined when no room is specified.
@@ -265,7 +349,7 @@ var config = {
     // If true all users without a token will be considered guests and all users
     // with token will be considered non-guests. Only guests will be allowed to
     // edit their profile.
-    enableUserRolesBasedOnToken: false,
+    enableUserRolesBasedOnToken: {{ $CONFIG_ENABLE_USER_ROLES_BASED_ON_TOKEN }},
 
     // Whether or not some features are checked based on token.
     // enableFeaturesBasedOnToken: false,
@@ -283,7 +367,9 @@ var config = {
 
     // Enables calendar integration, depends on googleApiApplicationClientID
     // and microsoftApiApplicationClientID
-    // enableCalendarIntegration: false,
+{{ if $CONFIG_ENABLE_CALENDAR }}
+    enableCalendarIntegration: true,
+{{ end }}
 
     // Stats
     //
@@ -294,15 +380,19 @@ var config = {
     // estimation tests.
     // gatherStats: false,
 
+{{ if .Env.CONFIG_CALLSTATS_ID }}
     // To enable sending statistics to callstats.io you must provide the
     // Application ID and Secret.
-    // callStatsID: '',
-    // callStatsSecret: '',
-
+    callStatsID: '{{ .Env.CONFIG_CALLSTATS_ID }}',
+{{ end }}
+{{ if .Env.CONFIG_CALLSTATS_ID }}
+    callStatsSecret: '{{ .Env.CONFIG_CALLSTATS_SECRET }}',
+{{ end }}
+{{ if $CONFIG_ENABLE_STATS_ID }}
     // enables callstatsUsername to be reported as statsId and used
     // by callstats as repoted remote id
-    // enableStatsID: false
-
+    enableStatsID: true,
+{{ end }}
     // enables sending participants display name to callstats
     // enableDisplayNameInStats: false
 
@@ -329,8 +419,9 @@ var config = {
         enabled: true,
 
         // Use XEP-0215 to fetch STUN and TURN servers.
-        // useStunTurn: true,
-
+        {{ if .Env.CONFIG_P2P_STUNTURN }}
+        useStunTurn: true,
+        {{ end }}
         // The STUN servers that will be used in the peer to peer connections
         stunServers: [
             { urls: 'stun:stun.l.google.com:19302' },
@@ -361,12 +452,21 @@ var config = {
 
     analytics: {
         // The Google Analytics Tracking ID:
-        // googleAnalyticsTrackingId: 'your-tracking-id-UA-123456-1'
-
+        {{ if .Env.CONFIG_GOOGLE_ANALYTICS_ID }}
+        googleAnalyticsTrackingId: '{{ .Env.CONFIG_GOOGLE_ANALYTICS_ID }}',
+        {{ end }}
         // The Amplitude APP Key:
         // amplitudeAPPKey: '<APP_KEY>'
-
+        {{ if .Env.CONFIG_AMPLITUDE_ID }}
+        amplitudeAPPKey: '{{ .Env.CONFIG_AMPLITUDE_ID }}',
+        {{ end }}
+        {{ if .Env.CONFIG_ANALYTICS_WHITELISTED_EVENTS }}
+        whiteListedEvents: [ '{{ join "','" (splitList "," .Env.CONFIG_ANALYTICS_WHITELISTED_EVENTS) }}' ],
+        {{ end }}
         // Array of script URLs to load as lib-jitsi-meet "analytics handlers".
+        {{ if .Env.CONFIG_ANALYTICS_SCRIPT_URLS }}
+        scriptURLs: [ '{{ join "','" (splitList "," .Env.CONFIG_ANALYTICS_SCRIPT_URLS) }}' ],
+        {{ end }}
         // scriptURLs: [
         //      "libs/analytics-ga.min.js", // google-analytics
         //      "https://example.com/my-custom-analytics.js"
@@ -375,11 +475,16 @@ var config = {
 
     // Information about the jitsi-meet instance we are connecting to, including
     // the user region as seen by the server.
-    deploymentInfo: {
+    // deploymentInfo: {
         // shard: "shard1",
         // region: "europe",
         // userRegion: "asia"
-    }
+    // }
+    deploymentInfo: {
+        environment: '{{ .Env.CONFIG_DEPLOYMENTINFO_ENVIRONMENT }}',
+        envType: '{{ .Env.CONFIG_DEPLOYMENTINFO_ENVIRONMENT_TYPE }}',
+        userRegion: '<!--# echo var="http_x_proxy_region" default="" -->',
+    },
 
     // Local Recording
     //
@@ -426,6 +531,63 @@ var config = {
     // the menu has option to flip the locally seen video for local presentations
     // disableLocalVideoFlip: false
 
+
+    // Lipsync hack in jicofo, may not be safe
+    {{ if $ENABLE_LIPSYNC -}}
+    enableLipSync: true,
+    {{ end }}
+    {{ if .Env.CONFIG_START_BITRATE -}}
+    startBitrate: '{{ .Env.CONFIG_START_BITRATE }}',
+    {{ end }}
+    {{ if $CONFIG_STEREO -}}
+    stereo: true,
+    {{ end }}
+    {{ if $CONFIG_ENABLE_TALK_WHILE_MUTED -}}
+    enableTalkWhileMuted: true,
+    {{ end }}
+    {{ if $CONFIG_ENABLE_NO_AUDIO_DETECTION -}}
+    enableNoAudioDetection: true,
+    {{ end }}
+    {{ if .Env.CONFIG_GOOGLE_API_APP_CLIENT_ID -}}
+    googleApiApplicationClientID: '{{ .Env.CONFIG_GOOGLE_API_APP_CLIENT_ID }}',
+    {{ end }}
+    {{ if .Env.CONFIG_MICROSOFT_API_APP_CLIENT_ID -}}
+    microsoftApiApplicationClientID: '{{ .Env.CONFIG_MICROSOFT_API_APP_CLIENT_ID }}',
+    {{ end }}
+    {{ if .Env.CONFIG_CALLSTATS_CUSTOM_SCRIPT_URL -}}
+    callStatsCustomScriptUrl: '{{ .Env.CONFIG_CALLSTATS_CUSTOM_SCRIPT_URL }}',
+    {{ end }}
+    {{ if .Env.ETHERPAD_URL_BASE }}
+    etherpad_base: '{{ .Env.ETHERPAD_URL_BASE }}',
+    {{ end }}
+    {{ if .Env.CONFIG_DIALIN_NUMBERS_URL }}
+    dialInNumbersUrl: '{{ .Env.CONFIG_DIALIN_NUMBERS_URL }}',
+    {{ end }}
+    {{ if .Env.CONFIG_CONFCODE_URL }}
+    dialInConfCodeUrl: '{{ .Env.CONFIG_CONFCODE_URL }}',
+    {{ end }}
+    {{ if .Env.CONFIG_DIALOUT_CODES_URL }}
+    dialOutCodesUrl: '{{ .Env.CONFIG_DIALOUT_CODES_URL }}',
+    {{ end }}
+    {{ if .Env.CONFIG_DIALOUT_AUTH_URL }}
+    dialOutAuthUrl: '{{ .Env.CONFIG_DIALOUT_AUTH_URL }}',
+    {{ end }}
+    {{ if .Env.CONFIG_PEOPLE_SEARCH_URL }}
+    peopleSearchUrl: '{{ .Env.CONFIG_PEOPLE_SEARCH_URL }}',
+    {{ end }}
+    {{ if .Env.CONFIG_PEOPLE_SEARCH_URL }}
+    peopleSearchQueryTypes: ['user','conferenceRooms'],
+    {{ end }}
+    {{ if .Env.CONFIG_INVITE_SERVICE_URL }}
+    inviteServiceUrl: '{{ .Env.CONFIG_INVITE_SERVICE_URL }}',
+    {{ end }}
+    {{ if .Env.CONFIG_INVITE_SERVICE_CALLFLOWS_URL }}
+    inviteServiceCallFlowsUrl: '{{ .Env.CONFIG_INVITE_SERVICE_CALLFLOWS_URL }}',
+    {{ end }}
+
+    {{ if .Env.CONFIG_CHROME_EXTENSION_BANNER_JSON }}
+    chromeExtensionBanner: {{ .Env.CONFIG_CHROME_EXTENSION_BANNER_JSON }},
+    {{ end }}
     // List of undocumented settings used in jitsi-meet
     /**
      _immediateReloadThreshold
@@ -433,23 +595,12 @@ var config = {
      autoRecordToken
      debug
      debugAudioLevels
-     deploymentInfo
-     dialInConfCodeUrl
-     dialInNumbersUrl
-     dialOutAuthUrl
-     dialOutCodesUrl
      disableRemoteControl
      displayJids
-     etherpad_base
-     externalConnectUrl
+     
      firefox_fake_device
-     googleApiApplicationClientID
      iAmRecorder
      iAmSipGateway
-     microsoftApiApplicationClientID
-     peopleSearchQueryTypes
-     peopleSearchUrl
-     requireDisplayName
      tokenAuthUrl
      */
 
@@ -460,20 +611,16 @@ var config = {
      abTesting
      avgRtpStatsN
      callStatsConfIDNamespace
-     callStatsCustomScriptUrl
      desktopSharingSources
      disableAEC
      disableAGC
      disableAP
      disableHPF
      disableNS
-     enableLipSync
-     enableTalkWhileMuted
      forceJVB121Ratio
      hiddenDomain
      ignoreStartMuted
      nick
-     startBitrate
      */
 
 };

+ 9 - 19
web/rootfs/etc/cont-init.d/10-config

@@ -61,28 +61,18 @@ if [[ ! -f /config/nginx/site-confs/default ]]; then
     tpl /defaults/default > /config/nginx/site-confs/default
 fi
 
-if [[ ! -f /config/config.js ]]; then
-    tpl /defaults/config.js > /config/config.js
 
-    if [[ $ENABLE_RECORDING -eq 1 || x$ENABLE_RECORDING == xtrue ]]; then
-        sed -i \
-            -e "/\/\/ Recording.*/a hiddenDomain: '$XMPP_RECORDER_DOMAIN'," \
-            -e "s#// fileRecordingsEnabled:.*#fileRecordingsEnabled: true,#" \
-            -e "s#// liveStreamingEnabled:.*#liveStreamingEnabled: true,#" \
-        /config/config.js
-    fi
+if [[ $ENABLE_CDN -eq 1 || x$ENABLE_CDN == xtrue ]]; then
+    [ -z "$CDN_URL" ] && CDN_URL="https://web-cdn.jitsi.net/"
+    export BV=$(dpkg -s jitsi-meet-web | grep Version | awk '{print $2}'| cut -d'.' -f3 | cut -d'-' -f1)
+    echo "<base href=\"${CDN_URL}${BV}/\" />" > /usr/share/jitsi-meet/base.html
+fi
 
-    if [[ $ENABLE_AUTH -eq 1 ]]; then
-        if [[ $ENABLE_GUESTS -eq 1 ]]; then
-            sed -i \
-                -e "s#// anonymousdomain:.*#anonymousdomain: '${XMPP_GUEST_DOMAIN}',#" \
-                /config/config.js
-        fi
+if [[ ! -f /config/config.js ]]; then
+    [ -z "$XMPP_MUC_DOMAIN" ] && export XMPP_MUC_DOMAIN="conference.$XMPP_DOMAIN"
+    [ -z "$XMPP_RECORDER_DOMAIN" ] && export XMPP_RECORDER_DOMAIN="recorder.$XMPP_DOMAIN"
 
-        sed -i \
-            -e "s#// authdomain:.*#authdomain: '${XMPP_DOMAIN}',#" \
-            /config/config.js
-    fi
+    tpl /defaults/config.js > /config/config.js
 
     if [[ ! -z "${ETHERPAD_URL_BASE}" && -z "$(grep -om1 'etherpad_base:' /config/config.js)" ]]; then
         sed -i \