Experimental configuration settings

plans-img Available on all plans

deployment-img Cloud and self-hosted deployments

Review and manage the following experimental configuration options in the System Console by selecting the Product Navigate between Channels, collaborative playbooks, and boards using the product menu icon. menu, selecting System Console, and then selecting Experimental > Features:

Tip

System admins managing a self-hosted Mattermost deployment can edit the config.json file as described in the following tables. Each configuration value below includes a JSON path to access the value programmatically in the config.json file using a JSON-aware tool. For example, one LoginButtonColor value is under LdapSettings.

  • If using a tool such as jq, you’d enter: cat config/config.json | jq '.LdapSettings.LoginButtonColor'

  • When working with the config.json file manually, look for an object such as LdapSettings, then within that object, find the key LoginButtonColor.


Experimental System Console configuration settings

AD/LDAP login button color

Specify the color of the AD/LDAP login button for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile app.

String input. Default is #0000.

  • System Config path: Experimental > Features

  • config.json setting: LdapSettings > LoginButtonColor > "#0000"

  • Environment variable: MM_LDAPSETTINGS_LOGINBUTTONCOLOR

AD/LDAP login button border color

Note

plans-img-yellow Available only on Enterprise and Professional plans

Specify the color of the AD/LDAP login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile app.

String input. Default is #2389D7.

  • System Config path: Experimental > Features

  • config.json setting: LdapSettings > LoginButtonBorderColor > "#2389D7"

  • Environment variable: MM_LDAPSETTINGS_LOGINBUTTONBORDERCOLOR

AD/LDAP login button text color

Note

plans-img-yellow Available only on Enterprise and Professional plans

Specify the color of the AD/LDAP login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile app.

String input. Default is #2389D7.

  • System Config path: Experimental > Features

  • config.json setting: LdapSettings > LoginButtonTextColor > "#2389D7"

  • Environment variable: MM_LDAPSETTINGS_LOGINBUTTONTEXTCOLOR

Change authentication method

Note

plans-img-yellow Available only on Enterprise and Professional plans

This setting controls whether users can change their authentication method to any method that is enabled on the server.

  • True: Users can change their sign-in method to any that is enabled on the server, either via their Profile or the APIs.

  • False: Users can’t change their sign-in method, regardless of which authentication options are enabled.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > ExperimentalEnableAuthenticationTransfer > true

  • Environment variable: MM_SERVICESETTINGS_EXPERIMENTALENABLEAUTHENTICATIONTRANSFER

Email batching buffer size

Specify the maximum number of notifications batched into a single email.

Numerical input. Default is 256 notifications.

  • System Config path: Experimental > Features

  • config.json setting: EmailSettings > EmailBatchingBufferSize > 256

  • Environment variable: MM_EMAILSETTINGS_EMAILBATCHINGBUFFERSIZE

Note

  • We recommend increasing the buffer size from the default value if you see the following error in the Mattermost logs: Email batching job's receiving buffer was full. Please increase the EmailBatchingBufferSize. Falling back to sending immediate mail. Increasing this value will ensure emails are queued up, without impacting server performance.

  • Notifications will be sent instantly if the queue of emails exceeds the email batching interval value configured.

Email batching interval

Specify the maximum frequency, in seconds, in which the batching job checks for new notifications.

Numerical input. Default is 30 seconds.

  • System Config path: Experimental > Features

  • config.json setting: EmailSettings > EmailBatchingInterval > 30

  • Environment variable: MM_EMAILSETTINGS_EMAILBATCHINGINTERVAL

Note

  • We recommend decreasing the email batching interval from the default value if you see the following error in the Mattermost logs: Email batching job's receiving buffer was full. Please increase the EmailBatchingBufferSize. Falling back to sending immediate mail..

  • Longer batching intervals may increase performance.

  • Notifications will be sent instantly if the queue of emails exceeds the email batching interval configured.

Email login button color

Specify the color of the email login button for white labeling purposes. Use a hex code with a #-sign before the code. This configuration setting only applies to the mobile app.

String input. Default is #0000.

  • System Config path: Experimental > Features

  • config.json setting: EmailSettings > LoginButtonColor > "#0000"

  • Environment variable: MM_EMAILSETTINGS_LOGINBUTTONCOLOR

Email login button border color

Specify the color of the email login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile app.

String input. Default is #2389D7.

  • System Config path: Experimental > Features

  • config.json setting: EmailSettings > LoginButtonBorderColor > "#2389D7"

  • Environment variable: MM_EMAILSETTINGS_LOGINBUTTONBORDERCOLOR

Email login button text color

Specify the color of the email login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile app.

String input. Default is #2389D7.

  • System Config path: Experimental > Features

  • config.json setting: EmailSettings > LoginButtonTextColor > "#2389D7"

  • Environment variable: MM_EMAILSETTINGS_LOGINBUTTONTEXTCOLOR

Enable account deactivation

This setting controls whether users can deactivate their own accounts from the Account Settings menu.

  • True: Users can deactivate their own account from Settings > Advanced > Deactivate Account. If a user deactivates their own account, they will get an email notification confirming they were deactivated. Available only when authentication is set to use email/password. Not available when authentication uses SAML or AD/LDAP.

  • False: (Default) Users can’t deactivate their own account.

  • System Config path: Experimental > Features

  • config.json setting: TeamSettings > EnableUserDeactivation > false

  • Environment variable: MM_TEAMSETTINGS_ENABLEUSERDEACTIVATION

Enable automatic replies

This setting controls whether users can set up automatic replies to direct messages.

  • True: Users can enable Automatic Replies in Settings > Notifications. Users set a custom message that will be automatically sent in response to Direct Messages.

  • False: (Default) Disables the Automatic Direct Message Replies feature and hides it from Settings.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > ExperimentalEnableAutomaticReplies > false

  • Environment variable: N/A

Enable channel viewed websocket messages

This setting determines whether channel_viewed WebSocket events are sent, which synchronize unread notifications across clients and devices.

  • true: (Default) Channel viewed WebSocket events are sent.

  • false: Channel viewed WebSocket events are not sent.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > EnableChannelViewedMessages > true

  • Environment variable: Environment Variable: MM_SERVICESETTINGS_ENABLECHANNELVIEWEDMESSAGES

Note

