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#
Also available in legacy Mattermost Enterprise Edition E10 or 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:
|
Maximum URL length#
The longest URL, in characters, including query parameters, accepted by the Mattermost server. Longer URLs are rejected, and API calls fail with an error. Numeric value. Default is 2048 characters. |
|
Web server listen address#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Forward insecure traffic from port 80 to port 443.
|
|
Web server connection security#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Connection security between Mattermost clients and the server.
|
|
TLS certificate file#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The path to the certificate file to use for TLS connection security. String input. |
|
TLS key file#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The path to the TLS key file to use for TLS connection security. String input. |
|
Use Let’s Encrypt#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Numerical input in seconds. Default is 300 seconds. |
|
Idle timeout#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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. high availability cluster-based deployments will attempt to purge all the servers in the cluster |
Websocket URL#
Also available in legacy Mattermost Enterprise Edition E10 or E20
You can configure the server to instruct clients on where they should try to connect websockets to. String input. |
|
Note: We strongly recommend configuring a single websocket URL that matches the Site URL configuration setting. |
License file location#
Note
Available only on Enterprise and Professional plans
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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)#
Also available in legacy Mattermost Enterprise Edition E10 or E20
|
|
See the Strict-Transport-Security documentation for details. |
Secure TLS transport expiry#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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. |
|
Cluster log timeout#
Note
Available only on Enterprise plans
Also available in legacy Mattermost 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. |
Maximum payload size#
The maximum payload size in bytes for all APIs except APIs that receive a file as an input. For example, the upload attachment API or the API to upload a custom emoji. Numerical value. Default is 300000 (300 kB). |
|
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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The type of database. Can be either:
|
|
Data source#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The connection string to the master database. String input. |
|
||||||||||||||||
PostgreSQL databases When Driver Name is set to To use TLS with PostgreSQL databases The parameter to encrypt connection against a PostgreSQL server is Your database admin must configure the functionality according to the supported values described below:
|
|||||||||||||||||
MySQL databases When Driver Name is set to To specify collation: "SqlSettings": {
"DataSource":
"<mmuser:password>@tcp(hostname or IP:3306)/mattermost?charset=utf8mb4,utf8&collation=utf8mb4_general_ci",
[...]
}
If collation is omitted, the default collation, "SqlSettings": {
"DataSource": "<mmuser:password>@tcp(hostname or IP:3306)/mattermost?charset=utf8mb4,utf8",
[...]
}
Note: If you’re using MySQL 8.0 or later, the default collation has changed to To use TLS with MySQL databases The parameter to encrypt connection against a MySQL server is Your database admin must configure the functionality according to supported values described below:
|
|||||||||||||||||
AWS High Availablity RDS cluster deployments For an AWS High Availability RDS cluster deployment, point this configuration setting to the write/read endpoint at the cluster level to benefit from the AWS failover handling. AWS takes care of promoting different database nodes to be the writer node. Mattermost doesn’t need to manage this. See the high availablility database configuration documentation for details. |
Maximum open connections#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Maximum time a database connection can remain idle, in milliseconds. Numerical input in milliseconds. Default is 300000 (5 minutes). |
|
Minimum hashtag length#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Executed SQL statements can be written to the log for development.
|
|
Recycle database connections#
Note
Available only on Enterprise plans
Also available in legacy Mattermost Enterprise Edition E20
Select the Recycle Database Connections button to manually recycle the connection pool by closing the current set of open connections to the database within 20 seconds, and then creating a new set of connections. To fail over without stopping the server, change the
database line in the |
|
Disable database search#
Also available in legacy Mattermost Enterprise Edition E10 or 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.
|
Note
Disabling this configuration setting in larger deployments may improve server performance in the following areas:
Reduced Database Load: When database search is enabled, every search query executed by users needs to interact with the database, leading to additional load on the database server. By disabling database search, you can avoid these queries, thereby reducing the database load.
Improved Response Time: Database searches can be time-consuming, especially with large datasets. Disabling database search can result in faster response times because the system no longer spends time fetching and processing search results from the database.
Offloading Search to Indexing Services: Disabling database search often means that searches are offloaded to specialized indexing services like Elasticsearch, which are optimized for search operations. These services can provide faster and more efficient search capabilities compared to traditional database searches.
Lower Resource Consumption: Running search queries directly against the database can be resource-intensive (using CPU and memory). With database search disabled, these resources can be allocated to other critical functions, improving overall system performance.
Enhanced Scalability: As the number of users and data volume grow, database search can become less efficient. Specialized search services are designed to scale more effectively, enhancing overall system scalability and performance.
However, the ability to perform database searches in Mattermost is a critical feature for many users, particularly when other search engines aren’t enabled. 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.
Applied schema migrations#
Also available in legacy Mattermost Enterprise Edition E10 or 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.
Active Search Backend#
Read-only display of the currently active backend used for search. Values can include none
, database
, elasticsearch
, or bleve
.
Read replicas#
Note
Available only on Enterprise and Professional plans
Also available in legacy Mattermost Enterprise Edition E10 or 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. |
|
AWS High Availablity RDS cluster deployments For an AWS High Availability RDS cluster deployment, point this configuration setting directly to the underlying read-only node endpoint within the RDS cluster to circumvent the failover/load balancing that AWS/RDS takes care of (except for the write traffic). Mattermost has its own method of balancing the read-only connections, and can also balance those queries to the data source/write+read connection should those nodes fail. See the high availablility database configuration documentation for details. |
Search replicas#
Note
Available only on Enterprise and Professional plans
Also available in legacy Mattermost Enterprise Edition E10 or 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. |
|
AWS High Availablity RDS cluster deployments For an AWS High Availability RDS cluster deployment, point this configuration setting directly to the underlying read-only node endpoint within the RDS cluster to circumvent the failover/load balancing that AWS/RDS takes care of (except for the write traffic). Mattermost has its own method of balancing the read-only connections, and can also balance those queries to the data source/write+read connection should those nodes fail. See the high availablility database configuration documentation for details. |
Replica lag settings#
Note
Available only on Enterprise plans
Also available in legacy Mattermost 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:
|
|
Notes:
|
Configure the replica lag metric based on your database type. See the following tabs for details on configuring this for each database type.
Add the configuration highlighted below to your
SqlSettings.ReplicaLagSettings
array. You only need to add this once because replication statistics for AWS Aurora nodes are visible across all server instances that are members of the cluster. Be sure to change theDataSource
to point to a single node in the group.For more information on Aurora replication stats, see the AWS Aurora documentaion.
Example:
{ "SqlSettings": { "ReplicaLagSettings": [ { "DataSource": "replica-1", "QueryAbsoluteLag": "select server_id, highest_lsn_rcvd-durable_lsn as bindiff from aurora_global_db_instance_status() where server_id=<>", "QueryTimeLag": "select server_id, visibility_lag_in_msec from aurora_global_db_instance_status() where server_id=<>" } ] } }Add the configuration highlighted below to your
SqlSettings.ReplicaLagSettings
array. You only need to add this once because replication statistics for all nodes are shared across all server instances that are members of the MySQL replication group. Be sure to change theDataSource
to point to a single node in the group.For more information on group replication stats, see the MySQL documentation.
Example:
{ "SqlSettings": { "ReplicaLagSettings": [ { "DataSource": "replica-1", "QueryAbsoluteLag": "select member_id, count_transactions_remote_in_applier_queue FROM performance_schema.replication_group_member_stats where member_id=<>", "QueryTimeLag": "" } ] } }
Add the configuration highlighted below to your
SqlSettings.ReplicaLagSettings
array. This query should run against the primary node in your cluster, to do this change theDataSource
to match the SqlSettings.DataSource setting you have configured.For more information on pg_stat_replication, see the PostgreSQL documentation.
Example:
{ "SqlSettings": { "ReplicaLagSettings": [ { "DataSource": "postgres://mmuser:password@localhost:5432/mattermost_test?sslmode=disable&connect_timeout=10.", "QueryAbsoluteLag": "select usename, pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn) as metric from pg_stat_replication;", "QueryTimeLag": "" } ] } }
Grant permissions to the database user for
pg_monitor
. This user should be the same user configured above in theDataSource
string.For more information on roles, see the PostgreSQL documentation.
sudo -u postgres psql postgres=# GRANT pg_monitor TO mmuser;
Save the config and restart all Mattermost nodes.
Navigate to your Grafana instance monitoring Mattermost and open the Mattermost Performance Monitoring v2 dashboard.
The
QueryTimeLag
chart is already setup for you utilizing the existingReplica Lag
chart. If usingQueryAbsoluteLag
metric clone theReplica Lag
chart and edit the query to use the below absolute lag metrics and modify the title to beReplica Lag Absolute
.
mattermost_db_replica_lag_abs{instance=~"$server"}
Replica monitor interval (seconds)#
Available on all plans
self-hosted deployments
Specifies how frequently unhealthy replicas will be monitored for liveness check. Mattermost will dynamically choose a replica if it’s alive. Numerical input. Default is 5 seconds. |
|
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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to index new posts automatically.
|
|
Notes:
|
Backend type#
The type of search backend.
|
|
Important
Mattermost v9.11 introduces support for Elasticsearch v8 and beta support for Opensearch v1.x and v2.x.
Mattermost supports Elasticsearch v7.17+. However, we recommend upgrading your Elasticsearch v7 instance to v8.x. See the Elasticsearch upgrade documentation for details.
Customers using Elasticsearch v8 must set
action.destructive_requires_name
tofalse
inelasticsearch.yml
to enable wildcard operations.
AWS Elasticsearch Customers
The official AWS Elasticsearch v8 client only works from Elasticsearch v7.11 and later. This is a breaking change for customers using AWS Elasticsearch v7.10.x. If you’re using AWS Elasticsearch, you must upgrade to AWS Opensearch. See the AWS Amazon Opensearch upgrade documentation for details.
If you’re using AWS Elasticsearch, you must:
Upgrade to AWS Opensearch for future compatibility. Refer to the Opensearch upgrade documentation for details.
Disable “compatibility mode” in Opensearch.
Upgrade the Mattermost server.
Change the default
ElasticsearchSettings.Backend
configuration value fromelasticsearch
toopensearch
using mmctl config set, or by editing theconfig.json
file manually. This value cannot be changed using the System Console. See the Mattermost Elasticsearch backend type documentation for additional details.Restart the Mattermost server.
Server connection address#
Also available in legacy Mattermost Enterprise Edition E10 or 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. The certificate path should be
/opt/mattermost/data/elasticsearch/
and configured in the System Console as./elasticsearch/cert.pem
.Can be used in conjunction with basic authentication credentials or can 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The certificate step for TLS connections can be skipped.
|
|
Server username#
Also available in legacy Mattermost Enterprise Edition E10 or E20
(Optional) The username to authenticate to the Elasticsearch server. String input. |
|
Server password#
Also available in legacy Mattermost Enterprise Edition E10 or E20
(Optional) The password to authenticate to the Elasticsearch server. String input. |
|
Enable cluster sniffing#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to start a bulk index of all existing posts in the database, from oldest to newest. |
|
Notes:
|
Rebuild channels index#
Purge the channels index adn re-index all channels in the database, from oldest to newest. |
|
Select the Rebuild Channels Index button in the System Console to purge the channels index. Ensure no other indexing jobs are in progress via the Bulk Indexing table before starting this process. During indexing, channel auto-complete is available, but search results may be incomplete until the indexing job is complete. |
Purge indexes#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Purge the entire Elasticsearch index. |
|
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. |
Indexes to skip while purging#
Specify index names to ignore while purging indexes. Separate multiple index names with commas. Use an asterisk (*) to match a sequence of index name characters. |
|
Enable Elasticsearch for search queries#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Important
Core search happens in a relational database and is intended for deployments under about 2-3 million posts and file entries. Beyond that scale, enabling Elasticsearch for search queries is highly recommended.
If you anticipate your Mattermost server reaching more than 2.5 million posts and file entries, we recommend enabling Elasticsearch for optimum search performance before reaching 3 million posts.
For deployments with over 3 million posts, Elasticsearch with dedicated indexing and scaled usage resourcing through cluster support is required to avoid significant performance issues, such as timeouts, with message searches and @mentions.
Configure Mattermost to use Elasticsearch for all search queries using the latest index.
|
|
Note: If indexing is disabled and then re-enabled after an index is created, purge and rebuild the index to ensure complete search results. |
Enable Elasticsearch for autocomplete queries#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The number of replicas to use for each post index. Numerical input. Default is 1. |
|
Important notes:
|
Post index shards#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The number of shards to use for each post index. Numerical input. Default is 1. |
|
Important note: If this configuration 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The number of replicas to use for each channel index. Numerical input. Default is 1. |
|
Note: If there are |
Channel index shards#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The number of shards to use for each channel index. Numerical input. Default is 1. |
|
User index replicas#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The number of replicas to use for each user index. Numerical input. Default is 1. |
|
Note: If there are |
User index shards#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The number of shards to use for each user index. Numerical input. Default is 1. |
|
Aggregate search indexes#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The number of new posts needed before those posts are added to the Elasticsearch index. Once added to the Index, the post becomes searchable. On servers with more than 1 post per second, we suggest setting this value to the average number of posts over a 20 second period of time. Numerical input. Default is 1. Every post is indexed synchronously as they are created. |
|
Note: It may be necessary to increase this value to avoid hitting the rate limit or resource limit of your Elasticsearch cluster on installs handling more than 1 post per second. What exactly happens when I increase this value? The primary impact is that a post will be indexed into Elasticsearch after the threshold of posts is met which then makes the posts searchable within Mattermost. So, if you set this based on our recommendations for larger servers, and you make a post, you cannot find it via search for ~ 10-20 seconds, on average. Realistically, no users should see or feel this impact due to the limited amount of users who are actively searching for a post this quickly. You can set this value to a lower average or higher average as well, depending on your Elasticsearch server specifications. During busy periods, this delay will be faster as more traffic is happening, causing more posts and a quicker time to hit the index number. During slow times, expect the reverse. |
How to find the right number for your server
You must understand how many posts your server makes every minute. Run the query below to calculate your server’s average posts per minute.
Note that this query can be heavy, so we recommend that you run it during non-peak hours. Additionally, you can adjust the
WHERE
clause to see the posts per minute over a different time period. Right now31536000000
represents the number of milliseconds in a year.SELECT AVG(postsPerMinute) as averagePostsPerMinute FROM ( SELECT count(*) as postsPerMinute, date_trunc('minute', to_timestamp(createat/1000)) FROM posts WHERE createAt > ( (extract(epoch from now()) * 1000 ) - 31536000000) GROUP BY date_trunc('minute', to_timestamp(createat/1000)) ) as ppm;
Decide the acceptable index window for your environment, and divide your average posts per minute by that. We suggest 10-20 seconds. Assuming you have
600
posts per minute on average, and you want to index every 20 seconds (60 seconds / 20 seconds = 3`
) you would calculate600 / 3
to come to the number200
. After 200 posts, Mattermost will index the posts into Elasticsearch. So, on average, there would be a 20-second delay in searchability.Edit the
config.json
or run mmctl to modify theLiveIndexingBatchSize
settingIn the ``config.json``
{ "ElasticsearchSettings": { "LiveIndexingBatchSize": 200 } }
Via mmctl
mmctl config set ElasticsearchSettings.LiveIndexingBatchSize 200
Via an environment variable
MM_ELASTICSEARCHSETTINGS_LIVEINDEXINGBATCHSIZE = 200
Restart the Mattermost server.
Batch size#
The number of posts for a single batch during a bulk indexing job. Numerical input. Default is 10000. |
|
Request timeout#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The timeout, in seconds, for Elasticsearch calls. Numerical input in seconds. Default is 30 seconds. |
|
Trace#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The type of file storage system used. Can be either Local File System or Amazon S3.
|
|
Local storage directory#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The maximum file size for message attachments and plugin
uploads. This value must be specified in mebibytes 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. |
|
Notes:
|
Enable document search by content#
Also available in legacy Mattermost Enterprise Edition E10 or 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 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, and HTML:
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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Enables users to search the contents of compressed ZIP files attached to messages.
|
|
Note: Document content search within ZIP files is available, 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The prefix you selected for your Amazon S3 bucket in AWS. A string containing the path prefix. |
|
Amazon S3 region#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Enable or disable secure Amazon S3 connections.
|
|
Amazon S3 signature v2#
Not available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E20
Enable server-side encryption for Amazon S3.
|
|
Enable Amazon S3 debugging#
Also available in legacy Mattermost Enterprise Edition E10 or 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. |
Amazon S3 request timeout#
The amount of time, in milliseconds, before requests to Amazon S3 storage time out. Default is 30000 (30 seconds). |
|
Amazon S3 upload part size#
The size, in bytes, of each part in a multi-part upload to Amazon S3. Numeric value. Default is 5242880 (5MB). |
|
Note: A smaller part size can result in more requests and an increase in latency, while a larger part size can result in more memory being allocated. |
Amazon S3 exported upload part size#
The size, in bytes, of each part in a multi-part exported to Amazon S3. Numeric value. Default is 104857600 (100MB). |
|
Note: A smaller part size can result in more requests and an increase in latency, while a larger part size can result in more memory being allocated. |
Initial font#
Also available in legacy Mattermost Enterprise Edition E10 or 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. |
|
Amazon S3 request timeout#
The amount of time, in milliseconds, before requests to Amazon S3 storage time out. Default is 30000 (30 seconds). |
|
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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The type of image proxy used by Mattermost.
|
|
See the image proxy documentation to learn more. |
Remote image proxy URL#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The URL of the atmos/camo proxy. This setting isn’t needed when using the local image proxy. |
|
Remote image proxy options#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The location of the SMTP email server used for email notifications. |
|
SMTP server port#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The port of SMTP email server. Numerical input. |
|
Enable SMTP authentication#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Enable or disable SMTP authentication.
|
|
SMTP server username#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The username for authenticating to the SMTP server. String input. |
|
SMTP server password#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The password associated with the SMTP username. String input. |
|
SMTP connection security#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Specify connection security for emails sent using SMTP.
|
|
Skip server certificate verification#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to skip the verification of the email server certificate.
|
|
Enable security alerts#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Enable or disable security alerts.
|
|
See the Telemetry documentation to learn more. |
SMTP server timeout#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Enable or disable Mattermost push notifications.
|
|
Note
Mattermost Enterprise, Professional, and Cloud customers can use Mattermost’s SLA-bound Hosted Push Notification Service (HPNS) in one of two locations, including the United States and Germany.
Mattermost Team Edition customers can use Mattermost’s Test Push Notification server (TPNS).
The TPNS is provided for testing push notifications prior to compiling your own service, and isn’t available for Mattermost Cloud deployments. Ensure you’re familiar with its limitations.
Review the mobile push notifications and mobile apps documentation, including guidance on compiling your own mobile apps and MPNS, before deploying to production. See the documentation for details on hosting your own push proxy service.
To confirm push notifications are working, connect to the Mattermost iOS App available on the App Store, or the Mattermost Android App available on Google Play.
If you don’t need or want Mattermost to send mobile push notifications, disabling this configuration setting in larger deployments may improve server performance in the following areas:
Reduced Processing Load: Generating and sending push notifications requires processing power and resources. By disabling them, the server can allocate those resources to other tasks.
Decreased Network Traffic: Push notifications involve network communication. Disabling them reduces the amount of data being transferred, which can enhance overall network performance.
Lower Database Load: Each push notification may involve reading from and writing to the database. Reducing these operations decreases the load on the database, improving response times for other queries.
Faster Response Times: With fewer tasks to handle related to notifications, the system can respond faster to other requests from users, leading to a better user experience.
Simplified Error Handling: Push notification services can sometimes fail or have latency issues, requiring additional error handling. Disabling these notifications simplifies the system’s operations.
However, disabling push notifications can negatively impact user experience, communication efficiency, and overall productivity. It’s important to balance performance improvements with the needs of your organization and users.
Push notification server location#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The physical location of the Mattermost Hosted Push Notification Service (HPNS) server. Select from US (Default) or Germany to automatically populate the Push Notification Server field server URL. |
|
Maximum notifications per channel#
Also available in legacy Mattermost Enterprise Edition E10 or 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 channel.
Reducing this configuration setting value to 10 in larger deployments may improve server performance in the following areas:
Reduced Load on Notification System: Each notification generates a certain amount of computational and network load. By limiting the number of notifications per channel, the system processes fewer notifications, thereby reducing the load on servers.
Database Efficiency: Notifications are typically stored in a database. Fewer notifications mean less frequent database writes and reads, leading to quicker database operations and reduced latency.
Minimized Client Processing: Users’ clients (e.g., desktop and mobile apps) have to fetch and process notifications. With fewer notifications, clients can operate more efficiently, reducing memory and CPU usage on users’ devices.
Improved User Experience: An overload of notifications can lead to performance lags and a cluttered experience for users. Limiting the number ensures that users receive only the most important notifications, which can enhance usability and response times.
Network Bandwidth: High numbers of notifications can consume a lot of bandwidth, particularly if they are being sent to many users. Fewer notifications can lead to lower overall network usage and potentially faster delivery of critical messages.
Server Load Balancing: By reducing the number of notifications, the workload can be more evenly distributed across the servers, leading to better load balancing and preventing any single server from becoming a bottleneck.
High availability#
Available on Enterprise plans
self-hosted deployments
You can configure Mattermost as a high availability cluster-based deployment 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-based 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 cluster-based 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#
Also available in legacy Mattermost Enterprise Edition E20
You can enable high availability mode.
|
|
Cluster name#
Also available in legacy Mattermost Enterprise Edition E20
The cluster to join by name in a high availability cluster-based deployment. 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#
Also available in legacy Mattermost Enterprise Edition E20
You can override the hostname of this server.
|
|
See the high availability cluster-based deployment documentation for details. |
Use IP address#
Also available in legacy Mattermost Enterprise Edition E20
You can configure your high availability cluster-based deployment to communicate using the hostname instead of the IP address.
|
|
Enable experimental gossip encryption#
Also available in legacy Mattermost 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#
Also available in legacy Mattermost Enterprise Edition E20
We recommend that you disable this configuration setting for better performance.
|
|
Gossip port#
Also available in legacy Mattermost 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. |
|
Read only config#
Also available in legacy Mattermost Enterprise Edition E20
|
|
Network interface#
Also available in legacy Mattermost Enterprise Edition E20
An IP address used to identify the device that does automatic IP detection in high availability cluster-based deployments. String input. |
|
Bind address#
Also available in legacy Mattermost 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#
Also available in legacy Mattermost 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. |
|
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.
Important
Mattermost rate limiting configuration settings are intended for small deployments of Mattermost up to a few hundred users, and is not intended for larger, Enterprise-scale deployments.
Enable rate limiting#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Enable or disable rate limiting to throttle APIs to a specified number of requests per second.
|
|
Maximum queries per second#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Throttle the API at this number of requests per second when rate limiting is enabled. Numerical input. Default is 10. Increase this value to accept more requests each second, and decrease this value to allow fewer requests. |
|
Maximum burst size#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The maximum number of requests allowed beyond the per second query limit when rate limiting is enabled. Numerical input. Default is 100. Increase this value to allow for more concurrent requests to be handled, and decrease this value to limit this capacity. |
|
Memory store size#
Also available in legacy Mattermost Enterprise Edition E10 or 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. We recommend setting this value to the expected number of users. A higher value may result in underutilized resources, and a lower value may result in user sessions/tokens expiring too frequently. |
|
Vary rate limit by remote address#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to rate limit API access by IP address when rate limiting is enabled.
|
|
Vary rate limit by user#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to rate limit API access by authentication token or not when rate limiting is enabled.
|
|
Vary rate limit by HTTP header#
Also available in legacy Mattermost Enterprise Edition E10 or 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.
Tip
You can manage additional logging configuration within the config.json
file specifically for Mattermost notifications under NotificationLogSettings
. These settings are equivalent to the configuration settings available under LogSettings
.
Output logs to console#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to output logs to the console.
|
|
Console log level#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The level of detail in log events written when Mattermost outputs log messages to the console.
|
|
Output console logs as JSON#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to output console logs as JSON.
|
|
Note: Typically set to true in a production environment. |
Colorize plain text console logs#
Enables system admins to display plain text log level details in color.
|
|
Output logs to file#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to output console logs to a file.
|
|
Note: Typically set to true in a production environment. When enabled, you can download the
|
File log directory#
Also available in legacy Mattermost Enterprise Edition E10 or 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. |
File log level#
Also available in legacy Mattermost Enterprise Edition E10 or E20
The level of detail in log events when Mattermost outputs log messages to a file.
|
|
Output file logs as JSON#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to output file logs as JSON.
|
|
Note: Typically set to true in a production environment. |
Enable webhook debugging#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Configure Mattermost to capture the contents of incoming webhooks to console and/or file logs for debugging.
|
|
Note: Enable debug logs by changing the file log level to |
Output logs to multiple targets#
Also available in legacy Mattermost Enterprise Edition E10 or 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:
|
|
Note: See the Mattermost logging documentation for details. |
Maximum field size#
Enables system admins to limit the size of log fields during logging. Numerical value. Default is 2048. |
|
Enable diagnostics and error reporting#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Whether or not diagnostics and error reports are sent to Mattermost, Inc.
|
|
Note: See the telemetry docummentation for details on the information Mattermost collects. |
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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Improves the user experience by extending sessions and keeping users logged in if they are active in their Mattermost apps.
|
|
Terminate sessions on password change#
Enable or disable session revocation when a user’s password changes.
|
|
Session length for AD/LDAP and email#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Set the number of minutes to cache a session in memory. Numerical input in minutes. Default is 10 minutes. |
|
Session idle timeout#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E20
Enable or disable performance monitoring.
|
|
See the performance monitoring documentation to learn more. |
Listen address for performance#
Also available in legacy Mattermost 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#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Enable or disable the
|
|
Enable developer mode#
Also available in legacy Mattermost Enterprise Edition E10 or E20
Enable or disable developer mode.
|
|
Enable client debugging#
Also available in legacy Mattermost Enterprise Edition E10 or 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#
Also available in legacy Mattermost Enterprise Edition E10 or 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:
|
config.json-only settings#
Available on all plans
self-hosted deployments
Disable Customer Portal requests#
Enable or disable customer portal requests.
|
|
Note
Cloud admins can’t modify this configuration setting.
Enable API team deletion#
This setting isn’t available in the System Console and can only be set in config.json
.
True: The api/v4/teams/{teamid}?permanent=true
API endpoint can be called by team admins and system admins (or users with appropriate permissions), or by running the mmctl team delete command to permanently delete a team.
False: The API endpoint cannot be called. Note that api/v4/teams/{teamid}
can still be used to soft delete a team.
This feature’s |
Enable API user deletion#
This setting isn’t available in the System Console and can only be set in config.json
.
True: The api/v4/users/{userid}?permanent=true
API endpoint can be called by system admins (or users with appropriate permissions), or by running the mmctl user delete command, to permanently delete a user.
False: The API endpoint cannot be called. Note that api/v4/users/{userid}
can still be used to soft delete a user.
This feature’s |
Enable API channel deletion#
This setting isn’t available in the System Console and can only be set in config.json
.
True: The api/v4/channels/{channelid}?permanent=true
API endpoint can be called by system admins (or users with appropriate permissions), or by running the mmctl channel delete command, to permanently delete a channel.
False: The API endpoint cannot be called. Note that api/v4/channels/{channelid}
can still be used to soft delete a channel.
This feature’s |
Enable desktop app developer mode#
From Desktop App v5.10, this setting enables developer debugging options available by going to the View > Developer Tools menu in the Mattermost desktop app.
This setting isn’t available in the System Console and can only be enabled in config.json
by setting the environment variable MM_DESKTOP_DEVELOPER_MODE
to true
. This setting is disabled by default.
True: Unlocks the following options in the Desktop App for the purposes of troubleshooting and debugging. You should only enable this setting if instructed to by a Mattermost developer:
Browser Mode Only: Completely disables the preload script and stops web app components from knowing they’re in the desktop app. This option should be the best indicator of whether a web app component is causing performance and/or memory retention issues. This option disables notifications, cross-tab navigation, unread/mentions badges, the calls widget, and breaks resizing on macOS.
Disable Notification Storage: Turns off maps that hold references to unread notifications until they’ve been selected & read. This option is good for debugging in cases where Mattermost is holding onto too many references to unused notifications.
Disable User Activity Monitor: Turns off the interval that checks whether the user is away or not. This option is good for debugging whether a user’s availability status is causing unexpected desktop app behavior.
Disable Context Menu: Turns off the context menu attached to the BrowserViews. This option is good as a library santity check.
Force Legacy Messaging API: Forces the app to revert back to the old messaging API instead of the newer contextBridge API. This option is a good santity check to confirm whether the new API is responsible for holding onto memory.
Force New Messaging API: Forces the app to use the contextBridge API and completely disables the legacy one. This option forces off listeners for the legacy API.