Environment configuration settings
Available on all plans
self-hosted deployments
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 keyServiceSettings
, then within that object, find the keySiteURL
.
Both self-hosted and Cloud admins can access the following configuration settings in System Console > Environment. Self-hosted admins can also edit the config.json
file as described in the following tables.
Web server
Available on all plans
self-hosted deployments
Configure the network environment in which Mattermost is deployed by going to System Console > Environment > Web Server, or by updating the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Site URL
Available in legacy Enterprise Edition E10/E20
The URL that users use to access Mattermost. The port number is required if it’s not a standard port, such as 80 or 443. This field is required. Select the Test Live URL button in the System Console to validate the Site URL. |
|
Notes:
|
Web server listen address
Available in legacy Enterprise Edition E10/E20
The address and port to which to bind and listen.
Specifying If you choose a port of a lower level (called “system ports” or “well-known ports”, in the range of 0-1023), you must have permissions to bind to that port. |
|
Forward port 80 to 443
Available in legacy Enterprise Edition E10/E20
Forward insecure traffic from port 80 to port 443.
|
|
Web server connection security
Available in legacy Enterprise Edition E10/E20
Connection security between Mattermost clients and the server.
|
|
TLS certificate file
Available in legacy Enterprise Edition E10/E20
The path to the certificate file to use for TLS connection security. String input. |
|
TLS key file
Available in legacy Enterprise Edition E10/E20
The path to the TLS key file to use for TLS connection security. String input. |
|
Use Let’s Encrypt
Available in legacy Enterprise Edition E10/E20
Enable the automatic retrieval of certificates from Let’s Encrypt. See the configuring TLS on Mattermost documentation for more details on setting up Let’s Encrypt.
|
|
Let’s Encrypt certificate cache file
Available in legacy Enterprise Edition E10/E20
The path to the file where certificates and other data about the Let’s Encrypt service will be stored. File path input. |
|
Read timeout
Available in legacy Enterprise Edition E10/E20
Maximum time allowed from when the connection is accepted to when the request body is fully read. Numerical input in seconds. Default is 300 seconds. |
|
Write timeout
Available in legacy Enterprise Edition E10/E20
Numerical input in seconds. Default is 300 seconds. |
|
Idle timeout
Available in legacy Enterprise Edition E10/E20
Set an explicit idle timeout in the HTTP server. This is the maximum time allowed before an idle connection is disconnected. Numerical input in seconds. Default is 300 seconds. |
|
Webserver mode
Available in legacy Enterprise Edition E10/E20
We recommend gzip to improve performance unless your environment has specific restrictions, such as a web proxy that distributes gzip files poorly.
|
|
Enable insecure outgoing connections
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to allow insecure outgoing connections.
|
|
Security note: Enabling this feature makes these connections susceptible to man-in-the-middle attacks. |
Managed resource paths
Available in legacy Enterprise Edition E10/E20
A comma-separated list of paths within the Mattermost domain that are managed by a third party service instead of Mattermost itself. Links to these paths will be opened in a new tab/window by Mattermost apps. For example, if Mattermost is running on
|
|
Note: When using the Mattermost Desktop App, additional configuration is required to open the link within the Desktop App instead of in a browser. See the desktop managed resources documentation for details. |
Reload configuration from disk
Note
Available only on Enterprise plans
Available in legacy Enterprise Edition E10/E20
You must change the database line in the Select the Reload configuration from disk button in the System Console after changing your database configuration. Then, go to Environment > Database and select Recycle Database Connections to complete the reload. |
|
Purge all caches
Available in legacy Enterprise Edition E10/E20
Purge all in-memory caches for sessions, accounts, and channels. Select the Purge All Caches button in the System Console to purge all caches. |
|
Note: Purging the caches may adversely impact performance. Deployments using high availability clusters will attempt to purge all the servers in the cluster |
Websocket URL
Available in legacy Enterprise Edition E10/E20
You can configure the server to instruct clients on where they should try to connect websockets to. String input. |
|
License file location
Note
Available only on Enterprise and Professional plans
Available in legacy Enterprise Edition E10/E20
The path and filename of the license file on disk. On startup, if Mattermost can’t find a valid license in the database from a previous upload, it looks in this path for the license file. String input. Can be an absolute path or a path
relative to the |
|
TLS minimum version
Available in legacy Enterprise Edition E10/E20
The minimum TLS version used by the Mattermost server. String input. Default is 1.2. |
|
Note: This setting only takes effect if you are using the built-in server binary directly, and not using a reverse proxy layer, such as NGINX. |
Trusted proxy IP header
Available in legacy Enterprise Edition E10/E20
Specified headers that will be checked, one by one, for IP addresses (order is important). All other headers are ignored. String array input consisting of header names,
such as |
|
Notes:
|
Enable Strict Transport Security (HSTS)
Available in legacy Enterprise Edition E10/E20
|
|
See the Strict-Transport-Security documentation for details. |
Secure TLS transport expiry
Available in legacy Enterprise Edition E10/E20
The time, in seconds, that the browser remembers a
site is only to be accessed using HTTPS. After this
period, a site can’t be accessed using HTTP unless
Numerical input. Default is 63072000 (2 years). |
|
See the Strict-Transport-Security documentation for details. |
TLS cipher overwrites
Available in legacy Enterprise Edition E10/E20
Set TLS ciphers overwrites to meet requirements from legacy clients which don’t support modern ciphers, or to limit the types of accepted ciphers. If none specified, the Mattermost server assumes a set of currently considered secure ciphers, and allows overwrites in the edge case. String array input. |
|
Notes:
|
Goroutine health threshold
Available in legacy Enterprise Edition E10/E20
Set a threshold on the number of goroutines when the Mattermost system is considered to be in a healthy state. When goroutines exceed this limit, a warning is returned in the server logs. Numeric input. Default is -1 which turns off checking for the threshold. |
|
Allow cookies for subdomains
Available in legacy Enterprise Edition E10/E20
|
|
Cluster log timeout
Note
Available only on Enterprise plans
Available in legacy Enterprise Edition E20
Define the frequency, in milliseconds, of cluster request time logging for performance monitoring. Numerical input. Default is 2000 milliseconds (2 seconds). |
|
See the performance monitoring documentation for details. |
Database
Available on all plans
self-hosted deployments
Configure the database environment in which Mattermost is deployed by going to System Console > Environment > Database, or by editing the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Driver name
Available in legacy Enterprise Edition E10/E20
The type of database. Can be either:
|
|
Data source
Available in legacy Enterprise Edition E10/E20
The connection string to the master database. String input. |
|
To enable SSL:
|
|
MySQL databases When Driver Name is set to To specify collation: "SqlSettings": {
"DataSource":
"<user:pass>@<servername>/mattermost?charset=utf8mb4,utf8&collation=utf8mb4_general_ci",
[...]
}
If collation is omitted, the default collation, "SqlSettings": {
"DataSource": "<user:pass>@<servername>/mattermost?charset=utf8mb4,utf8",
[...]
}
Note: If you’re using MySQL 8.0 or later, the default collation has changed to |
|
PostgreSQL databases When Driver Name is set to |
Maximum idle database connections
Available in legacy Enterprise Edition E10/E20
The maximum number of idle connections held open to the database. Numerical input. Default is 10. |
|
Maximum open connections
Available in legacy Enterprise Edition E10/E20
The maximum number of open connections to the database. Numerical input. Default is 300 for self-hosted deployments, and 100 for Cloud deployments. |
|
Query timeout
Available in legacy Enterprise Edition E10/E20
The amount of time to wait, in seconds, for a response from the database after opening a connection and sending the query. Numerical input in seconds. Default is 30 seconds. |
|
Maximum connection lifetime
Available in legacy Enterprise Edition E10/E20
Maximum lifetime for a connection to the database, in milliseconds. Use this setting to configure the maximum amount of time a connection to the database may be reused Numerical input in milliseconds. Default is 3600000 milliseconds (1 hour). |
|
Maximum connection idle timeout
Available in legacy Enterprise Edition E10/E20
Maximum time a database connection can remain idle, in milliseconds. Numerical input in milliseconds. Default is 300000 (5 minutes). |
|
Minimum hashtag length
Available in legacy Enterprise Edition E10/E20
Minimum number of characters in a hashtag. This value must be greater than or equal to 2. |
|
Note: MySQL databases must be configured to support searching strings shorter than three characters. See the MySQL documentation for details. |
SQL statement logging
Available in legacy Enterprise Edition E10/E20
Executed SQL statements can be written to the log for development.
|
|
Recycle database connections
Note
Available only on Enterprise plans
Available in legacy Enterprise Edition E20
Select the Recycle Database Connections button to reconnect to the configured database. All old connections are closed after 20 seconds. To fail over without downing the server, change the
database line in the |
|
Disable database search
Available in legacy Enterprise Edition E10/E20
When other search engines are configured, such as Elasticsearch, the database can be disabled to perform searches.
|
|
Search behavior in Mattermost depends on which search engines are enabled.
|
Applied schema migrations
Available in legacy Enterprise Edition E10/E20
A list of all migrations that have been applied to the data store based on the version information available in the db_migrations
table. Select About Mattermost from the product menu to review the current database schema version applied to your deployment.
Read replicas
Note
Available only on Enterprise and Professional plans
Available in legacy Enterprise Edition E10 and E20
Specifies the connection strings for the read replica databases. |
|
Note: Each database connection string in the array must be in the same form used for the Data source setting. |
Search replicas
Note
Available only on Enterprise and Professional plans
Available in legacy Enterprise Edition E10 and E20
Specifies the connection strings for the search replica databases. A search replica is similar to a read replica, but is used only for handling search queries. |
|
Note: Each database connection string in the array must be in the same form used for the Data source setting. |
Replica lag settings
Note
Available only on Enterprise plans
Available in legacy Enterprise Edition E20
String array input specifies a connection string and user-defined SQL queries on the database to measure replica lag for a single replica instance. These settings monitor absolute lag based on binlog distance/transaction queue length, and the time taken for the replica to catch up. String array input consists of:
|
|
Examples: For AWS Aurora instances, select server_id, highest_lsn_rcvd-durable_lsn as bindiff from aurora_global_db_instance_status() where server_id=<>
And for AWS Aurora instances, select server_id, visibility_lag_in_msec from aurora_global_db_instance_status() where server_id=<>
For MySQL Group Replication, the absolute lag can be measured from the number of pending transactions in the applier queue: select member_id, count_transactions_remote_in_applier_queue FROM performance_schema.replication_group_member_stats where member_id=<>
|
Elasticsearch
Available on Enterprise plans
self-hosted deployments
Elasticsearch provides enterprise-scale deployments with optimized search performance and prevents performance degradation and timeouts. Learn more about Elasticsearch in our product documentation.
You can configure the Elasticsearch environment in which Mattermost is deployed in System Console > Environment > Elasticsearch. You can also edit the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Enable Elasticsearch indexing
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to index new posts automatically.
|
|
|
Notes:
|
Server connection address
Available in legacy Enterprise Edition E10/E20
The address of the Elasticsearch server. |
|
CA path
Optional path to the Custom Certificate Authority certificates for the Elasticsearch server. |
|
Note: Available from Mattermost v7.8. Can be used in conjunction with basic auth credentials or to replace them. Leave this setting blank to use the default Certificate Authority certificates for the operating system. |
Client certificate path
Optional client certificate for the connection to the Elasticsearch server in the PEM format. |
|
Note: Available from Mattermost v7.8. Can be used in conjunction with basic auth credentials or to replace them. |
Client certificate key path
Optional key for the client certificate in the PEM format. |
|
Note: Available from Mattermost v7.8. Can be used in conjunction with basic auth credentials or to replace them. |
Skip TLS verification
Available in legacy Enterprise Edition E10/E20
The certificate step for TLS connections can be skipped.
|
|
Server username
Available in legacy Enterprise Edition E10/E20
(Optional) The username to authenticate to the Elasticsearch server. String input. |
|
Server password
Available in legacy Enterprise Edition E10/E20
(Optional) The password to authenticate to the Elasticsearch server. String input. |
|
Enable cluster sniffing
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to automatically find and connect to all data nodes in a cluster.
|
|
Select the Test Connection button in the System Console to validate the connection between Mattermost and the Elasticsearch server. |
Bulk indexing
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to start a bulk index of all existing posts in the database. |
|
Select the Index Now button in the System Console to start a bulk index of all posts. If the indexing process is canceled, the index and search results will be incomplete. |
Purge indexes
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to purge the entire Elasticsearch index. Typically only used if the index has corrupted and search isn’t behaving as expected. |
|
Select the Purge Indexes button in the System Console to purge the index. After purging the index, create a new index by selecting the Index Now button. |
Enable Elasticsearch for search queries
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to use Elasticsearch for all search queries using the latest index
|
|
Enable Elasticsearch for autocomplete queries
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to use Elasticsearch for all autocompletion queries on users and channels using the latest index.
|
|
Note: Autocompletion results may be incomplete until a bulk index of the existing users and channels database is finished. |
Post index replicas
Available in legacy Enterprise Edition E10/E20
The number of replicas to use for each post index. Numerical input. Default is 1. |
|
Important note: If this setting is changed, the changed configuration only applies to newly-created indexes. To apply the change to existing indexes, purge and rebuild the index after changing this setting. |
Post index shards
Available in legacy Enterprise Edition E10/E20
The number of shards to use for each post index. Numerical input. Default is 1. |
|
Important note: If this setting is changed, the changed configuration only applies to newly-created indexes. To apply the change to existing indexes, purge and rebuild the index after changing this setting. |
Channel index replicas
Available in legacy Enterprise Edition E10/E20
The number of replicas to use for each channel index. Numerical input. Default is 1. |
|
Channel index shards
Available in legacy Enterprise Edition E10/E20
The number of shards to use for each channel index. Numerical input. Default is 1. |
|
User index replicas
Available in legacy Enterprise Edition E10/E20
The number of replicas to use for each user index. Numerical input. Default is 1. |
|
User index shards
Available in legacy Enterprise Edition E10/E20
The number of shards to use for each user index. Numerical input. Default is 1. |
|
Aggregate search indexes
Available in legacy Enterprise Edition E10/E20
Elasticsearch indexes older than the age specified by this setting, in days, will be aggregated during the daily scheduled job. Numerical input. Default is 365 days. |
|
Note: If you’re using data retention and Elasticsearch, configure this with a value greater than your data retention policy. |
Post aggregator start time
Available in legacy Enterprise Edition E10/E20
The start time of the daily scheduled aggregator job. Must be a 24-hour time stamp in the form Default is 03:00 (3 AM) |
|
Index prefix
Available in legacy Enterprise Edition E10/E20
The prefix added to the Elasticsearch index name. |
|
Note: When this setting is used, all Elasticsearch indexes created by Mattermost are given this prefix. You can set different prefixes so that multiple Mattermost deployments can share an Elasticsearch cluster without the index names colliding. |
Live indexing batch size
Available in legacy Enterprise Edition E10/E20
The number of new posts batched together before they’re added to the Elasticsearch index. Numerical input. Default is 1. |
|
Note: It may be necessary to increase this value to avoid hitting the rate limit of your Elasticsearch cluster on installs handling multiple messages per second. |
Bulk indexing time window
Available in legacy Enterprise Edition E10/E20
The maximum time window, in seconds, for a batch of posts being indexed by the Bulk Indexer. This setting serves as a performance optimization for installs with over ~10 million posts in the database. Numerical input in seconds. Default is 3600 seconds (1 hour). Approximate this value based on the average number of seconds for 2,000 posts to be added to the database on a typical day in production. |
|
Note: Setting this value too low will cause bulk indexing jobs to run slowly. |
Request timeout
Available in legacy Enterprise Edition E10/E20
The timeout, in seconds, for Elasticsearch calls. Numerical input in seconds. Default is 30 seconds. |
|
Trace
Available in legacy Enterprise Edition E10/E20
Options for printing Elasticsearch trace errors.
|
|
File storage
Available on all plans
self-hosted deployments
Configure file storage settings by going to System Console > Environment > File Storage, or by editing the config.json
file as described in the following tables.
Note
Mattermost currently supports storing files on the local filesystem and Amazon S3 or S3-compatible containers. We have tested Mattermost with MinIO and Digital Ocean Spaces products, but not all S3-compatible containers on the market. If you are looking to use other S3-compatible containers, we recommend completing your own testing.
File storage system
Available in legacy Enterprise Edition E10/E20
The type of file storage system used. Can be either Local File System or Amazon S3.
|
|
Local storage directory
Available in legacy Enterprise Edition E10/E20
The local directory to which files are written when the File storage system is set to local. Can be any directory writable by the user Mattermost is running as, and is relative to the directory where Mattermost is installed. Defaults to ./data/. |
|
Note: When File storage system is set to amazons3, this setting has no effect. |
Maximum file size
Available in legacy Enterprise Edition E10/E20
The maximum file size for message attachments.
This value must be specified in megabytes in the
System Console, and in bytes in the The default is |
|
Warning: Verify server memory can support your setting choice. Large file sizes increase the risk of server crashes and failed uploads due to network disruptions. |
|
Note: If you use a proxy or load balancer in front of Mattermost, the following proxy settings must be adjusted accordingly:
|
Enable document search by content
Available in legacy Enterprise Edition E10/E20
Enable users to search the contents of documents attached to messages.
|
|
Note: Document content search results for files shared before upgrading to Mattermost Server v5.35 may be incomplete until an extraction command is executed using the CLI or the mmctl. If this command is not run, users can search older files based on file name only. You can optionally install the following dependencies to extend content searching support in Mattermost to include file formats beyond PDF, DOCX, and ODT, such as DOC, RTF, XML, HTML, and PAGES:
If you choose not to install these dependencies, you’ll see log entries for documents that couldn’t be extracted. Any documents that can’t be extracted are skipped and logged so that content extraction can proceed. |
Enable searching content of documents within ZIP files
Available in legacy Enterprise Edition E10/E20
Enables users to search the contents of compressed ZIP files attached to messages.
|
|
Note: Document content search within ZIP files is available in Mattermost Server from v5.35, with mobile support coming soon. Searching document contents adds load to your server. For large deployments, or teams that share many large, text-heavy documents, we recommend you review our hardware requirements, and test enabling this feature in a staging environment before enabling it in a production environment. |
Amazon S3 bucket
Available in legacy Enterprise Edition E10/E20
The name of the bucket for your S3-compatible object storage instance. A string with the S3-compatible bucket name. |
|
Amazon S3 path prefix
Available in legacy Enterprise Edition E10/E20
The prefix you selected for your Amazon S3 bucket in AWS. A string containing the path prefix. |
|
Amazon S3 region
Available in legacy Enterprise Edition E10/E20
The AWS region you selected when creating your Amazon S3 bucket in AWS. A string with the AWS region containing the bucket. If no region is set, Mattermost attempts to get the appropriate region from AWS, and sets it to us-east-1 if none found. |
|
Note: For MinIO or Digital Ocean Spaces, leave this setting empty. |
Amazon S3 access key ID
Available in legacy Enterprise Edition E10/E20
A string with the access key for the S3-compatible storage instance. Your EC2 administrator can supply you with the Access Key ID. |
|
Note: This is required for access unless you are using an Amazon S3 IAM Role with Amazon S3. |
Amazon S3 endpoint
Available in legacy Enterprise Edition E10/E20
The hostname of your S3-compatible instance. A string with the hostname of the S3-compatible storage instance. Defaults to s3.amazonaws.com. |
|
Note: For Digital Ocean Spaces, the hostname should be set to <region>.digitaloceanspaces.com, where <region> is the abbreviation for the region you selected when setting up the Space. It can be nyc3, ams3, or sgp1. |
Amazon S3 secret access key
Available in legacy Enterprise Edition E10/E20
The secret access key associated with your Amazon S3 Access Key ID. A string with the secret access key for the S3-compatible storage instance. |
|
Enable secure Amazon S3 connections
Available in legacy Enterprise Edition E10/E20
Enable or disable secure Amazon S3 connections.
|
|
Amazon S3 signature v2
Not available in legacy Enterprise Edition E10/E20
By default, Mattermost uses Signature v4 to sign API calls to AWS, but under some circumstances, v2 is required.
|
|
See the AWS documentation for information about when to use the Signature v2 signing process. |
Enable server-side encryption for Amazon S3
Available in legacy Enterprise Edition E20
Enable server-side encryption for Amazon S3.
|
|
Enable Amazon S3 debugging
Available in legacy Enterprise Edition E10/E20
Enable or disable Amazon S3 debugging to capture additional debugging information in system logs
|
|
Select the Test Connection button in the System Console to validate the settings and ensure the user can access the server. |
Initial Font
Available in legacy Enterprise Edition E10/E20
The font used in auto-generated profile pictures with colored backgrounds and username initials. A string with the font file name. Default is nunito-bold.ttf. |
|
Image proxy
Available on all plans
self-hosted deployments
An image proxy is used by Mattermost apps to prevent them from connecting directly to remote self-hosted servers. Configure an image proxy by going to System Console > Environment > Image Proxy, or by editing the config.json
file as described in the following tables.
Enable image proxy
Available in legacy Enterprise Edition E10/E20
An image proxy anonymizes Mattermost app connections and prevents them from accessing insecure content.
|
|
See the image proxy documentation to learn more. |
Image proxy type
Available in legacy Enterprise Edition E10/E20
The type of image proxy used by Mattermost.
|
|
See the image proxy documentation to learn more. |
Remote image proxy URL
Available in legacy Enterprise Edition E10/E20
The URL of the atmos/camo proxy. This setting isn’t needed when using the local image proxy. |
|
Remote image proxy options
Available in legacy Enterprise Edition E10/E20
The URL signing key passed to an atmos/camo image proxy. This setting isn’t needed when using the local image proxy type. |
|
See the image proxy documentation to learn more. |
SMTP
Available on all plans
self-hosted deployments
Configure SMTP email server settings by going to System Console > Environment > SMTP, or by editing the config.json
file as described in the following tables.
SMTP server
Available in legacy Enterprise Edition E10/E20
The location of the SMTP email server used for email notifications. |
|
SMTP server port
Available in legacy Enterprise Edition E10/E20
The port of SMTP email server. Numerical input. |
|
Enable SMTP authentication
Available in legacy Enterprise Edition E10/E20
Enable or disable SMTP authentication.
|
|
SMTP server username
Available in legacy Enterprise Edition E10/E20
The username for authenticating to the SMTP server. String input. |
|
SMTP server password
Available in legacy Enterprise Edition E10/E20
The password associated with the SMTP username. String input. |
|
SMTP connection security
Available in legacy Enterprise Edition E10/E20
Specify connection security for emails sent using SMTP.
|
|
Skip server certificate verification
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to skip the verification of the email server certificate.
|
|
Enable security alerts
Available in legacy Enterprise Edition E10/E20
Enable or disable security alerts.
|
|
See the Telemetry documentation to learn more. |
SMTP server timeout
Available in legacy Enterprise Edition E10/E20
The maximum amount of time, in seconds, allowed for establishing a TCP connection between Mattermost and the SMTP server. Numerical value in seconds. |
|
Push notification server
Available on all plans
self-hosted deployments
Configure Mattermost to enable push notifications to Mattermost clients by going to System Console > Environment > Push Notification Server, or by editing the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Enable push notifications
Available in legacy Enterprise Edition E10/E20
Enable or disable Mattermost push notifications.
|
|
Push notification server location
Available in legacy Enterprise Edition E10/E20
The location of Mattermost Push Notification Service (MPNS), which re-sends push notifications from Mattermost to services like Apple Push Notification Service (APNS) and Google Cloud Messaging (GCM).
|
|
Notes:
|
Maximum notifications per channel
Available in legacy Enterprise Edition E10/E20
The maximum total number of users in a channel before @all, @here, and @channel no longer send desktop, email, or mobile push notifications to maximize performance. Numerical input. Default is 1000. |
|
Note: We recommend increasing this value a little at a time, monitoring system health by tracking performance monitoring metrics, and only increasing this value if large channels have restricted permissions controlling who can post to the channel, such as a read-only Town Square channel. |
High availability
Available on Enterprise plans
self-hosted deployments
You can configure Mattermost as a high availability environment by going to System Console > Environment > High Availability, or by editing the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
In a Mattermost high availability cluster deployment, the System Console is set to read-only, and settings can only be changed by editing the config.json
file directly. However, to test a high availability environment, you can disable ClusterSettings.ReadOnlyConfig
in the config.json
file by setting it to false
. This allows changes applied using the System Console to be saved back to the configuration file.
Enable high availability mode
Available in legacy Enterprise Edition E20
You can enable high availability mode.
|
|
Cluster name
Available in legacy Enterprise Edition E20
The cluster to join by name in a high availability environment. Only nodes with the same cluster name will join together. This is to support blue-green deployments or staging pointing to the same database. |
|
Override hostname
Available in legacy Enterprise Edition E20
You can override the hostname of this server.
|
|
See the high availability cluster documentation for details. |
Use IP address
Available in legacy Enterprise Edition E20
You can configure your high availability environment to communicate using the hostname instead of the IP address.
|
|
Use gossip
Available in legacy Enterprise Edition E20
All cluster traffic uses the gossip protocol.
|
|
Notes:
|
Enable experimental gossip encryption
Available in legacy Enterprise Edition E20
Gossip encryption uses AES-256 by default, and this value isn’t configurable by design.
|
|
Note: Alternatively, you can manually set the |
Enable gossip compression
Available in legacy Enterprise Edition E20
Once all servers in a cluster are upgraded to Mattermost v5.33 or later, we recommend that you disable this configuration setting for better performance.
|
|
Gossip port
Available in legacy Enterprise Edition E20
The port used for the gossip protocol. Both UDP and TCP should be allowed on this port. Numerical input. Default is 8074. |
|
Streaming port
Available in legacy Enterprise Edition E20
The port used for streaming data between servers. Numerical input. Default is 8075. |
|
Read only config
Available in legacy Enterprise Edition E20
|
|
Network interface
Available in legacy Enterprise Edition E20
An IP address used to identify the device that does automatic IP detection in high availability clusters. String input. |
|
Bind address
Available in legacy Enterprise Edition E20
An IP address used to bind cluster traffic to a specific network device. This setting is used primarily for servers with multiple network devices or different Bind Address and Advertise Address like in deployments that involve NAT (Network Address Translation). String input. |
|
Advertise address
Available in legacy Enterprise Edition E20
The IP address used to access the server from other nodes. This settings is used primary when cluster nodes are not in the same network and involve NAT (Network Address Translation). String input. |
|
Maximum idle connections for high availability
Available in legacy Enterprise Edition E20
The maximum number of idle connections held open from one server to all others in the cluster. Numerical input. Default is 100. |
|
Maximum idle connections per host
Available in legacy Enterprise Edition E20
The maximum number of idle connections held open from one server to another server in the cluster. Numerical input. Default is 128. |
|
Idle connection timeout
Available in legacy Enterprise Edition E20
The amount of time, in milliseconds, to leave an idle connection open between servers in the cluster. Numerical input. Default is 90000. |
|
Rate limiting
Available on all plans
self-hosted deployments
Rate limiting prevents your Mattermost server from being overloaded with too many requests, and decreases the risk and impact of third-party applications or malicious attacks on your server. Configure rate limiting settings by going to System Console > Environment > Rate Limiting, or by editing the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Enable rate limiting
Available in legacy Enterprise Edition E10/E20
Enable or disable rate limiting to throttle APIs to a specified number of requests per second.
|
|
Maximum queries per second
Available in legacy Enterprise Edition E10/E20
Throttle the API at this number of requests per second when rate limiting is enabled. Numerical input. Default is 10. |
|
Maximum burst size
Available in legacy Enterprise Edition E10/E20
The maximum number of requests allowed beyond the per second query limit when rate limiting is enabled. Numerical input. Default is 100. |
|
Memory store size
Available in legacy Enterprise Edition E10/E20
The maximum number of user sessions connected to the system as determined by vary rate limit settings when rate limiting is enabled. Numerical input. Default is 10000. Typically set to the number of users in the system. |
|
Vary rate limit by remote address
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to rate limit API access by IP address when rate limiting is enabled.
|
|
Vary rate limit by user
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to rate limit API access by authentication token or not when rate limiting is enabled.
|
|
Vary rate limit by HTTP header
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to vary rate limiting API access by the HTTP header field specified. Recommended when you’re using a proxy.
|
|
Logging
Available on all plans
self-hosted deployments
Configure logging by going to System Console > Environment > Logging, or by editing the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Output logs to console
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to output logs to the console.
|
|
Console log level
Available in legacy Enterprise Edition E10/E20
The level of detail in log events written when Mattermost outputs log messages to the console.
|
|
Output console logs as JSON
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to output console logs as JSON.
|
|
Output logs to file
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to output console logs to a file.
|
|
File log level
Available in legacy Enterprise Edition E10/E20
The level of detail in log events when Mattermost outputs log messages to a file.
|
|
Output file logs as JSON
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to output file logs as JSON.
|
|
File log directory
Available in legacy Enterprise Edition E10/E20
The location of the log files. String input. If left blank, log files are
stored in the |
|
Note: The path you configure must exist, and Mattermost must have write permissions for this directory. |
Enable webhook debugging
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to capture the contents of incoming webhooks to log files for debugging.
|
|
Enable diagnostics and error reporting
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to allow any combination of console, local file, syslog, and TCP socket targets, and send log records to multiple targets. |
|
Output logs to multiple targets
Available in legacy Enterprise Edition E10/E20
Configure Mattermost to allow any combination of console, local file, syslog, and TCP socket targets, and send log records to multiple targets. String input can contain a filespec to another configuration file, a database DSN, or JSON. |
|
Notes:
|
|
See the audit log v2 documentation for additional information. |
Teammate name display
Note
Available only on Enterprise plans
Available in legacy Enterprise Edition E20
This setting isn’t available in the System Console and can only be set in config.json
.
Control Teammate Name Display at the system level.
True: Allows System Admins to control Teammate Name Display at the system level.
False: System Admins cannot control Teammate Name Display at the system level.
This feature’s |
Colorize plain text console logs
This setting isn’t available in the System Console and can only be set in config.json
.
True: When logged events are output to the console as plain text, colorize log levels details.
False: Plain text log details aren’t colorized in the console.
This feature’s |
Session lengths
Available on all plans
self-hosted deployments
User sessions are cleared when a user tries to log in, and sessions are cleared every 24 hours from the sessions database table. Configure session lengths by going to System Console > Environment > Session Lengths, or by editing the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Extend session length with activity
Available in legacy Enterprise Edition E10/E20
Improves the user experience by extending sessions and keeping users logged in if they are active in their Mattermost apps.
|
|
Session length for AD/LDAP and email
Available in legacy Enterprise Edition E10/E20
Set the number of hours counted from the last time a user entered their credentials into the web app or the desktop app to the expiry of the user’s session on email and AD/LDAP authentication. Numerical input in hours. Default is 720 hours. |
|
Note: After changing this setting, the new session length takes effect after the next time the user enters their credentials. |
Session length for mobile
Available in legacy Enterprise Edition E10/E20
Set the number of hours counted from the last time a user entered their credential into the mobile app to the expiry of the user’s session. Numerical input in hours. Default is 720 hours. |
|
Note: After changing this setting, the new session length takes effect after the next time the user enters their credentials. |
Session length for SSO
Available in legacy Enterprise Edition E10/E20
Set the number of hours from the last time a user entered their SSO credentials to the expiry of the user’s session. This setting defines the session length for SSO authentication, such as SAML, GitLab, and OAuth 2.0. Numerical input in hours. Default is 720 hours. Numbers as decimals are also valid values for this configuration setting. |
|
Notes:
|
Session cache
Available in legacy Enterprise Edition E10/E20
Set the number of minutes to cache a session in memory. Numerical input in minutes. Default is 10 minutes. |
|
Session idle timeout
Available in legacy Enterprise Edition E10/E20
The number of minutes from the last time a user was active on the system to the expiry of the user’s session. Once expired, the user will need to log in to continue. Numerical input in minutes. Default is 43200 (30 days). Minimum value is 5 minutes, and a value of 0 sets the time as unlimited. |
|
Notes:
|
Performance monitoring
Available on Enterprise plans
self-hosted deployments
Configure performance monitoring by going to System Console > Environment > Performance Monitoring, or by editing the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Enable performance monitoring
Available in legacy Enterprise Edition E20
Enable or disable performance monitoring.
|
|
See the performance monitoring documentation to learn more. |
Listen address for performance
Available in legacy Enterprise Edition E20
The port the Mattermost server will listen on to expose performance metrics, when enabled. Numerical input. Default is 8067. |
|
Developer
Available on all plans
self-hosted deployments
Configure developer mode by going to System Console > Environment > Developer, or by editing the config.json
file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect.
Enable testing commands
Available in legacy Enterprise Edition E10/E20
Enable or disable the
|
|
Enable developer mode
Available in legacy Enterprise Edition E10/E20
Enable or disable developer mode.
|
|
Enable client debugging
Available in legacy Enterprise Edition E10/E20
Enable or disable client-side debugging settings found in Settings > Advanced > Debugging for individual users.
|
|
See the client debugging documentation to learn more. |
Allow untrusted internal connections
Available in legacy Enterprise Edition E10/E20
Limit the ability for the Mattermost server to make untrusted requests within its local network. A request is considered “untrusted” when it’s made on behalf of a client. |
|
This setting is a whitelist of local network addresses that can be requested by the Mattermost server. It’s configured as a whitespace-separated list of hostnames, IP addresses, and CIDR ranges that can be accessed. Requests that can only be configured by System Admins are considered trusted and won’t be affected by this setting. Trusted URLs include ones used for OAuth login or for sending push notifications. The following features make untrusted requests and are affected by this setting:
|
|
Some examples of when you may want to modify this setting include:
|
|
Warning: This setting is intended to prevent users located outside your local network from using the Mattermost server to request confidential data from inside your network. Care should be used when configuring this setting to prevent unintended access to your local network. |
|
Notes:
|