Disabling this experimental configuration setting in larger deployments may improve server performance in the following areas:

  • Reduced Database Load: When channel_viewed events are disabled, the server no longer needs to log these events in the database. This reduces the number of write and update operations, which can be substantial in a busy server with many users frequently switching channels.

  • Decreased Network Traffic: Disabling these events means there are fewer messages sent between the server and clients. This reduction in network traffic can lower latency and improve the overall responsiveness of the server, especially for users with slower connections.

  • Lower Server CPU Usage: Processing channel_viewed events requires CPU resources to handle database transactions and network communication. Without these events, the server’s CPU can be utilized more efficiently for other tasks, improving the overall performance.

  • Improved User Experience: With reduced server load and network traffic, users may experience faster loading times and a more fluid interaction with the application.

However, disabling this configuration setting affects some functionality, such as accurate tracking of read and unread messages in channels. It’s important to balance performance improvements with the needs of your organization and users.

Enable default channel leave/join system messages

This setting determines whether team leave/join system messages are posted in the default town-square channel.

  • true: (Default) Enables leave/join system messages in the default town-square channel.

  • false: Disables leave/join messages from the default town-square channel. These system messages won’t be added to the database either.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > ExperimentalEnableDefaultChannelLeaveJoinMessages > true

  • Environment variable: MM_SERVICESETTINGS_EXPERIMENTALENABLEDEFAULTCHANNELLEAVEJOINMESSAGES

Enable hardened mode

This setting enables or disables hardened mode, which makes user experience trade-offs in the interest of security.

  • true: Enables a hardened mode for Mattermost that makes user experience trade-offs in the interest of security.

  • false: (Default) Disables hardened mode.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > ExperimentalEnableHardenedMode > false

  • Environment variable: MM_SERVICESETTINGS_EXPERIMENTALENABLEHARDENEDMODE

Changes made when hardened mode is enabled:

  • Failed login returns a generic error message instead of a specific message for username and password.

  • When multi-factor authentication (MFA) is enabled, the route to check if a user has MFA enabled always returns true. This causes the MFA input screen to appear even if the user does not have MFA enabled. The user may enter any value to pass the screen. Note that hardened mode does not affect user experience when MFA is enforced.

  • Password reset does not inform the user that they can not reset their SSO account through Mattermost and instead claims to have sent the password reset email.

  • Mattermost sanitizes all 500 errors before returned to the client. Use the supplied request_id to match user facing errors with the server logs.

  • Standard users authenticated via username and password can’t use post props reserved for integrations, such as override_username or override_icon_url.

Enable theme selection

Note

plans-img-yellow Available only on Enterprise and Professional plans

This setting controls whether users can select different themes for their Mattermost interface.

  • true: (Default) Enables the Display > Theme tab in Settings so users can select their theme.

  • false: Users cannot select a different theme. The Display > Theme tab is hidden in Settings.

  • System Config path: Experimental > Features

  • config.json setting: ThemeSettings > EnableThemeSelection > true

  • Environment variable: MM_THEMESETTINGS_ENABLETHEMESELECTION

Allow custom themes

Note

plans-img-yellow Available only on Enterprise and Professional plans

This setting controls whether users can create and use custom themes beyond the default theme options.

  • true: (Default) Enables the Display > Theme > Custom Theme section in Settings.

  • false: Users cannot use a custom theme. The Display > Theme > Custom Theme section is hidden in Settings.

  • System Config path: Experimental > Features

  • config.json setting: ThemeSettings > AllowCustomThemes > true

  • Environment variable: MM_THEMESETTINGS_ALLOWCUSTOMTHEMES

Default theme

Note

plans-img-yellow Available only on Enterprise and Professional plans

Set a default theme that applies to all new users on the system.

Options include "default", "organization", "mattermostDark", and "windows10".

  • System Config path: Experimental > Features

  • config.json setting: ThemeSettings > DefaultTheme > "default"

  • Environment variable: MM_THEMESETTINGS_DEFAULTTHEME

Enable tutorial

This setting controls whether new users are shown a tutorial when they first open Mattermost.

  • true: (Default) Users are prompted with a tutorial when they open Mattermost for the first time after account creation.

  • false: The tutorial is disabled. Users are placed in Town Square when they open Mattermost for the first time after account creation.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > EnableTutorial > true

  • Environment variable: MM_SERVICESETTINGS_ENABLETUTORIAL

Enable onboarding flow

This setting controls whether new users are shown onboarding tasks when they first use Mattermost.

  • true: (Default) New Mattermost users are shown key tasks to complete as part of initial onboarding.

  • false: User onboarding tasks are disabled. Users are placed in Town Square when they open Mattermost for the first time after account creation.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > EnableOnboardingFlow > true

  • Environment variable: MM_SERVICESETTINGS_ENABLEONBOARDINGFLOW

Enable user typing messages

This setting determines whether “user is typing…” messages are displayed below the message box when using Mattermost in a web browser or the desktop app.

  • true: (Default) “User is typing…” messages are displayed.

  • false: “User is typing…” messages are not displayed.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > EnableUserTypingMessages > true

  • Environment variable: MM_SERVICESETTINGS_ENABLEUSERTYPINGMESSAGES

Note

Disabling this experimental configuration setting in larger deployments may improve server performance in the following areas:

  • Reduced Server Load: Typing events generate additional websocket traffic. Disabling them can reduce the amount of data that needs to be handled by the server, improving the overall response time and decreasing server load.

  • Lower Network Traffic: When typing events are enabled, every keystroke generates a network event. This can lead to a significant amount of network traffic, particularly in busy channels. Disabling these events reduces the amount of information transmitted over the network.

  • Client Performance: On the client side, processing typing events requires resources. By not having to handle these events, the client can be more responsive and use less memory and CPU.

User typing timeout

This setting defines how frequently “user is typing…” messages are updated, measured in milliseconds.

Numerical input. Default is 5000 milliseconds.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > TimeBetweenUserTypingUpdatesMilliseconds > 5000

  • Environment variable: N/A

User’s status and profile fetching poll interval

This setting configures the number of milliseconds to wait between fetching user statuses and profiles periodically. Set to 0 to disable.

Numerical input. Default is 3000 milliseconds. Set to 0 to disable.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalSettings > UsersStatusAndProfileFetchingPollIntervalMilliseconds > 3000

  • Environment variable: MM_EXPERIMENTALSETTINGS_USERSSTATUSANDPROFILEFETCHINGPOLLINTERVALMILLISECONDS

Note

