Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jitsi/jitsi-meet/llms.txt

Use this file to discover all available pages before exploring further.

interface_config.js is a legacy configuration file that controls the visual and behavioural aspects of the Jitsi Meet user interface — things like the application name, filmstrip thumbnail height, language detection, and which browsers receive the full experience. On a standard installation it lives alongside config.js at /etc/jitsi/meet/<domain>-interface_config.js.
interface_config.js is deprecated. All options are being progressively migrated to config.js and no new options are being added here. For new deployments, prefer the equivalent config.js settings where they exist. See the inline comments in interface_config.js for which options have already moved.

UI Identity & Branding

APP_NAME
string
default:"Jitsi Meet"
The application name shown in browser tab titles, the welcome page heading, and various UI labels. Change this to white-label the product.
DEFAULT_BACKGROUND
string
default:"#040404"
CSS colour value for the background behind the large video stage. Accepts any valid CSS colour string, e.g. '#1a1a2e' or 'rgb(10, 10, 30)'.
PROVIDER_NAME
string
default:"Jitsi"
The provider or brand name displayed in certain UI strings and the close-page promotional content.
SHOW_JITSI_WATERMARK
boolean
default:"true"
Shows the Jitsi logo watermark in the top-left corner during calls. Set to false for white-label deployments.
SHOW_BRAND_WATERMARK
boolean
default:"false"
Shows a custom brand watermark logo. Requires BRAND_WATERMARK_LINK to be set.
URL of the image to use as a brand watermark when SHOW_BRAND_WATERMARK is true.

Notifications & Presence

DISABLE_JOIN_LEAVE_NOTIFICATIONS
boolean
default:"false"
When true, the toast notifications that appear when participants join or leave the meeting are suppressed. Useful in large meetings where these messages would be distracting.
DISABLE_PRESENCE_STATUS
boolean
default:"false"
Hides the presence status badges (e.g. “busy”, “calling”, “connected”) shown on participant tiles.
DISABLE_DOMINANT_SPEAKER_INDICATOR
boolean
default:"false"
Disables the visual indicator that highlights the current dominant (loudest) speaker.
DISABLE_TRANSCRIPTION_SUBTITLES
boolean
default:"false"
Hides the speech-to-text transcription subtitles panel.

Video & Filmstrip

DISABLE_VIDEO_BACKGROUND
boolean
default:"false"
Prevents the blurred video background effect from being rendered behind the large video stage in supporting browsers.
FILM_STRIP_MAX_HEIGHT
number
default:"120"
Maximum height in pixels of the filmstrip thumbnail tiles. Larger values give clearer previews of remote participants but consume more screen space.
VERTICAL_FILMSTRIP
boolean
default:"true"
When true, the filmstrip is displayed as a vertical column on the right side of the screen. Set to false for a horizontal filmstrip along the bottom.
VIDEO_LAYOUT_FIT
string
default:"both"
Controls how the large video is scaled to fill the available space. Valid values:
  • "both" — fills the full screen (may crop)
  • "height" — fits video height to screen height, preserves ratio
  • "width" — fits video width to screen width, preserves ratio
  • "nocrop" — largest possible size without any cropping
VIDEO_QUALITY_LABEL_DISABLED
boolean
default:"false"
Hides the resolution badge (e.g. “HD”, “720p”) overlaid on the large video.

Welcome Page & Room Names

GENERATE_ROOMNAMES_ON_WELCOME_PAGE
boolean
default:"true"
When true, a random, human-readable room name is pre-populated in the “Start a new meeting” field on the welcome page, making it quicker to start ad-hoc meetings.
DISPLAY_WELCOME_PAGE_CONTENT
boolean
default:"false"
Shows additional custom content below the main welcome page action. Requires a matching content block to be injected.
Shows the footer section on the welcome page.
RECENT_LIST_ENABLED
boolean
default:"true"
Displays the list of recently joined rooms on the welcome page for signed-in users.

Language & Accessibility

LANG_DETECTION
boolean
default:"true"
When true, Jitsi Meet reads the browser’s Accept-Language header and automatically selects the closest available UI translation. Set to false to always use the default language (en).
SETTINGS_SECTIONS
array
Controls which sections appear in the Settings panel. Remove entries to hide those settings panels from users.

Mobile & Browser Compatibility

MOBILE_APP_PROMO
boolean
default:"true"
When true, visitors using a mobile browser see a banner encouraging them to open (or install) the native Jitsi Meet app. Set to false to keep all users in the mobile browser.
OPTIMAL_BROWSERS
array
List of browser identifiers that receive the full, unspoiled experience. Browsers not in this list and not in UNSUPPORTED_BROWSERS are shown a “suboptimal browser” warning. Valid identifiers: chrome, chromium, electron, firefox, safari, webkit.
UNSUPPORTED_BROWSERS
array
default:"[]"
Browsers in this list are redirected to the unsupported-browser page instead of being allowed into the meeting.

Options Moved to config.js

The table below lists interface_config.js options that have been relocated. Use the config.js equivalents for all new deployments.
Removed interface_config.js keyconfig.js equivalent
TOOLBAR_ALWAYS_VISIBLEtoolbarConfig.alwaysVisible
INITIAL_TOOLBAR_TIMEOUTtoolbarConfig.initialTimeout
TOOLBAR_TIMEOUTtoolbarConfig.timeout
TOOLBAR_BUTTONStoolbarButtons
DEFAULT_LOCAL_DISPLAY_NAMEdefaultLocalDisplayName
DEFAULT_REMOTE_DISPLAY_NAMEdefaultRemoteDisplayName
DEFAULT_LOGO_URLdefaultLogoUrl
DISABLE_FOCUS_INDICATORdisableModeratorIndicator
LIVE_STREAMING_HELP_LINKliveStreaming.helpLink

Overriding Options at Runtime via IFrame API

For deployments where Jitsi Meet is embedded with the IFrame API, you can override interfaceConfig values at construction time without modifying the server-side file. Pass an interfaceConfigOverwrite object to the JitsiMeetExternalAPI constructor:
<script src="https://meet.example.com/external_api.js"></script>
<script>
  const api = new JitsiMeetExternalAPI('meet.example.com', {
    roomName: 'MyTeamMeeting',
    parentNode: document.querySelector('#jitsi-container'),

    // Override interface_config.js values for this embed only
    interfaceConfigOverwrite: {
      APP_NAME: 'Acme Meetings',
      DEFAULT_BACKGROUND: '#1a1a2e',
      DISABLE_JOIN_LEAVE_NOTIFICATIONS: true,
      FILM_STRIP_MAX_HEIGHT: 80,
      GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false,
      MOBILE_APP_PROMO: false,
    },

    // You can also override config.js values the same way
    configOverwrite: {
      startWithAudioMuted: true,
      toolbarConfig: {
        alwaysVisible: false,
      },
    },
  });
</script>
interfaceConfigOverwrite only affects the IFrame embed instance — it does not modify the server-side interface_config.js file. This makes it ideal for embedding Jitsi in multiple products with different branding from a single shared server.

Build docs developers (and LLMs) love