Decrease this configuration setting value to increase how often Mattermost checks for and retrieves updated user profile datails. Reducing this value can be particularly helpful to reduce the likelyhood of usernames being displayed in channels as Someone due to outdated or missing data.

Primary team

The primary team of which users on the server are members. When a primary team is set, the options to join other teams or leave the primary team are disabled.

If the team URL of the primary team is https://example.mattermost.com/myteam/, then set the value to myteam in config.json.

String input.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > ExperimentalPrimaryTeam > ""

  • Environment variable: N/A

SAML login button color

Note

plans-img-yellow Available only on Enterprise and Professional plans

Specify the color of the SAML login button for white labeling purposes. Use a hex code that begins with # before the code. This setting only applies to the mobile app.

String input. Default is #34a28b.

  • System Config path: Experimental > Features

  • config.json setting: SamlSettings > LoginButtonColor > "#34a28b"

  • Environment variable: MM_SAMLSETTINGS_LOGINBUTTONCOLOR

SAML login button border color

Note

plans-img-yellow Available only on Enterprise and Professional plans

Specify the color of the SAML login button border for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile app.

String input. Default is #2389D7.

  • System Config path: Experimental > Features

  • config.json setting: SamlSettings > LoginButtonBorderColor > "#2389D7"

  • Environment variable: MM_SAMLSETTINGS_LOGINBUTTONBORDERCOLOR

SAML login button text color

Note

plans-img-yellow Available only on Enterprise and Professional plans

Specify the color of the SAML login button text for white labeling purposes. Use a hex code with a #-sign before the code. This setting only applies to the mobile app.

String input. Default is #ffffff.

  • System Config path: Experimental > Features

  • config.json setting: SamlSettings > LoginButtonTextColor > "#ffffff"

  • Environment variable: MM_SAMLSETTINGS_LOGINBUTTONTEXTCOLOR

Use channel name in email notifications

This setting controls whether channel names are included in email notification subject lines.

  • true: Channel and team name appears in email notification subject lines. Useful for servers using only one team.

  • false: (Default) Only team name appears in email notification subject line.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > UseChannelInEmailNotifications > false

  • Environment variable: MM_EMAILSETTINGS_USECHANNELINEMAILNOTIFICATIONS

User status away timeout

This setting defines the number of seconds after which the user’s status indicator changes to Away, when they are away from Mattermost.

Numerical input. Default is 300 seconds.

  • System Config path: Experimental > Features

  • config.json setting: ServiceSettings > UserStatusAwayTimeout > 300

  • Environment variable: MM_TEAMSETTINGS_USERSTATUSAWAYTIMEOUT

Disable data refetching on browser refocus

This setting disables re-fetching of channel and channel members on browser focus.

  • true: Mattermost won’t refetch channels and channel members when the browser regains focus. This may result in improved performance for users with many channels and channel members.

  • false: (Default) Mattermost will refetch channels and channel members when the browser regains focus.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalSettings > DisableRefetchingOnBrowserFocus > false

  • Environment variable: MM_EXPERIMENTALSETTINGS_DISABLEREFETCHINGONBROWSERFOCUS

Disable wake up reconnect handler

This setting disables attempts to detect when the computer has woken up and refetch data.

  • true: Mattermost won’t attempt to detect when the computer has woken up and refetch data. This might reduce the amount of regular network traffic the app is sending.

  • false: (Default) Mattermost attempts to detect when the computer has woken up and refreshes data.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalSettings > DisableWakeUpReconnectHandler > false

  • Environment variable: MM_EXPERIMENTALSETTINGS_DISABLEWAKEUPRECONNECTHANDLER

Delay channel autocomplete

This setting controls whether or not the channel link autocomplete triggers immediately when after a tilde is typed when composing a message. This setting makes the channel autocomplete, such as ~town-square, less obtrusive for people who use tildes ~ as punctuation.

  • true: The autocomplete appears after the user types a tilde followed by two or more characters. For example, typing ~to will show the autocomplete, but typing ~ will not.

  • false: (Default) The autocomplete appears immediately after the user types a tilde. For example, typing ~ will show the autocomplete.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalSettings > DelayChannelAutocomplete > false

  • Environment variable: MM_EXPERIMENTALSETTINGS_DELAYCHANNELAUTOCOMPLETE

YouTube referrer policy

This setting resolves issues where YouTube video previews display as unavailable.

  • true: The referrer policy for embedded YouTube videos is set to strict-origin-when-cross-origin.

  • false: (Default) The referrer policy is set to no-referrer which enhances user privacy by not disclosing the source URL, but limits the ability to track user engagement and traffic sources in analytics tools.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalSettings > YoutubeReferrerPolicy > false

  • Environment variable: MM_EXPERIMENTALSETTINGS_YOUTUBEREFERRERPOLICY


Experimental Bleve configuration settings

plans-img Available on all plans

deployment-img self-hosted deployments

Access the following configuration settings in the System Console by going to Experimental > Bleve, or by editing the config.json file as described in the following tables:

Enable Bleve indexing

This setting controls whether Bleve indexing is enabled for posts to support search functionality.

  • true: The indexing of new posts occurs automatically.

  • false: (Default) The indexing of new posts does not occur automatically.

  • System Config path: Experimental > Bleve

  • config.json setting: BleveSettings > EnableIndexing > false

  • Environment variable: MM_BLEVESETTINGS_ENABLEINDEXING

Note

Search queries won’t use bleve search until the Enable Bleve for search queries setting is enabled.

Index directory

Directory path to use for storing bleve indexes.

String input.

  • System Config path: Experimental > Bleve

  • config.json setting: BleveSettings > IndexDir > ""

  • Environment variable: MM_BLEVESETTINGS_INDEXDIR

Tip

The bleve index directory path isn’t required to exist within the mattermost directory. When it exists outside of the mattermost directory, no additional steps are needed to preserve or reindex these files as part of a Mattermost upgrade. See our Upgrading Mattermost Server documentation for details.

Bulk index now

Select Index Now to index all users, channels, and posts in the database from oldest to newest. Bleve is available during indexing, but search results may be incomplete until the indexing job is complete.

Purge indexes

Select Purge Index to remove the contents of the Bleve index directory. Search results may be incomplete until a bulk index of the existing database is rebuilt.

Enable Bleve for search queries

This setting controls whether Bleve search engine is used for search queries instead of the default database search.

  • true: Search queries will use bleve search.

  • false: (Default) Search queries will not use bleve search.

  • System Config path: Experimental > Bleve

  • config.json setting: BleveSettings > EnableSearching > false

  • Environment variable: MM_BLEVESETTINGS_ENABLESEARCHING

Enable Bleve for autocomplete queries

This setting controls whether Bleve search engine is used for autocomplete queries instead of the default database search.

  • true: Autocomplete queries will use bleve search.

  • false: (Default) Autocomplete queries will not use bleve search.

  • System Config path: Experimental > Bleve

  • config.json setting: BleveSettings > EnableAutocomplete > false

  • Environment variable: MM_BLEVESETTINGS_ENABLEAUTOCOMPLETE


Experimental audit logging configuration settings

Enable the following settings to output audit events in the System Console by going to Experimental > Features, or in the config.json file.

Note

The ability to enable and configure audit logging is currently in Beta and requires the feature flag ExperimentalAuditSettingsSystemConsoleUI to be set to true.

Advanced logging

plans-img Available only on Enterprise plans

deployment-img Available only for Cloud deployments

Output log and audit records to any combination of console, local file, syslog, and TCP socket targets for a Mattermost Cloud deployment. See the advanced logging documentation for details about logging options.

Enable audit logging

plans-img Available on Enterprise plans

deployment-img Cloud and self-hosted deployments

When audit logging is enabled in a self-hosted instance, you can specify size, backup interval, compression, maximum age to manage file rotation, and timestamps for audit logging, as defined below. You can specify these settings independently for audit events and AD/LDAP events.

  • true: Audit logging files are enabled, and audit files are written locally to a file for a self-hosted deployment.

  • false: (Default) Audit logging files aren’t enabled, and audit logs aren’t written locally to a file for a self-hosted deployment.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalAuditSettings > FileEnabled > false

  • Environment variable: MM_EXPERIMENTALAUDITSETTINGS_FILEENABLED

File name

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

Specify the path to the audit file for a self-hosted deployment.

String input consisting of a user-defined path (e.g. /var/log/mattermost_audit.log).

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalAuditSettings > FileName > ""

  • Environment variable: MM_EXPERIMENTALAUDITSETTINGS_FILENAME

Max file size

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

This is the maximum size, in megabytes, that the file can grow before triggering rotation for a self-hosted deployment.

Numerical input. Default is 100 MB.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalAuditSettings > FileMaxSizeMB > 100

  • Environment variable: MM_EXPERIMENTALAUDITSETTINGS_FILEMAXSIZEMB

Max file age

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

This is the maximum age, in days, a file can reach before triggering rotation for a self-hosted deployment.

Numerical input. Default is 0 days (no limit).

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalAuditSettings > FileMaxAgeDays > 0

  • Environment variable: MM_EXPERIMENTALAUDITSETTINGS_FILEMAXAGEDAYS

Maximum file backups

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

This is the maximum number of rotated files kept for a self-hosted deployment. The oldest is deleted first.

Numerical input. Default is 0 (no limit).

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalAuditSettings > FileMaxBackups > 0

  • Environment variable: MM_EXPERIMENTALAUDITSETTINGS_FILEMAXBACKUPS

File compression

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

When true, rotated files are compressed using gzip in a self-hosted deployment.

  • true: Rotated files are compressed using gzip.

  • false: (Default) Rotated files are not compressed.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalAuditSettings > FileCompress > false

  • Environment variable: MM_EXPERIMENTALAUDITSETTINGS_FILECOMPRESS

Maximum file queue

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

This setting determines how many audit records can be queued/buffered at any point in time when writing to a file for a self-hosted deployment.

Numerical input. Default is 1000 records.

  • System Config path: Experimental > Features

  • config.json setting: ExperimentalAuditSettings > FileMaxQueueSize > 1000

  • Environment variable: MM_EXPERIMENTALAUDITSETTINGS_FILEMAXQUEUESIZE

Note

This setting can be left as default unless you are seeing audit write failures in the server log and need to adjust the value accordingly.

Certificate

Cloud Enterprise customers can upload and manage a certificate for audit logging encryption on Syslog or TCP logging targets. The ability to upload a certificate is only available when the feature flag ExperimentalAuditSettingsSystemConsoleUI is enabled.

Upload the certificate PEM file in the System Console by going to System Console > Audit Log Settings > Certificate and selecting File/Remove Certificate. The certificate file can be stored in the filestore or stored locally on the filesystem.

Advanced logging

plans-img Available on Enterprise plans

deployment-img self-hosted deployments

Output log and audit records to any combination of console, local file, syslog, and TCP socket targets for a Mattermost self-hosted deployment. See the advanced logging documentation for details about logging options.

Experimental configuration settings for self-hosted deployments only

Note

deployment-img-yellow Available only for self-hosted deployments

Access the following self-hosted configuration settings by editing the config.json file as described in the following tables. These configuration settings are not accessible through the System Console.

Tip

Each configuration value below includes a JSON path to access the value programmatically in the config.json file using a JSON-aware tool. For example, the SiteURL value is under ServiceSettings.

  • If using a tool such as jq, you’d enter: cat config/config.json | jq '.ServiceSettings.SiteURL'

  • When working with the config.json file manually, look for the key ServiceSettings, then within that object, find the key SiteURL.

Allowed themes

Note

plans-img-yellow Available only on Enterprise and Professional plans

Select the themes that can be chosen by users when EnableThemeSelection is set to true.

String array input consisting of the options "default", "organization", "mattermostDark", and "windows10", such as ["mattermostDark", "windows10"].

  • System Config path: N/A

  • config.json setting: ThemeSettings > AllowedThemes > []

  • Environment variable: MM_THEMESETTINGS_ALLOWEDTHEMES

Note

This setting isn’t available in the System Console and can only be set in config.json.

File Location

Note

plans-img-yellow Available only on Enterprise plans

Set the file location of the compliance exports. By default, they are written to the exports subdirectory of the configured Local Storage directory.

String input.

  • System Config path: N/A

  • config.json setting: ComplianceSettings > FileLocation > ""

  • Environment variable: MM_COMPLIANCESETTINGS_DIRECTORY

Note

This setting isn’t available in the System Console and can only be set in config.json.

Push notification buffer

Used to control the buffer of outstanding Push Notification messages to be sent. If the number of messages exceeds that number, then the request making the Push Notification will be blocked until there’s room.

Numerical input. Default is 1000 notifications.

  • System Config path: N/A

  • config.json setting: EmailSettings > PushNotificationBuffer > 1000

  • Environment variable: MM_EMAILSETTINGS_PUSHNOTIFICATIONBUFFER

Note

This setting isn’t available in the System Console and can only be set in config.json.

Restrict system admin

  • true: (Default for Cloud deployments) Restricts the system admin from viewing and modifying a subset of server configuration settings from the System Console. Not recommended for use in on-prem installations. This is intended to support Mattermost Private Cloud in giving the system admin role to users but restricting certain actions only for Cloud Admins.

  • false: (Default for self-host deployments) No restrictions are applied to the system admin role.

  • System Config path: N/A

  • config.json setting: ExperimentalSettings > RestrictSystemAdmin > false

  • Environment variable: MM_EXPERIMENTALSETTINGS_RESTRICTSYSTEMADMIN

Note

  • This setting isn’t available in the System Console and can only be set in config.json.

  • The ability to restrict the system admin from viewing and modifying a subset of server configuration settings is currently in Beta.

Enable client-side certification

Note

plans-img-yellow Available only on Enterprise plans

This setting controls whether client-side certificate authentication is enabled for your Mattermost server.

  • true: Enables client-side certification for your Mattermost server. See the documentation to learn more.

  • false: (Default) Client-side certification is disabled.

  • System Config path: N/A

  • config.json setting: ExperimentalSettings > ClientSideCertEnable > false

  • Environment variable: MM_EXPERIMENTALSETTINGS_CLIENTSIDECERTENABLE

Client-side certification login method

Note

plans-img-yellow Available only on Enterprise plans

This setting controls how client-side certificates are used for user authentication. Used in combination with the ClientSideCertEnable configuration setting.

  • primary: After the client side certificate is verified, user’s email is retrieved from the certificate and is used to log in without a password.

  • secondary: (Default) After the client side certificate is verified, user’s email is retrieved from the certificate and matched against the one supplied by the user. If they match, the user logs in with regular email/password credentials.

  • System Config path: N/A

  • config.json setting: ExperimentalSettings > ClientSideCertCheck > "secondary"

  • Environment variable: MM_EXPERIMENTALSETTINGS_CLIENTSIDECERTCHECK

Export output directory

The directory where the exported files are stored. The path is relative to the FileSettings directory. By default, exports are stored under ./data/export.

The directory where the exported files are stored. The path is relative to the FileSettings directory. By default, exports are stored under ./data/export.

String input.

  • System Config path: N/A

  • config.json setting: ExportSettings > Directory > "./export"

  • Environment variable: MM_EXPORTSETTINGS_DIRECTORY

Note

This setting isn’t available in the System Console and can only be set in config.json.

Export retention days

The number of days to retain the exported files before deleting them.

The number of days to retain the exported files before deleting them.

Numerical input.

  • System Config path: N/A

  • config.json setting: ExportSettings > RetentionDays > 30

  • Environment variable: MM_EXPORTSETTINGS_RETENTIOND

Note

This setting isn’t available in the System Console and can only be set in config.json.

Maximum image resolution

Maximum image resolution size for message attachments in pixels.

Maximum image resolution size for message attachments in pixels.

Numerical input. Default value is 33177600 pixels.

  • System Config path: N/A

  • config.json setting: ExperimentalSettings > MaxImageResolution > 33177600

  • Environment variable: MM_FILESETTINGS_MAXIMAGERESOLUTION

Note

This setting isn’t available in the System Console and can only be set in config.json.

Maximum image decoder concurrency

Indicates how many images can be decoded concurrently at once. The default value of -1 configures Mattermost to automatically use the number of CPUs present.

Indicates how many images can be decoded concurrently at once. The default value of -1 configures Mattermost to automatically use the number of CPUs present.

Numerical input.

  • System Config path: N/A

  • config.json setting: ExperimentalSettings > MaxImageDecoderConcurrency > -1

  • Environment variable: MM_FILESETTINGS_MAXIMAGEDECODERCONCURRENCY

Note

  • This setting isn’t available in the System Console and can only be set in config.json.

  • This configuration setting affects the total memory consumption of the server. The maximum memory of a single image is dictated by MaxImageResolution * 24 bytes, where the default maximum image resolution value is 33MB.

  • Therefore, a good rule of thumb to follow is that 33MB * MaxImageDecoderConcurrency * 24 should be less than the total memory for the server.

  • For example, if you have a 4-core server, you should leave aside at least 33 * 4 * 24 = 3168MB memory for image processing. Otherwise, adjust the MaxImageResolution configuration setting to adjust the amount of memory needed for image processing.

Initial font

Font used in auto-generated profile pics with colored backgrounds.

Font used in auto-generated profile pics with colored backgrounds.

String input. Default value is luximbi.ttf.

  • System Config path: N/A

  • config.json setting: ExperimentalSettings > InitialFont > "luximbi.ttf"

  • Environment variable: MM_FILESETTINGS_INITIALFONT

Note

This setting isn’t available in the System Console and can only be set in config.json.

Amazon S3 signature v2

This setting controls which AWS signature version is used for signing API calls to Amazon S3. By default, Mattermost uses Signature V4 to sign API calls to AWS, but under some circumstances, V2 is required.

  • true: Use Signature Version 2 Signing Process.

  • false: (Default) Use Signature Version 4 Signing Process.

  • System Config path: N/A

  • config.json setting: FileSettings > AmazonS3SignV2 > false

  • Environment variable: MM_FILESETTINGS_AMAZONS3SIGNV2

Note

Amazon S3 path

The AmazonS3PathPrefix config setting specifies a subdirectory prefix within your S3 bucket where Mattermost stores files.

Possible values: Any string representing a valid S3 path prefix (e.g., “subdir1/”, “mattermost-files/”, or empty). The setting validates that there’s no leading/trailing whitespace.

String input. Default is empty string (“”).

  • System Config path: N/A

  • config.json setting: FileSettings > AmazonS3PathPrefix > ""

  • Environment variable: MM_FILESETTINGS_AMAZONS3PATHPREFIX

Note

This setting isn’t available in the System Console and can only be set in config.json.

GitLab scope

The GitLab scope experimental config setting controls OAuth scopes for GitLab authentication.

Possible values:

  • Empty string (“”) - Standard OAuth 2.0 flow

  • “profile openid email” - Enables experimental OpenID Connect features

  • Any custom OAuth scope string

The setting becomes “experimental” when it contains “openid”, which enables OpenID Connect functionality with GitLab instead of standard OAuth 2.0.

String input. Default is empty string (“”).

  • System Config path: N/A

  • config.json setting: GitLabSettings > Scope > ""

  • Environment variable: MM_GITLABSETTINGS_SCOPE

Note

This setting isn’t available in the System Console and can only be set in config.json.

Global relay SMTP server timeout

Note

plans-img-yellow Available only on Enterprise plans

The number of seconds that can elapse before the connection attempt to the SMTP server is abandoned.

Numerical input. Default is 1800 seconds.

  • System Config path: N/A

  • config.json setting: GlobalRelaySettings > SMTPServerTimeout > 1800

  • Environment variable: MM_MESSAGEEXPORTSETTINGS_GLOBALRELAYSETTINGS_SMTPSERVERTIMEOUT

Note

This setting isn’t available in the System Console and can only be set in config.json.

Google scope

Note

plans-img-yellow Available only on Enterprise and Professional plans

Standard setting for OAuth to determine the scope of information shared with OAuth client. Recommended setting is profile email.

String input. Default is profile email.

  • System Config path: N/A

  • config.json setting: GoogleSettings > Scope > "profile email"

  • Environment variable: MM_GOOGLESETTINGS_SCOPE

Note

This setting isn’t available in the System Console and can only be set in config.json.

Import input directory

The directory where the imported files are stored. The path is relative to the FileSettings directory. By default, imports are stored under ./data/import.

String input. Default is ./import.

  • System Config path: N/A

  • config.json setting: ImportSettings > Directory > "./import"

  • Environment variable: MM_IMPORTSETTINGS_DIRECTORY

Note

This setting isn’t available in the System Console and can only be set in config.json.

Import retention days

The number of days to retain the imported files before deleting them.

Numerical input. Default is 30 days.

  • System Config path: N/A

  • config.json setting: ImportSettings > RetentionDays > 30

  • Environment variable: MM_IMPORTSETTINGS_RETENTIONDAYS

Note

This setting isn’t available in the System Console and can only be set in config.json.

Export from timestamp

Note

plans-img-yellow Available only on Enterprise plans

Set the Unix timestamp (seconds since epoch, UTC) to export data from.

Numerical input. Default is 0.

  • System Config path: N/A

  • config.json setting: ExportSettings > ExportFromTimestamp > 0

  • Environment variable: MM_MESSAGEEXPORTSETTINGS_EXPORTFROMTIMESTAMP

Note

This setting isn’t available in the System Console and can only be set in config.json.

Block profile rate

Value that controls the fraction of goroutine blocking events reported in the blocking profile. The profiler aims to sample an average of one blocking event per rate nanoseconds spent blocked.

To include every blocking event in the profile, set the rate to 1. To turn off profiling entirely, set the rate to 0.

Numerical input with options 0 and 1. Default is 0.

  • System Config path: N/A

  • config.json setting: ServiceSettings > BlockProfileRate > 0

  • Environment variable: MM_METRICSSETTINGS_BLOCKPROFILERATE

Note

This setting isn’t available in the System Console and can only be set in config.json. Changes to this setting require a server restart before taking effect.

Entra ID Scope

Note

plans-img-yellow Available only on Enterprise and Professional plans

Standard setting for OAuth to determine the scope of information shared with OAuth client. Recommended setting is User.Read.

String input. Default is User.Read.

  • System Config path: N/A

  • config.json setting: Office365Settings > Scope > "User.Read"

  • Environment variable: MM_OFFICE365SETTINGS_SCOPE

Note

This setting isn’t available in the System Console and can only be set in config.json.

Enable plugin uploads

This setting controls whether system administrators can upload plugins through the System Console.

  • true: Enables plugin uploads by system admins at Plugins > Management. If you do not plan to upload a plugin, set to false to control which plugins are installed on your server. See documentation to learn more.

  • false: (Default) Disables plugin uploads on your Mattermost server.

  • System Config path: N/A

  • config.json setting: PluginSettings > EnableUploads > false

  • Environment variable: MM_PLUGINSETTINGS_ENABLEUPLOADS

Note

This setting isn’t available in the System Console and can only be set in config.json.

Allow insecure download URL

This setting isn’t available in the System Console and can only be set in config.json.

This setting controls whether plugins can be downloaded and installed from remote URLs.

  • true: Enables downloading and installing a plugin from a remote URL.

  • false: (Default) Disables downloading and installing a plugin from a remote URL.

  • System Config path: N/A

  • config.json setting: PluginSettings > AllowInsecureDownloadUrl > false

  • Environment variable: MM_PLUGINSETTINGS_ALLOWINSECUREDOWNLOADURL

Enable plugin health check

This setting isn’t available in the System Console and can only be set in config.json.

  • true: (Default) Enables plugin health check to ensure all plugins are periodically monitored, and restarted or deactivated based on their health status. The health check runs every 30 seconds. If the plugin is detected to fail 3 times within an hour, the Mattermost server attempts to restart it. If the restart fails 3 successive times, it’s automatically disabled.

  • false: Disables plugin health check on your Mattermost server.

  • System Config path: N/A

  • config.json setting: PluginSettings > EnableHealthCheck > true

  • Environment variable: MM_PLUGINSETTINGS_ENABLEHEALTHCHECK

Plugin directory

The location of the plugin files. If blank, they are stored in the ./plugins directory. The path that you set must exist and Mattermost must have write permissions in it.

String input. Default is ./plugins.

  • System Config path: N/A

  • config.json setting: PluginSettings > Directory > "./plugins"

  • Environment variable: MM_PLUGINSETTINGS_DIRECTORY

Note

This setting isn’t available in the System Console and can only be set in config.json.

Client plugin directory

The location of client plugin files. If blank, they are stored in the ./client/plugins directory. The path that you set must exist and Mattermost must have write permissions in it.

String input. Default is ./client/plugins.

  • System Config path: N/A

  • config.json setting: PluginSettings > ClientDirectory > "./client/plugins"

  • Environment variable: MM_PLUGINSETTINGS_CLIENTDIRECTORY

Note

This setting isn’t available in the System Console and can only be set in config.json.

Scoping IDP provider ID

Note

plans-img-yellow Available only on Enterprise and Professional plans

Allows an authenticated user to skip the initial login page of their federated Azure AD server, and only require a password to log in.

String input.

  • System Config path: N/A

  • config.json setting: SamlSettings > ScopingIDPProviderId > ""

  • Environment variable: MM_SAMLSETTINGS_SCOPINGIDPPROVIDERID

Note

This setting isn’t available in the System Console and can only be set in config.json.

Scoping IDP provider name

Note

plans-img-yellow Available only on Enterprise and Professional plans

Adds the name associated with a user’s Scoping Identity Provider ID.

String input.

  • System Config path: N/A

  • config.json setting: SamlSettings > ScopingIDPName > ""

  • Environment variable: MM_SAMLSETTINGS_SCOPINGIDPNAME

Note

This setting isn’t available in the System Console and can only be set in config.json.

Group unread channels

The ExperimentalGroupUnreadChannels config setting controls whether unread channels are grouped separately in the sidebar.

Possible values:

  • “disabled” - Unread channels grouping is disabled

  • “default_on” - Enabled by default for new users

  • “default_off” - Available but disabled by default for new users

This setting applies to the new sidebar only. You must disable the Enable Legacy Sidebar configuration setting to see and enable this functionality in the System Console.

String input. Default is “disabled”.

  • System Config path: N/A

  • config.json setting: ServiceSettings > ExperimentalGroupUnreadChannels > "disabled"

  • Environment variable: MM_SERVICESETTINGS_EXPERIMENTALGROUPUNREADCHANNELS

Note

This setting isn’t available in the System Console and can only be set in config.json.

Enable channel category sorting

plans-img Available on all plans

deployment-img Cloud deployments

From Mattermost v10.10, when this experimental feature is enabled, users can assign channels to new or existing channel categories when creating or renaming channels. This configuration setting applies only to cloud-based deployments.

True: Users can assign channels to new or existing channel categories when creating or renaming channels.

False: (Default) Disables the ability to automatically assign channels to new or existing channel categories.

This feature’s config.json setting is "ExperimentalEnableChannelCategorySorting": false with options true and false.

Strict CSRF token enforcement

This setting isn’t available in the System Console and can only be set in config.json.

This setting controls whether additional CSRF (Cross-Site Request Forgery) protection tokens are used for enhanced security.

  • true: Enables CSRF protection tokens for additional hardening compared to the currently used custom header. When the user logs in, an additional cookie is created with the CSRF token contained.

  • false: (Default) Disables CSRF protection tokens.

  • System Config path: N/A

  • config.json setting: ServiceSettings > ExperimentalStrictCSRFEnforcement > false

  • Environment variable: MM_SERVICESETTINGS_EXPERIMENTALSTRICTCSRFENFORCEMENT

Developer flags

The DeveloperFlags config setting controls Content Security Policy (CSP) directives for debugging purposes.

Possible values: Comma-separated key-value pairs in format key=value:

  • “unsafe-eval=true” - Allows eval() functions for faster source maps

  • “unsafe-inline=true” - Allows inline scripts/styles for React/Redux DevTools

  • “unsafe-eval=true,unsafe-inline=true” - Enables both flags

Only flags set to “true” are honored, and unrecognized flags generate warning logs.

This configuration setting requires developer mode to be enabled.

String input. Default is empty string (“”).

  • System Config path: N/A

  • config.json setting: ServiceSettings > DeveloperFlags > ""

  • Environment variable: MM_SERVICESETTINGS_DEVELOPERFLAGS

Note

This setting isn’t available in the System Console and can only be set in config.json.

Enable post search

  • true: (Default) Enables searching for messages in their Mattermost instance.

  • false: Disables searching for messages in their Mattermost instance.

  • System Config path: N/A

  • config.json setting: ServiceSettings > EnablePostSearch > true

  • Environment variable: MM_SERVICESETTINGS_ENABLEPOSTSEARCH

Note

This setting isn’t available in the System Console and can only be set in config.json.

Disabling this experimental configuration setting in larger deployments may improve server performance in the following areas:

  • Reduced Database Load: When post search is enabled, every search query adds additional load to the database. Disabling search reduces these queries, leading to better database performance and lower response times for other operations.

  • Lower Memory Usage: Search functionality often requires indexing of posts, which consumes memory. By disabling search, the memory required for maintaining these indexes is freed up for other uses, improving overall system performance.

  • Faster Write Operations: When post search is enabled, indexing has to be updated with every new post, edit, or deletion. Disabling search avoids this overhead, allowing for faster write operations.

  • Performance Consistency: Without the search feature, the application avoids potential performance bottlenecks and can maintain more consistent performance levels, especially under heavy usage scenarios with a high number of posts.

  • Simplified System Maintenance: Managing search indexes can be complex and resource-intensive. Disabling search simplifies this aspect of system maintenance, potentially reducing the risk of performance issues related to search index corruption or degradation.

However, the ability to search messages in Mattermost is a critical feature for many users, and disabling this feature will result in users seeing an error if they attempt to use the Mattermost Search box. It’s important to balance performance improvements with the needs of your organization and users.

Enable user status updates

  • true: (Default) Enables user status updates.

  • false: Turn status updates off to improve performance. When status updates are off, users appear online only for brief periods when posting a message, and only to members of the channel in which the message is posted.

  • System Config path: N/A

  • config.json setting: ServiceSettings > EnableUserStatuses > true

  • Environment variable: MM_SERVICESETTINGS_ENABLEUSERSTATUSES

Note

  • This setting isn’t available in the System Console and can only be set in config.json.

  • Turn status updates off to improve performance. When status updates are off, users appear online only for brief periods when posting a message, and only to members of the channel in which the message is posted.

Websocket secure port

(Optional) This setting defines the port on which the secured WebSocket is listening using the wss protocol. When the client attempts to make a WebSocket connection it first checks to see if the page is loaded with HTTPS. If so, it will use the secure WebSocket connection. If not, it will use the unsecure WebSocket connection. IT IS HIGHLY RECOMMENDED PRODUCTION DEPLOYMENTS ONLY OPERATE UNDER HTTPS AND WSS.

Numerical input. Default is 443.

  • System Config path: N/A

  • config.json setting: ServiceSettings > WebsocketSecurePort > 443

  • Environment variable: MM_SERVICESETTINGS_WEBSOCKETSECUREPORT

Note

  • This setting isn’t available in the System Console and can only be set in config.json. Changes to this setting require a server restart before taking effect.

  • This is a client only override that doesn’t affect the listening port of the server process which is controlled by the Web server listen address setting.

Websocket port

(Optional) This setting defines the port on which the unsecured WebSocket is listening using the ws protocol. When the client attempts to make a WebSocket connection it first checks to see if the page is loaded with HTTPS. If so, it will use the secure WebSocket connection. If not, it will use the unsecure WebSocket connection. IT IS HIGHLY RECOMMENDED PRODUCTION DEPLOYMENTS ONLY OPERATE UNDER HTTPS AND WSS.

Numerical input. Default is 80.

  • System Config path: N/A

  • config.json setting: ServiceSettings > WebsocketPort > 80

  • Environment variable: MM_SERVICESETTINGS_WEBSOCKETPORT

Note

  • This setting isn’t available in the System Console and can only be set in config.json. Changes to this setting require a server restart before taking effect.

  • This is a client only override that doesn’t affect the listening port of the server process which is controlled by the Web server listen address setting.

Enable local mode for mmctl

This setting isn’t available in the System Console and can only be set in config.json.

This setting controls whether mmctl can connect to the server using local mode through a socket connection.

  • true: Enables local mode for mmctl.

  • false: (Default) Prevents local mode for mmctl.

  • System Config path: N/A

  • config.json setting: ServiceSettings > EnableLocalMode > false

  • Environment variable: MM_SERVICESETTINGS_ENABLELOCALMODE

Tip

When trying to use local mode with mmctl, ensure you’re using the same user when running the server and mmctl, or clean up the socket file before switching to a new user. If you encounter an error like socket file "/var/tmp/mattermost_local.socket" doesn't exists, please check the server configuration for local mode, this can be resolved by setting this configuration setting to true.

Enable local mode socket location

The path for the socket that the server will create for mmctl to connect and communicate through local mode. If the default value for this key is changed, you will need to point mmctl to the new socket path when in local mode, using the --local-socket-path /new/path/to/socket flag in addition to the --local flag.

If nothing is specified, the default path that both the server and mmctl assumes is /var/tmp/mattermost_local.socket.

String input. Default is /var/tmp/mattermost_local.socket.

  • System Config path: N/A

  • config.json setting: ServiceSettings > LocalModeSocketLocation > "/var/tmp/mattermost_local.socket"

  • Environment variable: MM_SERVICESETTINGS_LOCALMODESOCKETLOCATION

Note

This setting isn’t available in the System Console and can only be set in config.json.

Default channels

Default channels every user is added to automatically after joining a new team. Only applies to Public channels, but affects all teams on the server.

When not set, every user is added to the town-square channel by default.

String array input consisting of channel names, such as ["announcement", "developers"].

  • System Config path: N/A

  • config.json setting: TeamSettings > ExperimentalDefaultChannels > []

  • Environment variable: MM_TEAMSETTINGS_EXPERIMENTALDEFAULTCHANNELS

Note

This setting isn’t available in the System Console and can only be set in config.json.

Even if town-square isn’t listed, every user is added to that channels automatically when joining a new team.


Experimental job configuration settings

plans-img Available on all plans

deployment-img self-hosted deployments

Settings to configure how Mattermost schedules and completes periodic tasks such as the deletion of old posts with Data Retention enabled or indexing posts with Elasticsearch. These settings control which Mattermost servers are designated as a Scheduler, a server that queues the tasks at the correct times, and as a Worker, a server that completes the given tasks.

When running Mattermost on a single machine, both RunJobs and RunScheduler should be enabled. Without both of these enabled, Mattermost will not function properly.

When running Mattermost in High Availability mode, RunJobs should be enabled on one or more servers while RunScheduler should be enabled on all servers under normal circumstances. A High Availability cluster-based deployment will have one Scheduler and one or more Workers. See the below sections for more information.

Run jobs

This setting isn’t available in the System Console and can only be set in config.json.

Set whether or not this Mattermost server will handle tasks created by the Scheduler. When running Mattermost on a single machine, this setting should always be enabled.

When running Mattermost in High Availablity mode, one or more servers should have this setting enabled. We recommend that your High Availability cluster-based deployment has one or more dedicated Workers with this setting enabled while the remaining Mattermost app servers have it disabled.

  • true: (Default) This Mattermost server will handle tasks created by the Scheduler.

  • false: This Mattermost server will not handle tasks created by the Scheduler.

  • System Config path: N/A

  • config.json setting: JobSettings > RunJobs > true

  • Environment variable: MM_JOBSETTINGS_RUNJOBS

Run scheduler

This setting isn’t available in the System Console and can only be set in config.json.

Set whether or not this Mattermost server will schedule tasks that will be completed by a Worker. When running Mattermost on a single machine, this setting should always be enabled.

When running Mattermost in High Availablity mode, this setting should always be enabled. In a High Availability cluster-based deployment, exactly one of the servers will be designated as the Scheduler at a time to ensure that duplicate tasks aren’t created. See High Availability documentation for more details.

Warning

We strongly recommend that you not change this setting from the default setting of true as this prevents the ClusterLeader from being able to run the scheduler. As a result, recurring jobs such as LDAP sync, Compliance Export, and data retention will no longer be scheduled. In previous Mattermost Server versions, and this documentation, the instructions stated to run the Job Server with RunScheduler: false. The cluster design has evolved and this is no longer the case.

  • true: (Default) This Mattermost server will schedule tasks that will be completed by a Worker.

  • false: This Mattermost server will not schedule tasks that will be completed by a Worker.

  • System Config path: N/A

  • config.json setting: JobSettings > RunScheduler > true

  • Environment variable: MM_JOBSETTINGS_RUNSCHEDULER

Clean up old database jobs

Defines the threshold in days beyond which older completed database jobs are removed. This setting is disabled by default, and must be set to a value greater than or equal to 0 to be enabled.

Numerical input. Default is -1 (disabled).

  • System Config path: N/A

  • config.json setting: JobSettings > CleanupJobsThresholdDays > -1

  • Environment variable: MM_JOBSETTINGS_CLEANUPJOBSTHRESHOLDDAYS

Note

This setting isn’t available in the System Console and can only be set in config.json.

Clean up outdated database entries

Defines the threshold in days beyond which outdated configurations are removed from the database.

Numerical input. Default is 30 days.

  • System Config path: N/A

  • config.json setting: JobSettings > CleanupConfigThresholdDays > 30

  • Environment variable: MM_JOBSETTINGS_CLEANUPCONFIGTHRESHOLDDAYS

Note

This setting only applies to configuration in the database. It isn’t available in the System Console and can be set via mmctl.