+
\ No newline at end of file
diff --git a/source/_static/badges/academy-file-storage.rst b/source/_static/badges/academy-file-storage.rst
index d978eab22f2..09fb6b74fb6 100644
--- a/source/_static/badges/academy-file-storage.rst
+++ b/source/_static/badges/academy-file-storage.rst
@@ -7,6 +7,6 @@
Mattermost Academy
- Learn about Mattermost file storage
+ Learn about file storage
\ No newline at end of file
diff --git a/source/about/editions-and-offerings.rst b/source/about/editions-and-offerings.rst
index 2535a9bf356..edb409e9392 100644
--- a/source/about/editions-and-offerings.rst
+++ b/source/about/editions-and-offerings.rst
@@ -74,7 +74,7 @@ Features include:
- `Granular system permissions `__.
- Highly customizable `third-party bots, integrations `__, and `command line tools `__.
- Extensive integration support via `webhooks, APIs, drivers `__, and `third-party extensions `__.
-- Multiple languages including English (Australian, US), Bulgarian, Chinese (Simplified and Traditional), Dutch, French, German, Italian, Japanese, Korean, Persian, Polish, Portuguese (Brazil), Romanian, Russian, Spanish, Swedish, Turkish, and Ukrainian.
+- Multiple languages including English (Australian, US), Bulgarian, Chinese (Simplified and Traditional), Dutch, French, German, Hungarian, Italian, Japanese, Korean, Persian, Polish, Portuguese (Brazil), Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian, and Vietnamese.
- `Community support `__.
See a complete list of features `here `__.
diff --git a/source/about/embed-mattermost-app-within-microsoft-teams.rst b/source/about/embed-mattermost-app-within-microsoft-teams.rst
index d96287e0ea1..c6b72b0fa69 100644
--- a/source/about/embed-mattermost-app-within-microsoft-teams.rst
+++ b/source/about/embed-mattermost-app-within-microsoft-teams.rst
@@ -1,14 +1,10 @@
Embed the Mattermost App within Microsoft Teams
================================================
-.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
+.. include:: ../_static/badges/ent-cloud-selfhosted.rst
:start-after: :nosearch:
-.. tip::
-
- Looking to `install the Mattermost for Microsoft Teams plugin `__ instead?
-
-With `Mattermost for Microsoft Teams `__, you can embed your Mattermost workspace within your Microsoft Teams instance and take advantage of `embedded app features <#benefits-of-the-embedded-app>`_.
+With the `Microsoft Teams plugin `__, you can embed your Mattermost workspace within your Microsoft Teams instance and take advantage of `embedded app features <#benefits-of-the-embedded-app>`_.
.. important::
diff --git a/source/about/install-mattermost-for-microsoft-teams-plugin.rst b/source/about/install-mattermost-for-microsoft-teams-plugin.rst
index 249a31b2a3f..40f55be062c 100644
--- a/source/about/install-mattermost-for-microsoft-teams-plugin.rst
+++ b/source/about/install-mattermost-for-microsoft-teams-plugin.rst
@@ -1,7 +1,7 @@
Install the Mattermost for Microsoft Teams plugin
=================================================
-.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
+.. include:: ../_static/badges/ent-cloud-selfhosted.rst
:start-after: :nosearch:
.. contents:: On this page
@@ -12,7 +12,7 @@ Install the Mattermost for Microsoft Teams plugin
Looking to `embed Mattermost within Microsoft Teams `__ instead?
-To install the `Mattermost for Microsoft Teams integration `__ in Mattermost:
+To install the `Microsoft Teams plugin `__ in Mattermost:
1. Log in to your Mattermost workspace as a system administrator.
2. Download the latest version of `the plugin binary release `__, compatible with Mattermost v8.0.1 and later. If you are using an earlier version of Mattermost, `follow our documentation `__ to upgrade to Mattermost v8.0.1 or later.
@@ -96,7 +96,7 @@ Step 2: Create a user account to act as a bot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Create a regular user account. We will connect this account later from the Mattermost side.
-2. This account is needed for creating messages on MS Teams on behalf of users who are present in Mattermost but not on MS Teams.
+2. This account is needed for creating messages on Microsoft Teams on behalf of users who are present in Mattermost but not on Microsoft Teams.
3. This account is also needed when users on Mattermost have not connected their accounts and some messages need to be posted on their behalf. See the screenshot below:
.. image:: ../images/teams-user-as-bot.png
@@ -104,7 +104,7 @@ Step 2: Create a user account to act as a bot
.. note::
- After you've connected the bot user to the account on MS Teams, all the messages that are posted from the account on MS Teams won't be synchronized back to Mattermost since it's a "bot", and messages from bots are ignored.
+ After you've connected the bot user to the account on Microsoft Teams, all the messages that are posted from the account on Microsoft Teams won't be synchronized back to Mattermost since it's a "bot", and messages from bots are ignored.
Step 3: Ensure you have the metered APIs enabled (and the pay subscription associated to it)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -129,7 +129,7 @@ Mattermost admins can configure Mattermost to automatically prompt users to conn
Configure the plugin
--------------------
-Additional configuration settings are available for this plugin. See the `MS Teams Sync plugin configuration settings `__ documentation for details.
+Additional configuration settings are available for this plugin. See the `Microsoft Teams Sync plugin configuration settings `__ documentation for details.
Monitor plugin performance
--------------------------
@@ -151,7 +151,7 @@ Grafana dashboards `are available on GitHub `__ documentation for details on how to collaborate across both Mattermost and Microsoft Teams at the same time.
+See our `collaborate using the Microsoft Teams plugin `__ documentation for details on how to collaborate across both Mattermost and Microsoft Teams at the same time.
Trobleshooting
--------------
diff --git a/source/about/mattermost-for-microsoft-teams.rst b/source/about/mattermost-for-microsoft-teams.rst
index 157b3643ec8..27b61d55eb9 100644
--- a/source/about/mattermost-for-microsoft-teams.rst
+++ b/source/about/mattermost-for-microsoft-teams.rst
@@ -1,12 +1,10 @@
Mattermost for Microsoft Teams
==============================
-.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
+.. include:: ../_static/badges/ent-cloud-selfhosted.rst
:start-after: :nosearch:
-Mattermost for Microsoft Teams enables you to collaborate with technical and operations teams seamlessly through the Mattermost app, without leaving Microsoft Teams. Two integrations are available: a `connected integration <#connect-mattermost-with-microsoft-teams>`__ and an `embedded integration <#embed-mattermost-within-mattermost-teams>`__.
-
-
+The Mattermost for Microsoft Teams plugin enables you to collaborate with technical and operations teams seamlessly through the Mattermost app, without leaving Microsoft Teams. Two integrations are available: a `connected integration <#connect-mattermost-with-microsoft-teams>`__ and an `embedded integration <#embed-mattermost-within-mattermost-teams>`__.
.. include:: ../_static/badges/academy-msteams.rst
:start-after: :nosearch:
@@ -20,7 +18,7 @@ A connected Mattermost integration with Microsoft Teams enables direct message,
Install this integration by visiting the `install the Mattermost for Microsoft Teams plugin `__ documentation.
-Visit the `collaborate within a connected Microsoft Teams instance `__ to learn how to use this integration.
+Visit the `collaborate within a Microsoft Teams instance `__ to learn how to use this integration.
Embed Mattermost within Mattermost Teams
----------------------------------------
diff --git a/source/about/unified-collaboration.rst b/source/about/unified-collaboration.rst
index 7ee04a7b446..3c23a1743ba 100644
--- a/source/about/unified-collaboration.rst
+++ b/source/about/unified-collaboration.rst
@@ -11,7 +11,7 @@ Unified communication
Mattermost's Unified Communication solution is designed to provide an extended collaboration experience for technical and operational teams to teams on other collaboration systems.
-* :doc:`Mattermost for Microsoft Teams ` - Learn how organizations can easily connect operational workflows through the Mattermost app while staying connected to the all-employee platform, all in one place.
+* :doc:`Mattermost for Microsoft Teams plugin` - Learn how organizations can easily connect operational workflows through the Mattermost app while staying connected to the all-employee platform, all in one place.
* :doc:`Mattermost Google Calendar integration ` - Learn how to enable a two-way integration between Mattermost and Google Calendar.
`Contact us `_ to learn more about this solution and to discuss whether it’s the right one for you.
\ No newline at end of file
diff --git a/source/install/common-prod-deploy-kubernetes.rst b/source/archive/common-prod-deploy-kubernetes.rst
similarity index 100%
rename from source/install/common-prod-deploy-kubernetes.rst
rename to source/archive/common-prod-deploy-kubernetes.rst
diff --git a/source/about/embed-mattermost-within-microsoft-teams.rst b/source/archive/embed-mattermost-within-microsoft-teams.rst
similarity index 99%
rename from source/about/embed-mattermost-within-microsoft-teams.rst
rename to source/archive/embed-mattermost-within-microsoft-teams.rst
index 049d16fa76c..66673f41d58 100644
--- a/source/about/embed-mattermost-within-microsoft-teams.rst
+++ b/source/archive/embed-mattermost-within-microsoft-teams.rst
@@ -1,3 +1,6 @@
+:orphan:
+:nosearch:
+
Embed Mattermost within Microsoft Teams
=======================================
.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
diff --git a/source/collaborate/collaborate-within-connected-microsoft-teams.rst b/source/collaborate/collaborate-within-connected-microsoft-teams.rst
index b7ec3e96c1e..187e6bd48d3 100644
--- a/source/collaborate/collaborate-within-connected-microsoft-teams.rst
+++ b/source/collaborate/collaborate-within-connected-microsoft-teams.rst
@@ -1,21 +1,21 @@
-Collaborate within connected Microsoft Teams
-============================================
+Collaborate within Microsoft Teams
+==================================
-.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
+.. include:: ../_static/badges/ent-cloud-selfhosted.rst
:start-after: :nosearch:
.. |plus-icon| image:: ../images/plus_F0415.svg
:alt: Open menus using the plus icon.
-The `Connected Mattermost for Microsoft Teams `__ integration enables you to collaborate with Microsoft Teams users without leaving Mattermost.
+The `Mattermost for Microsoft Teams plugin `__ integration enables you to collaborate with Microsoft Teams users without leaving Mattermost.
.. include:: ../_static/badges/academy-msteams.rst
:start-after: :nosearch:
-Connect your Mattermost account to your MS Teams account
----------------------------------------------------------
+Connect your Mattermost account to your Microsoft Teams account
+---------------------------------------------------------------
-To use the Mattermost for Microsoft Teams plugin, you must connect your Mattermost user account to Microsoft Teams. You only need to complete this step once.
+To use the Microsoft Teams plugin, you must connect your Mattermost user account to Microsoft Teams. You only need to complete this step once.
1. Log into Mattermost using your credentials.
2. When you log in, you’ll be prompted to enter your Microsoft Teams user information, including your Microsoft Teams email address and your Microsoft Teams password.
diff --git a/source/collaborate/collaborate-within-embedded-microsoft-teams.rst b/source/collaborate/collaborate-within-embedded-microsoft-teams.rst
index 30260b6be06..64666090016 100644
--- a/source/collaborate/collaborate-within-embedded-microsoft-teams.rst
+++ b/source/collaborate/collaborate-within-embedded-microsoft-teams.rst
@@ -1,10 +1,10 @@
Collaborate within embedded Microsoft Teams
===========================================
-.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
+.. include:: ../_static/badges/ent-cloud-selfhosted.rst
:start-after: :nosearch:
-The `Embedded Mattermost for Microsoft Teams `__ integration enables you to collaborate with technical & operations teams seamlessly through the Mattermost app, without leaving Microsoft Teams.
+The `Mattermost for Microsoft Teams plugin `__ enables you to collaborate with technical & operations teams seamlessly through the Mattermost app, without leaving Microsoft Teams.
Demonstration: Mattermost embedded in Microsoft Teams
------------------------------------------------------
@@ -13,4 +13,4 @@ Check out this `YouTube demo `__, from Doug Lauder
.. raw:: html
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/source/collaborate/extend-mattermost-with-integrations.rst b/source/collaborate/extend-mattermost-with-integrations.rst
index a405e13aaa6..5da6d4440cb 100644
--- a/source/collaborate/extend-mattermost-with-integrations.rst
+++ b/source/collaborate/extend-mattermost-with-integrations.rst
@@ -1,9 +1,6 @@
Extend Mattermost with integrations
===================================
-.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
- :start-after: :nosearch:
-
`Visit the Mattermost Marketplace `__ to find dozens of open source integrations to common tools like Jira, Jenkins, GitLab, with interactive bot applications (Hubot, mattermost-bot), and other communication tools (Email, IRC, XMPP, Threema) that are freely available for use and customization.
Latest integrations
@@ -17,7 +14,7 @@ Latest integrations
Collaborate within embedded MS Teams
Use the Mattermost Google Calendar plugin
-* :doc:`Collaborate within a connected Microsoft Teams instance ` - Learn how to collaborate with colleagues when Mattermost is connected to Microsoft Teams.
+* :doc:`Collaborate within a Microsoft Teams instance ` - Learn how to collaborate with colleagues when Mattermost is connected to Microsoft Teams.
* :doc:`Collaborate within an embedded Microsoft Teams instance ` - Learn how to collaborate with colleagues when Mattermost is embedded within Microsoft Teams.
* :doc:`Use the Mattermost Google Calendar plugin ` - Learn how to manage events using a two-way integration between Mattermost and Google Calendar.
@@ -63,6 +60,4 @@ Video calling & screensharing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- `Skype for Business `__: Start and join voice calls, video calls, and use screensharing in Mattermost.
-- `Zoom `__: Start audio and video conferencing calls in Mattermost.
-
-
+- `Zoom `__: Start audio and video conferencing calls in Mattermost.
\ No newline at end of file
diff --git a/source/collaborate/react-with-emojis-gifs.rst b/source/collaborate/react-with-emojis-gifs.rst
index e060005c824..b80965381c1 100644
--- a/source/collaborate/react-with-emojis-gifs.rst
+++ b/source/collaborate/react-with-emojis-gifs.rst
@@ -12,12 +12,12 @@ Emojis and GIFs are small, digital images, animated images, or icons you can use
Quick emoji reactions
-----------------------
-React to messages quickly with recently used emojis. Hover over a message to access recently used emojis.
+Hover over a message to react quickly using your most recent emojis. You can react with up to 50 emojis per message.
.. image:: ../images/recent-emojis.png
:alt: React to messages quickly by selecting one of your most recently used emojis.
-Recently used emojis are sorted based on how often you've used them.
+Recently used emojis are sorted based on how often you've used them.
.. tip::
diff --git a/source/comply/data-retention-policy.rst b/source/comply/data-retention-policy.rst
index 527f8bdfcb5..da496ea2935 100644
--- a/source/comply/data-retention-policy.rst
+++ b/source/comply/data-retention-policy.rst
@@ -10,8 +10,6 @@ By default, Mattermost stores all message history providing an unlimited search
In Mattermost Enterprise, you can set a global retention policy as well as custom retention policies to manage how long messages and file uploads are kept in Mattermost channels and direct messages.
-For scheduled data retention jobs to work, the `global retention policy for files `__ as well as the `global retention policy for messages `__ configuration settings in the ``config.json`` file must be set to ``true``. These configuration settings are disabled by default.
-
.. warning::
Once a message or a file is deleted, the action is irreversible. Please use caution when setting up global or custom data retention policies.
@@ -63,6 +61,11 @@ Replies that did not exceed the message duration are still displayed in the user
If there was a file attached to the message, it will be removed from the user interface only.
+Why can I still see messages that were supposedly deleted?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The web and desktop app cache posts. Posts deleted by a data retention job will be visible to end users until they clear their cache and refresh.
+
What happens when a file is deleted by the file retention policy?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/source/conf.py b/source/conf.py
index 87b0a7738c9..f32e76c11fa 100644
--- a/source/conf.py
+++ b/source/conf.py
@@ -1950,6 +1950,10 @@ def setup(_: Sphinx):
"developer/webhooks-incoming.html":
"https://developers.mattermost.com/integrate/admin-guide/admin-webhooks-incoming/",
+# Microsoft Teams redirects
+"about/embed-mattermost-within-microsoft-teams.html":
+ "about/embed-mattermost-app-within-microsoft-teams.html",
+
# Focalboard redirects
"focalboard/installing-boards":
"https://github.com/mattermost/focalboard/blob/main/docs/mattermost-boards-dev-guide.md",
@@ -2029,6 +2033,16 @@ def setup(_: Sphinx):
"https://docs.mattermost.com/guides/preferences.html",
"guides/welcome-to-mattermost.html#mattermost-interface-changes":
"https://docs.mattermost.com/guides/deployment.html#changelogs",
+"guides/configure-app-framework.html":
+ "https://docs.mattermost.com/deploy/configure-app-framework",
+"guides/deploy-http.html":
+ "https://docs.mattermost.com//deploy/deploy-http",
+"guides/deploy-aws.html":
+ "https://docs.mattermost.com//deploy/deploy-aws",
+"guides/package-aws.html":
+ "https://docs.mattermost.com//deploy/package-aws",
+"guides/deploy-openfaas.html":
+ "https://docs.mattermost.com/deploy/deploy-openfaas",
# Help redirects resulting from the June 2021 docs reorganization project.
"help/apps/desktop-changelog.html":
@@ -3307,9 +3321,9 @@ def setup(_: Sphinx):
# built documents.
#
# The short X.Y version.
-# version = '9.2'
+# version = '9.3'
# The full version, including alpha/beta/rc tags.
-# release = '9.2'
+# release = '9.3'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/source/configure/developer-mode-configuration-settings.rst b/source/configure/developer-mode-configuration-settings.rst
index 330f37552e7..bcd22181deb 100644
--- a/source/configure/developer-mode-configuration-settings.rst
+++ b/source/configure/developer-mode-configuration-settings.rst
@@ -71,8 +71,8 @@ Enable client debugging
+---------------------------------------------------+---------------------------------------------------------------------------------------------+
| Enable or disable client-side debugging settings | - System Config path: **Environment > Developer** |
-| found in *Settings > Advanced > Debugging* for | - ``config.json setting``: ``".ServiceSettings.EnableClientPerformanceDebugging": false",`` |
-| individual users. | - Environment variable: ``MM_SERVICESETTINGS_ENABLECLIENTPERFORMANCEDEBUGGING`` |
+| found in **Settings > Advanced > Debugging** | - ``config.json setting``: ``".ServiceSettings.EnableClientPerformanceDebugging": false",`` |
+| for individual users. | - Environment variable: ``MM_SERVICESETTINGS_ENABLECLIENTPERFORMANCEDEBUGGING`` |
| | |
| - **true**: Those settings are visible and can | |
| be enabled by users. | |
diff --git a/source/configure/optimize-your-workspace.rst b/source/configure/optimize-your-workspace.rst
index 18466b6105b..2567b7d5db5 100644
--- a/source/configure/optimize-your-workspace.rst
+++ b/source/configure/optimize-your-workspace.rst
@@ -39,6 +39,10 @@ The following optimization areas can alert you to workspace suggestions, warning
| | | |
| | - **Session Length**: The default value may not provide an optimal user experience. | - `Set up SSL `__ |
| | | - `Configure session length `__ |
+| | - **File Storage**: Write access to the configured file storage location is required. | - `Configure file storage `__ |
+| | | |
+| | .. include:: ../_static/badges/academy-file-storage.rst | |
+| | :start-after: :nosearch: | |
+-----------------------+----------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Workspace access | Is the Mattermost workspace may not be accessible to users? | If your web server settings don't pass a live URL test, your workspace may not be accessible to others. |
| | | See the `Environment Configuration Settings `__ product documentation to learn more: |
diff --git a/source/configure/site-configuration-settings.rst b/source/configure/site-configuration-settings.rst
index 76d496ce20b..9b364a0dd49 100644
--- a/source/configure/site-configuration-settings.rst
+++ b/source/configure/site-configuration-settings.rst
@@ -347,10 +347,10 @@ Default server language
+--------------------------------------------------------------------------------+---------------------------------------------------------------------------+
| The default language for system messages and logs. | - System Config path: **Site Configuration > Localization** |
| | - ``config.json`` setting: ``.LocalizationSettings.DefaultServerLocale`` |
-| Options: ``"bg"``, ``"de"``, ``"en"``, ``en-AU``, ``"es"``, ``"fa"``, | - Environment variable: ``MM_LOCALIZATIONSETTINGS_DEFAULTSERVERLOCALE`` |
+| Options: ``"bg"``, ``"de"``, ``"en"``, ``"en-AU"``, ``"es"``, ``"fa"``, | - Environment variable: ``MM_LOCALIZATIONSETTINGS_DEFAULTSERVERLOCALE`` |
| ``"fr"``, ``"hu"``, ``"it"``, ``"ja"``, ``"ko"``, ``"nl"``, ``"pl"``, | |
-| ``"pt-br"``, ``"ro"``, ``"ru"``, ``"sv"``, ``"tr"``, ``uk``, ``"zh_CN"``, | |
-| and ``"zh_TW"``. | |
+| ``"pt-br"``, ``"ro"``, ``"ru"``, ``"sv"``, ``"tr"``, ``"uk"``, ``"vi"``, | |
+| ``"zh_CN"``, and ``"zh_TW"``. | |
| | |
| Default is ``"en"``. | |
+--------------------------------------------------------------------------------+---------------------------------------------------------------------------+
@@ -368,10 +368,10 @@ Default client language
+--------------------------------------------------------------------------------+---------------------------------------------------------------------------+
| The default language for new users and pages where the user isn't logged in. | - System Config path: **Site Configuration > Localization** |
| | - ``config.json`` setting: ``.LocalizationSettings.DefaultClientLocale`` |
-| Options: ``"bg"``, ``"de"``, ``"en"``, ``en-AU``, ``"es"``, ``"fa"``, | - Environment variable: ``MM_LOCALIZATIONSETTINGS_DEFAULTCLIENTLOCALE`` |
+| Options: ``"bg"``, ``"de"``, ``"en"``, ``"en-AU"``, ``"es"``, ``"fa"``, | - Environment variable: ``MM_LOCALIZATIONSETTINGS_DEFAULTCLIENTLOCALE`` |
| ``"fr"``, ``"hu"``, ``"it"``, ``"ja"``, ``"ko"``, ``"nl"``, ``"pl"``, | |
-| ``"pt-br"``, ``"ro"``, ``"ru"``, ``"sv"``, ``"tr"``, ``uk``, ``"zh_CN"``, | |
-| and ``"zh_TW"``. | |
+| ``"pt-br"``, ``"ro"``, ``"ru"``, ``"sv"``, ``"tr"``, ``"uk"``, ``"vi"``, | |
+| ``"zh_CN"``, and ``"zh_TW"``. | |
| | |
| Default is ``"en"``. | |
+--------------------------------------------------------------------------------+---------------------------------------------------------------------------+
@@ -394,10 +394,10 @@ Available languages
| in addition to any other languages. For example, to limit the language | |
| choices to US English and Español (es), the string would be ``”en,es”``. | |
| | |
-| Options: ``"bg"``, ``"de"``, ``"en"``, ``en-AU``, ``"es"``, ``"fa"``, | |
+| Options: ``"bg"``, ``"de"``, ``"en"``, ``"en-AU"``, ``"es"``, ``"fa"``, | |
| ``"fr"``, ``"hu"``, ``"it"``, ``"ja"``, ``"ko"``, ``"nl"``, ``"pl"``, | |
-| ``"pt-br"``, ``"ro"``, ``"ru"``, ``"sv"``, ``"tr"``, ``uk``, ``"zh_CN"``, | |
-| and ``"zh_TW"``. | |
+| ``"pt-br"``, ``"ro"``, ``"ru"``, ``"sv"``, ``"tr"``, ``"uk"``, ``"vi"``, | |
+| ``"zh_CN"``, and ``"zh_TW"``. | |
| | |
| Default is ``"en"``. | |
+--------------------------------------------------------------------------------+---------------------------------------------------------------------------+
diff --git a/source/guides/configure-app-framework.rst b/source/deploy/configure-app-framework.rst
similarity index 100%
rename from source/guides/configure-app-framework.rst
rename to source/deploy/configure-app-framework.rst
diff --git a/source/guides/deploy-aws.rst b/source/deploy/deploy-aws.rst
similarity index 95%
rename from source/guides/deploy-aws.rst
rename to source/deploy/deploy-aws.rst
index 725cef062e9..2fde0a6c298 100644
--- a/source/guides/deploy-aws.rst
+++ b/source/deploy/deploy-aws.rst
@@ -8,7 +8,7 @@ An App designed and bundled for AWS Lambda can be deployed to the customer's own
AWS environment, and then installed on a self-managed ("on-prem") Mattermost
instance. Note that the only AWS-hosted apps available on Mattermost Cloud instances are the ones by Mattermost.
-For details on how to develop and package apps for AWS see `Package / AWS `_.
+For details on how to develop and package apps for AWS see `Package / AWS `__.
There are three steps required to enable AWS applications on a self-managed Mattermost instance.
@@ -34,7 +34,7 @@ You will need to create an S3 bucket within AWS or use an existing bucket.
Create a privileged IAM user access key and secret
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-You will need an access key and secret so that ``appsctl`` can deploy the app. These credentials can come from creating an IAM user, using a privileged IAM user, or even using the AWS account owners personal access key. Please follow the instructions provided by AWS (https://aws.amazon.com/premiumsupport/knowledge-center/create-access-key/) to complete these steps and save the ``Access key ID`` and ``Secret access key`` values.
+You will need an access key and secret so that ``appsctl`` can deploy the app. These credentials can come from creating an IAM user, using a privileged IAM user, or even using the AWS account owners personal access key. Please follow the `instructions provided by AWS `__ to complete these steps and save the ``Access key ID`` and ``Secret access key`` values.
Set AWS_DEPLOY environment variables
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -134,7 +134,7 @@ The ``manifest.json`` file of an app is stored in the same S3 bucket with the ke
Deploy ustom apps to AWS
^^^^^^^^^^^^^^^^^^^^^^^^
-.. image:: deploy-third-party-aws.png
+.. image:: /images/deploy-third-party-aws.png
:width: 800
Deployment in Mattermost Cloud
@@ -149,7 +149,7 @@ The deployer needs lambda function names, asset keys, and the manifest key to de
Deploy custom apps to AWS
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. image:: deploy-mm-aws.png
+.. image:: /images/deploy-mm-aws.png
:width: 800
.. |Mattermost apps cloud deployer| raw:: html
diff --git a/source/guides/deploy-http.rst b/source/deploy/deploy-http.rst
similarity index 100%
rename from source/guides/deploy-http.rst
rename to source/deploy/deploy-http.rst
diff --git a/source/guides/deploy-mattermost-apps.rst b/source/deploy/deploy-mattermost-apps.rst
similarity index 74%
rename from source/guides/deploy-mattermost-apps.rst
rename to source/deploy/deploy-mattermost-apps.rst
index b34d3327dbb..27c9a5980bf 100644
--- a/source/guides/deploy-mattermost-apps.rst
+++ b/source/deploy/deploy-mattermost-apps.rst
@@ -6,17 +6,17 @@ App deployment
:hidden:
:titlesonly:
- Settings
- HTTP
- AWS
- Package Apps for AWS
- OpenFaaS
+ Settings
+ HTTP
+ AWS
+ Package Apps for AWS
+ OpenFaaS
- In **Mattermost Cloud**, all apps are deployed to the Marketplace by Mattermost staff. They can be installed onto a specific Mattermost instance using the ``/apps install listed`` command. No special configuration is required; the ``/apps install`` command should be enabled and functional by default.
-- **Self-managed Mattermost** installations can use external Apps as HTTP services that have already been deployed, or can deploy App bundles on self-managed hosting or serverless platforms. Currently, `AWS Lambda `_, `OpenFaaS `_, and Kubeless deployments are supported. The `appsctl` command can be used to deploy app bundles to these environments.
+- **Self-managed Mattermost** installations can use external Apps as HTTP services that have already been deployed, or can deploy App bundles on self-managed hosting or serverless platforms. Currently, `AWS Lambda `__, `OpenFaaS `__, and Kubeless deployments are supported. The `appsctl` command can be used to deploy app bundles to these environments.
- Self-managed customers can also install external `HTTP `_ apps, with no need to deploy them.
+ Self-managed customers can also install external `HTTP `__ apps, with no need to deploy them.
The ``appsctl`` CLI tool is provided to deploy AWS and OpenFaaS apps in self-managed environments. To install ``appsctl``, use the following command:
diff --git a/source/guides/deploy-openfaas.rst b/source/deploy/deploy-openfaas.rst
similarity index 100%
rename from source/guides/deploy-openfaas.rst
rename to source/deploy/deploy-openfaas.rst
diff --git a/source/deploy/deprecated-features.rst b/source/deploy/deprecated-features.rst
index 188d6058e58..e47430d97fb 100644
--- a/source/deploy/deprecated-features.rst
+++ b/source/deploy/deprecated-features.rst
@@ -3,6 +3,10 @@ Removed and deprecated features for Mattermost
This page describes features that are removed from support for Mattermost, or will be removed in a future update (deprecated), and provides early notice about future changes that might affect your use of Mattermost. This information is subject to change with future releases, and might not include each deprecated feature.
+.. contents:: On this page
+ :backlinks: top
+ :depth: 3
+
Removed features in upcoming versions
-------------------------------------
diff --git a/source/deploy/desktop-app-changelog.rst b/source/deploy/desktop-app-changelog.rst
index c5074e35662..6db85522e70 100644
--- a/source/deploy/desktop-app-changelog.rst
+++ b/source/deploy/desktop-app-changelog.rst
@@ -1,17 +1,11 @@
Desktop application changelog
==============================
-.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
- :start-after: :nosearch:
+This changelog summarizes updates to Mattermost desktop app releases for `Mattermost `__.
-Latest Mattermost Desktop App releases:
-
-- `Release v5.5 <#id1>`_
-- `Release v5.4 <#id3>`_
-- `Release v5.3 <#id15>`_
-- `Release v5.2 <#id28>`_
-- `Release v5.1 <#id44>`_
-- `Release v5.0 <#id59>`_
+.. contents:: On this page
+ :backlinks: top
+ :depth: 2
Release v5.5
--------------
@@ -61,6 +55,7 @@ All Platforms
Known Issues
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+- Users are unable to login to Desktop app v5.5 on servers with subpaths.
- Users seeing an endless "Loading..." screen when attempting to log in to the app may need to manually delete their cache directory. For MacOS it is located in ``/Users//Library/Containers/Mattermost/Data/Library/Application Support/Mattermost``, for Windows in ``Users//AppData/Roaming/Mattermost`` and for Linux in ``~/config/Mattermost`` (where ``~`` is the home directory).
- On Linux, a left-click on the Mattermost tray icon doesn't open the app window but opens the tray menu.
- Crashes might be be experienced in some Linux desktop clients due to an upstream bug in the ``libnotifyapp`` library. A recommended workaround is to disable the Mattermost system tray icon via Desktop Settings.
diff --git a/source/deploy/mattermost-changelog.md b/source/deploy/mattermost-changelog.md
index 49b7e8c96ae..68dfb0aa024 100644
--- a/source/deploy/mattermost-changelog.md
+++ b/source/deploy/mattermost-changelog.md
@@ -15,6 +15,108 @@ From Mattermost v9.2, this changelog summarizes updates for the latest cloud and
:depth: 2
```
+## Release v9.3 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release)
+
+**Release Date: December 15, 2023**
+
+### Important Upgrade Notes
+ - Please read the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) before upgrading.
+
+### Compatibility
+ - Updated minimum required Firefox version to v115+.
+ - Updated minimum supported Chromium version to 118+.
+
+### Improvements
+
+See [this walkthrough video](https://www.youtube.com/watch?v=eXA8emM97Bo) on some of the improvements in our latest release below.
+
+#### User Interface (UI)
+ - Updated pre-packaged Playbooks plugin version to [v1.39.1](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.1).
+ - Updated pre-packaged Calls version to [v0.21.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.21.1).
+ - Updated pre-packaged Jira plugin version to [v4.0.1](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.0.1). Also see [v4.0.0](https://github.com/mattermost/mattermost-plugin-jira/releases/tag/v4.0.0) for recent breaking changes.
+ - Added Vietnamese (Beta) as a new language.
+ - Added the ability to passively track keywords with highlights without triggering a notification (Professional and Enterprise plans).
+ - Updated the **Settings** modal with an improved user interface.
+ - Added a new **Jump to recents** banner when a channel is scrolled up.
+ - Modified the behavior of the code button (Ctrl+Alt+C) to create inline codes or code blocks.
+ - Disabled markdown keybindings within code blocks.
+ - Added a **Back** button to the ``/access_problem`` page.
+ - Added a default limit of the number of reactions per post.
+
+#### Performance
+ - Removed pre-fetch preference and set new prefetch limits for the webapp.
+ - Improved websocket event marshaling performance.
+ - Batched loading of recently used emojis on initial load.
+
+#### Administration
+ - The tooltip on the announcement bar in the **System Console** is now widened.
+ - Improved the error message when trying to activate a plugin in an unsupported environment.
+ - Added a file storage permission check to the workspace health dashboard.
+ - Performed a cleanup in preparation for adding support for multi-word keywords that trigger notification.
+ - Added a warning log message when the app runs as root.
+ - Removed all uses of the ``ExperimentalTimezone`` setting. The Timezone feature is now always enabled and no longer behind a configuration setting.
+ - Added support for previewing WebVTT attachments.
+ - Introduced separate ``AdvancedLogging`` levels for LDAP messages.
+ - Introduced trace logging level for LDAP messages.
+ - Added a new way to modify ``WebSocket`` messages sent to individual connections.
+ - Added a new server side hook ``MessagesWillBeConsumed`` to allow modifying post objects after they are grabbed from the database but before they are delivered to the client. This is behind a feature flag and disabled by default.
+ - Users and posts are now pretty-printed in the logs.
+ - Improved file extraction logging.
+ - Exposed ``ThreadView`` and ``AdvancedCreateComment`` components in the webapp plugin exported components list.
+ - Added **Logging > Advanced Logging** setting to the **System Console** to allow admins to configure custom log targets via the user interface.
+
+### Bug Fixes
+ - Fixed an issue where marking a Group Message as unread didn't show the badge count correctly.
+ - Fixed an issue where ``invite_id`` was being reset on all team changes.
+ - Fixed an issue where interactive dialog elements with subtype ``number`` didn't handle a ``0`` value properly.
+ - Fixed an issue with the download link in channel file search items when including a path in the **Site URL** setting.
+ - Fixed an issue with the formatting of special mentions in the right-hand side.
+ - Fixed ``MessageWillBeUpdated`` plugin hook to allow rejections.
+ - Fixed an issue with some shortcuts not working as expected.
+ - Fixed the message history not clearing the input on the center channel.
+ - Fixed an issue where a higher contrast was generated for some usernames.
+ - Fixed an issue where newly created Group Messages showed having 0 members.
+ - Fixed an issue where an incorrect timestamp was assigned to support packet files.
+ - Fixed an issue where the **Reset Password** link was not displayed if only LDAP/AD was enabled.
+ - Fixed an issue where **Recent Mentions** showed posts for other similar named users.
+ - Fixed an error that appeared when updating the header of Group Messages.
+ - Fixed an issue that caused the server to get stuck during shutdown due to a deadlock in a dependency.
+ - Fixed an issue where Desktop App clients would be shown an error when trying to open file preview links.
+ - Fixed an issue with double URL encoding of Oauth redirect URI params.
+ - Fixed an issue where users couldn't at-mention custom groups in group constrained teams and channels.
+ - Fixed an issue where the channel admin wasn't being set when converting a Group Message to a private channel.
+
+### config.json
+ - Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available.
+
+#### Changes to all plans:
+ - Removed ``DisplaySettings.ExperimentalTimezone`` setting.
+ - Under ``ServiceSettings`` in ``config.json``:
+ - Added ``DefaultUniqueReactionsPerPost`` and ``MaxUniqueReactionsPerPost`` to fix an issue where invalid reactions could be added to posts and to add a default limit for the number of reactions per post.
+
+### API Changes
+ - Added an API to batch requests for custom emojis on page load.
+
+### Database Changes
+ - ``NextSyncAt`` and ``Description`` columns are removed from the ``SharedChannelsRemotes`` table. Migration impact is considered to be minimal considering the possible table size.
+
+### Go Version
+ - v9.3 is built with Go ``v1.20.7``.
+
+### Known Issues
+ - Mattermost Omnibus: Unable to install omnibus due to unmet dependencies [MM-56080](https://mattermost.atlassian.net/browse/MM-56080).
+ - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823).
+ - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off.
+ - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms.
+ - Slack import through the CLI fails if email notifications are enabled.
+ - Push notifications don't always clear on iOS when running Mattermost in High Availability mode.
+ - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh.
+ - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration.
+ - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh.
+
+### Contributors
+ - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [AirGoatOne](https://github.com/AirGoatOne), [akbarkz](https://github.com/akbarkz), [amigo7kr](https://github.com/amigo7kr), [amyblais](https://github.com/amyblais), [anneschuth](https://github.com/anneschuth), [ARJ2160](https://github.com/ARJ2160), [Arslan-work](https://github.com/Arslan-work), [arthurh](https://translate.mattermost.com/user/arthurh), [arthurhrg](https://github.com/arthurhrg), [Aryakoste](https://github.com/Aryakoste), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [avas27JTG](https://github.com/avas27JTG), [AvaterClasher](https://github.com/AvaterClasher), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BandhiyaHardik](https://github.com/BandhiyaHardik), [BenCookie95](https://github.com/BenCookie95), [Benjamin-Loison](https://github.com/Benjamin-Loison), [calebroseland](https://github.com/calebroseland), [catenacyber](https://github.com/catenacyber), [cedarice](https://github.com/cedarice), [CI-YU](https://github.com/CI-YU), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [Davut97](https://github.com/Davut97), [deepakumarvu](https://github.com/deepakumarvu), [devinbinnie](https://github.com/devinbinnie), [Dhoni77](https://github.com/Dhoni77), [DimitriDR](https://translate.mattermost.com/user/DimitriDR), [edwardnguyen225](https://github.com/edwardnguyen225), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [Emil-Carlsson](https://github.com/Emil-Carlsson), [enahum](https://github.com/enahum), [escofresco](https://github.com/escofresco), [fandour](https://translate.mattermost.com/user/fandour), [fazil-syed](https://github.com/fazil-syed), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [hanzei](https://github.com/hanzei), [harshal2030](https://github.com/harshal2030), [harshilsharma63](https://github.com/harshilsharma63), [heisdinesh](https://github.com/heisdinesh), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [imamimam113](https://github.com/imamimam113), [imkrishnasarathi](https://github.com/imkrishnasarathi), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jonathanwiemers](https://github.com/jonathanwiemers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kapdev](https://translate.mattermost.com/user/kapdev), [kayazeren](https://github.com/kayazeren), [Kimbohlovette](https://github.com/Kimbohlovette), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [KuSh](https://github.com/KuSh), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [LeonardJouve](https://github.com/LeonardJouve), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [linkvn](https://github.com/linkvn), [ludvigbolin](https://github.com/ludvigbolin), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [maxtrem271991](https://github.com/maxtrem271991), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mozi47](https://github.com/mozi47), [mvitale1989](https://github.com/mvitale1989), [nathanaelhoun](https://github.com/nathanaelhoun), [newdominic](https://github.com/newdominic), [nickmisasi](https://github.com/nickmisasi), [nosyn](https://github.com/nosyn), [otilor](https://github.com/otilor), [pacop](https://github.com/pacop), [Paul-Stern](https://github.com/Paul-Stern), [Paul-vrn](https://github.com/Paul-vrn), [phoinixgrr](https://github.com/phoinixgrr), [proggga](https://github.com/proggga), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [rahulsuresh-git](https://github.com/rahulsuresh-git), [rashmibharambe](https://github.com/rashmibharambe), [Reene-Simon](https://github.com/Reene-Simon), [rohan-kapse](https://github.com/rohan-kapse), [rohitkbc](https://github.com/rohitkbc), [rubinaga](https://github.com/rubinaga), [RyoKub](https://github.com/RyoKub), [san70sh](https://github.com/san70sh), [sapnasivakumar](https://github.com/sapnasivakumar), [sbishel](https://github.com/sbishel), [seoyeongeun](https://github.com/seoyeongeun), [Sharuru](https://github.com/Sharuru), [shivamjosh](https://github.com/shivamjosh), [sinansonmez](https://github.com/sinansonmez), [Sn-Kinos](https://github.com/Sn-Kinos), [sp6370](https://github.com/sp6370), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [sudheer121](https://github.com/sudheer121), [Syed-Ali-Abbas-Zaidi](https://github.com/Syed-Ali-Abbas-Zaidi), [tanmaythole](https://github.com/tanmaythole), [tejas161](https://github.com/tejas161), [thomasbrq](https://github.com/thomasbrq), [ThrRip](https://github.com/ThrRip), [TomerPacific](https://github.com/TomerPacific), [toninis](https://github.com/toninis), [trivikr](https://github.com/trivikr), [tsabi](https://github.com/tsabi), [turretkeeper](https://github.com/turretkeeper), [umrkhn](https://github.com/umrkhn), [vish9812](https://github.com/vish9812), [wcdfilll](https://translate.mattermost.com/user/wcdfilll), [wiebel](https://github.com/wiebel), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1)
+
## Release v9.2 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release)
- **9.2.4, released **
@@ -35,7 +137,11 @@ From Mattermost v9.2, this changelog summarizes updates for the latest cloud and
- Original 9.2.0 release
### Important Upgrade Notes
- - Please read the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) before upgrading.
+ - Fixed data retention policies to run jobs when any custom retention policy is enabled even when the global retention policy is set to **keep-forever**. Before this fix, the enabled custom data retention policies wouldn’t run as long as the global data retention policy was set to **keep-forever** or was disabled. After the fix, the custom data retention policies will run automatically even when the global data retention policy is set to **keep-forever**. Once the server is upgraded, posts may unintentionally be deleted. Admins should make sure to disable all custom data retention policies before upgrading, and then re-enable them again after upgrading.
+
+```{Important}
+If you upgrade from a release earlier than v9.1, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html).
+```
### Compatibility
- Updated minimum required Edge version to 116+.
diff --git a/source/deploy/mobile-app-changelog.md b/source/deploy/mobile-app-changelog.md
index 37c771f0565..dd3ded633cf 100644
--- a/source/deploy/mobile-app-changelog.md
+++ b/source/deploy/mobile-app-changelog.md
@@ -1,13 +1,36 @@
# Mattermost mobile apps changelog
-Latest Mattermost Mobile Apps releases:
-
-- [2.10.1 Release](#release)
-- [2.10.0 Release](#id1)
-- [2.9.1 Release](#id3)
-- [2.9.0 Release](#id6)
-- [2.8.2 Release](#id12)
-- [2.8.1 Release](#id15)
+This changelog summarizes updates to Mattermost mobile apps releases for [Mattermost](https://mattermost.com).
+
+```{contents} On this page
+:depth: 2
+```
+
+## 2.11.0 Release
+- Release Date: December 15, 2023
+- Server Versions Supported: Server v8.1.0+ is required. Self-Signed SSL Certificates are not supported unless the user installs the CA certificate on their device.
+
+### Compatibility
+ - **Upgrade to server version v8.1.0 or later is required.** Support for server [Extended Support Release](https://docs.mattermost.com/upgrade/extended-support-release.html) (ESR) v7.8.0 has ended and upgrading to server ESR v8.1.0 or later is required. As we innovate and offer newer versions of our mobile apps, we maintain backwards compatibility only with supported server versions. Users who upgrade to the newest mobile apps while being connected to an unsupported server version can be exposed to compatibility issues, which can cause crashes or severe bugs that break core functionality of the app.
+ - Android operating system 7+ [is required by Google](https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html).
+ - iPhone 5s devices and later with iOS 12.4+ is required.
+
+### Improvements
+ - Added Vietnamese as a new language (beta).
+ - Calls: added user interface (UI) redesign and polish.
+ - Calls: fixed **More messages bar** and added a small redesign for consistency with calls banners.
+ - Implemented **Copy header text** functionality for channel headers.
+ - Added the ability to reconnect to a previous server after migrating the app to a new device.
+
+### Bug Fixes
+ - Fixed an issue where the channel order in the channel sidebar categories got reversed after favoriting or unfavoriting a channel.
+ - Fixed an issue with channel ordering by recency.
+ - Fixed issue on Android where notifications didn't open or they opened in the wrong channel.
+ - Fixed a rare issue where the app would crash when tapping on a push notification.
+
+### Known Issues
+ - Users are unable to adjust the font size via the OS font size setting.
+ - Some Google Pixel phones on Android 12+ might not continue past the login screen. This is a known issue with the OS, and the current workaround is to restart the device.
## 2.10.1 Release
- Release Date: November 29, 2023
diff --git a/source/guides/package-aws.rst b/source/deploy/package-aws.rst
similarity index 100%
rename from source/guides/package-aws.rst
rename to source/deploy/package-aws.rst
diff --git a/source/deploy/postgres-migration.rst b/source/deploy/postgres-migration.rst
index a0ba27544c5..b3c28aeaa56 100644
--- a/source/deploy/postgres-migration.rst
+++ b/source/deploy/postgres-migration.rst
@@ -22,6 +22,11 @@ Required tools
- Install ``pgLoader``. See the official `installation
guide `__.
+
+.. note::
+ - If you are using MySQL v8: Due to a `known bug `__ in pgLoader compiled binaries, you need to compile pgLoader from the source. Please follow the steps `here `__ to build from the source.
+ - We have received reports that the pgloader Docker image can be limited in terms of memory resources. Please use pgloader directly instead of a Docker container.
+
- Install morph CLI by running the following command:
- ``go install github.com/mattermost/morph/cmd/morph@v1``
@@ -41,6 +46,7 @@ Before the migration
- Determine the migration window needed. This process requires you to stop the Mattermost Server during the migration.
- See the `schema-diffs <#schema-diffs>`__ section to ensure data compatibility between schemas.
- Prepare your PostgreSQL environment by creating a database and user. See the `database `__ documentation for details.
+- If you are planning to run an iterative migration (running the pgloader several times), please see :ref:`iterative-migrations` section.
Prepare target database
-----------------------
@@ -102,13 +108,23 @@ Full-text indexes
It's possible that some words in the ``Posts`` and ``FileInfo`` tables can exceed the `limits of the maximum token length `__ for full text search indexing. In these cases, we recommend dropping the ``idx_posts_message_txt`` and ``idx_fileinfo_content_txt`` indexes from the PostgreSQL schema, and creating these indexes after the migration by running the following queries:
-To drop indexes, run the following commands before the migration (These are included in the script, so you may not need to run these manually):
+To drop indexes, run the following commands before the migration. Although these statements are included in the script, we recommend running these manually to prevent errors:
.. code:: sql
DROP INDEX IF EXISTS idx_posts_message_txt;
DROP INDEX IF EXISTS idx_fileinfo_content_txt;
+Also make sure these indexes are re-created after the migration is completed. You can simply run the following queries to re-create these indexes:
+
+.. code:: sql
+
+ CREATE INDEX IF NOT EXISTS idx_posts_message_txt ON {{ .source_schema }}.posts USING gin(to_tsvector('english', message));
+ CREATE INDEX IF NOT EXISTS idx_fileinfo_content_txt ON {{ .source_schema }}.fileinfo USING gin(to_tsvector('english', content));
+
+.. note::
+ If any of the entries in your ``Posts`` and ``FileInfo`` tables exceed the limit, ``pgloader`` will fail with ``ERROR: string is too long for tsvector`` error while trying to create these indexes. You should remove these statements from the ``pgloader`` configuration.
+
Artifacts may remain from previous configurations/versions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -396,3 +412,24 @@ Compare the plugin data
.. code:: sh
dbcmp --source "${MYSQL_DSN}" --target "${POSTGRES_DSN}" --exclude="db_migrations,systems"
+
+Iterative migrations
+-------------------
+
+There are several steps in the pgloader configuration file that assume migration will take place in one go. If you are planning to run the migration over and over again, please complete the changes defined below:
+
+- Discard all of the statments defined in the ``BEFORE LOAD DO`` and ``AFTER LOAD DO`` sections.
+- Run the statments defined in ``BEFORE LOAD DO`` section only once before the migration.
+- Once the migration is completed, run the statments defined in the ``AFTER LOAD DO`` section manually.
+
+Troubleshooting
+-----------------
+
+Unsupported authentication for MySQL
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you are facing an error due to authentication with MySQL v8, it may be related to a `known issue `__ with the pgLoader. The fix is to set default authentication method to ``mysql_native_password`` in your MySQL configuration. To do so, add the ``default-authentication-plugin=mysql_native_password`` value to your ``mysql.cnf`` file. Also do not forget to update your user to use this authentication method.
+
+.. code:: sql
+
+ ALTER USER ''@'%' IDENTIFIED WITH mysql_native_password BY '';
diff --git a/source/guides/collaborate.rst b/source/guides/collaborate.rst
index 5eb8d139ec9..95137f55175 100644
--- a/source/guides/collaborate.rst
+++ b/source/guides/collaborate.rst
@@ -8,6 +8,9 @@ Mattermost provides 1:1 and group messaging that features integrated voice/video
This Mattermost end user documentation is designed for anyone who wants guidance on using Mattermost to collaborate.
+.. include:: ../_static/badges/academy-channels.rst
+ :start-after: :nosearch:
+
.. toctree::
:maxdepth: 1
:hidden:
diff --git a/source/guides/deployment-guides.rst b/source/guides/deployment-guides.rst
index ad52d0cecc4..edddaaebd32 100644
--- a/source/guides/deployment-guides.rst
+++ b/source/guides/deployment-guides.rst
@@ -12,4 +12,4 @@ These deployment guides are for administrators who are ready to integrate Matter
Desktop and mobile app deployment
* :doc:`Server deployment ` - Guides for admins setting up a self-hosted deployment.
-* :doc:`Desktop and mobile app deployment ` - Guides for admins deploying the desktop and mobile apps.
+* :doc:`Desktop and mobile app deployment ` - Guides for admins deploying the desktop and mobile apps.
\ No newline at end of file
diff --git a/source/guides/deployment.rst b/source/guides/deployment.rst
index f7ff4d96314..ee6878c344f 100644
--- a/source/guides/deployment.rst
+++ b/source/guides/deployment.rst
@@ -18,9 +18,11 @@ Learn how to install, deploy, and scale Mattermost for teams and organizations o
Deploy using Omnibus
Deploy using Kubernetes
Deploy on Red Hat
+ Set up an NGINX proxy
+ Set up TLS
Prepare for your Mattermost deployment
Deployment guides
- Deploy Mattermost Apps
+ Deploy Mattermost Apps
Upgrade Mattermost
Scale Mattermost
Deployment troubleshooting
@@ -40,8 +42,10 @@ Learn how to install, deploy, and scale Mattermost for teams and organizations o
* :doc:`Deploy using Omnibus ` - An entire Mattermost installation on a single server.
* :doc:`Deploy using Kubernetes ` - Install using the Mattermost Helm Chart or Operator and simplified updates.
* :doc:`Deploy on Red Hat ` - Support for all current Red Hat Enterprise Linux platforms with a tarball.
+* :doc:`Set up NGINX proxy ` - Learn how to configure Mattermost for HTTPS for deployments of more than 200 users.
+* :doc:`Set up TLS ` - Learn how to configure Mattermost for HTTPS for deployments of fewer than 200 concurrent users.
* :doc:`Deployment guides ` - for administrators who are ready to integrate Mattermost with their organization’s IT infrastructure.
-* :doc:`Deploy Mattermost Apps ` - Learn how to deploy Mattermost Apps to your server.
+* :doc:`Deploy Mattermost Apps ` - Learn how to deploy Mattermost Apps to your server.
* :doc:`Prepare for your Mattermost deployment ` - Review software and hardware requirements for Mattermost server, and plan out your Mattermost rollout.
* :doc:`Upgrade Mattermost ` - Learn how to stay up to date with the latest features and improvements.
* :doc:`Scale Mattermost ` - Learn how to scale and monitor your Mattermost deployment.
diff --git a/source/guides/get-help.rst b/source/guides/get-help.rst
index c1608498a0c..f5e931ccffd 100644
--- a/source/guides/get-help.rst
+++ b/source/guides/get-help.rst
@@ -42,6 +42,6 @@ Feedback
- `Propose a feature: `__ Vote for feature proposals or submit your feature ideas.
Enterprise support
-----------------
+------------------
Mattermost offers `support services `__ to our Enterprise customers, where Mattermost customers can make a `support request `__ to get help from our team.
\ No newline at end of file
diff --git a/source/guides/use-mattermost.rst b/source/guides/use-mattermost.rst
index dd227866ce8..433f684e613 100644
--- a/source/guides/use-mattermost.rst
+++ b/source/guides/use-mattermost.rst
@@ -4,9 +4,6 @@ Use Mattermost
.. include:: ../_static/badges/allplans-cloud-selfhosted.rst
:start-after: :nosearch:
-.. |lightbulb| image:: ../images/lightbulb-outline_F0336.svg
- :alt: Lightbulb icon.
-
This Mattermost end user documentation is designed for anyone looking to connect and collaborate in Mattermost, build repeatable, automated processes, and make Mattermost match your work preferences.
.. toctree::
diff --git a/source/guides/deploy-mm-aws.png b/source/images/deploy-mm-aws.png
similarity index 100%
rename from source/guides/deploy-mm-aws.png
rename to source/images/deploy-mm-aws.png
diff --git a/source/guides/deploy-third-party-aws.png b/source/images/deploy-third-party-aws.png
similarity index 100%
rename from source/guides/deploy-third-party-aws.png
rename to source/images/deploy-third-party-aws.png
diff --git a/source/images/keywords-highlighted.gif b/source/images/keywords-highlighted.gif
new file mode 100644
index 00000000000..5bbc17d7ba5
Binary files /dev/null and b/source/images/keywords-highlighted.gif differ
diff --git a/source/images/keywords-trigger-mentions.gif b/source/images/keywords-trigger-mentions.gif
new file mode 100644
index 00000000000..65b06faeaf6
Binary files /dev/null and b/source/images/keywords-trigger-mentions.gif differ
diff --git a/source/install/common-deploy-faq.rst b/source/install/common-deploy-faq.rst
new file mode 100644
index 00000000000..d0de2e3b4e1
--- /dev/null
+++ b/source/install/common-deploy-faq.rst
@@ -0,0 +1,31 @@
+:orphan:
+:nosearch:
+
+Why doesn't Mattermost start at system boot?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To have the Mattermost Server start at system boot, the systemd until file needs to be enabled. Run the following command:
+
+.. code-block:: none
+ :class: mm-code-block
+
+ sudo systemctl enable mattermost.service
+
+Why does Mattermost fail to start at system boot?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If your database is on the same system as your Mattermost Server, we recommend editing the default ``/lib/systemd/system/mattermost.service`` systemd unit file to add ``After=postgresql.service`` and ``BindsTo=postgresql.service`` to the ``[Unit]`` section.
+
+Can I run Mattermost without a proxy?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Yes. Mattermost binds to 443 instead of 8065. The Mattermost binary requires the correct permissions to do that binding. You must activate the ``CAP_NET_BIND_SERVICE`` capability to allow the new Mattermost binary to bind to ports lower than 1024 by running the following command:
+
+.. code-block:: none
+ :class: mm-code-block
+
+ sudo setcap cap_net_bind_service=+ep ./mattermost/bin/mattermost
+
+.. note::
+
+ - We highly recommend using a proxy in front of Mattermost server for up to 200 concurrent users. If you have fewer than 200 concurrent users, you can `set up TLS `__. If you're exceeding 200 concurrent users, you'll need `a proxy `__, such as NGINX, in front of Mattermost to manage the traffic.
\ No newline at end of file
diff --git a/source/install/common-prod-deploy-docker.rst b/source/install/common-prod-deploy-docker.rst
index 3f332951bae..a049598cf0a 100644
--- a/source/install/common-prod-deploy-docker.rst
+++ b/source/install/common-prod-deploy-docker.rst
@@ -1,10 +1,14 @@
:orphan:
:nosearch:
+
.. This page is intentionally not accessible via the LHS navigation pane because it's common content included on other docs pages.
You'll need `Docker Engine `__ and `Docker Compose `__ (release 1.28 or later) Follow the steps in the `Mattermost Docker Setup README `__ or follow the steps below.
-Encountering issues with your Docker deployment? See the `Docker deployment troubleshooting `__ documentation for details.
+.. important::
+
+ - The production configuration results in two separate containers: one for the database and one for the application. An optional third container results when using NGINX for reverse proxy.
+ - Encountering issues with your Docker deployment? See the `Docker deployment troubleshooting `__ documentation for details.
1. In a terminal window, clone the repository and enter the directory.
diff --git a/source/install/download-latest-tarball.rst b/source/install/download-latest-tarball.rst
index 35c8fbc1896..b50ecd7dca5 100644
--- a/source/install/download-latest-tarball.rst
+++ b/source/install/download-latest-tarball.rst
@@ -15,7 +15,7 @@ Using ``wget``, download the Mattermost Server release you want to install.
- wget https://releases.mattermost.com/9.2.4/mattermost-9.2.4-linux-amd64.tar.gz
+ wget https://releases.mattermost.com/9.3.0/mattermost-9.3.0-linux-amd64.tar.gz
Copied to clipboard
diff --git a/source/install/faq_kubernetes.rst b/source/install/faq_kubernetes.rst
index f84114e18fd..5ad1b3150c4 100644
--- a/source/install/faq_kubernetes.rst
+++ b/source/install/faq_kubernetes.rst
@@ -1,9 +1,6 @@
:orphan:
:nosearch:
-Frequently Asked Questions
---------------------------
-
What's the difference between the Mattermost Operator and Helm Charts?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -38,7 +35,7 @@ Are environment variables supported?
Yes. However, ``config.json`` file settings will be overridden if the `$MM_SQLSETTINGS_DATASOURCE` environment variable is set. See the `Environment Variables `__ configuration settings documentation for details.
-Issues configuring Login with SAML on Kubernetes
+Issues configuring login with SAML on Kubernetes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For some SAML authentication configurations, ``502`` status code response can appear during login attempts due to requests being too large.
@@ -56,4 +53,4 @@ To fix this issue, configure an appropriate buffer size (8k or 16k should be suf
nginx.ingress.kubernetes.io/proxy-buffer-size: 16k
...
-Use caution when changing the buffer size as it may slightly impact NGINX performance. Exact values are machine-dependent.
+Use caution when changing the buffer size as it may slightly impact NGINX performance. Exact values are machine-dependent.
\ No newline at end of file
diff --git a/source/install/install-kubernetes.rst b/source/install/install-kubernetes.rst
index cbe6f341539..2be5da19291 100644
--- a/source/install/install-kubernetes.rst
+++ b/source/install/install-kubernetes.rst
@@ -8,9 +8,264 @@ Install Mattermost on Kubernetes
.. contents:: On this page
:backlinks: top
- :local:
-.. include:: common-prod-deploy-kubernetes.rst
- :start-after: :nosearch:
+You can install and deploy a production-ready Mattermost system on a Kubernetes cluster using the Mattermost Kubernetes Operator in practically any environment with less IT overhead and more automation.
+
+You'll need a `Kubernetes cluster `__ running version 1.16 or higher, Kubernetes CLI `kubectl `__ installed on local machine, and a basic understanding of Kubernetes concepts (such as deployments, pods) and actions (such as applying manifests, viewing pod logs). Running Mattermost in Kubernetes requires resources based on your total number of users. See the `Mattermost Kubernetes Operator `__ documentation to learn more about the minimum Kubernetes cluster resources Mattermost requires at different scales.
+
+.. tip::
+
+ - If you’re unsure about which environment you want to use for your Kubernetes cluster, we suggest using a managed service such as as `Amazon EKS `__, `Azure Kubernetes Service `__, `Google Kubernetes Engine `__, or `DigitalOcean Kubernetes `__.
+ - Looking for a quick way to evaluate Mattermost or to try out the latest Mattermost deployment? See this article for details on creating your own Mattermost instance on Kubernetes using Minicube: https://medium.com/@Erez.Tamam/create-your-own-mattermost-instance-on-kubernetes-in-10-minutes-d13f576ed794.
+
+Install the operators
+---------------------
+
+Operators are installed using ``kubectl``, and each operator is created in its own namespace. You can install and run multiple Mattermost installations in the same cluster using different namespaces.
+
+1. Install NGINX ingress controller by following the instructions `here `__.
+
+2. Install the Mattermost Operator:
+
+ .. code-block:: sh
+ :class: mm-code-block
+
+ kubectl create ns mattermost-operator
+
+ kubectl apply -n mattermost-operator -f https://raw.githubusercontent.com/mattermost/mattermost-operator/master/docs/mattermost-operator/mattermost-operator.yaml
+
+.. tip::
+
+ To install the operators using the Mattermost Operator Helm chart, follow the instructions `here `__.
+
+Deploy Mattermost
+-----------------
+
+1. (Mattermost Enterprise only) Create a Mattermost license secret by opening a text editor and creating a secret manifest containing the Mattermost license. Replace ``[LICENSE_FILE_CONTENTS]`` below with the contents of your Mattermost license file. Save the file as ``mattermost-license-secret.yaml``.
+
+ .. code-block:: yaml
+
+ apiVersion: v1
+ kind: Secret
+ metadata:
+ name: mattermost-license
+ type: Opaque
+ stringData:
+ license: [LICENSE_FILE_CONTENTS]
+
+2. Create an installation manifest file locally in a text editor by copying and pasting contenst from the Mattermost installation manifest, and adjusting fields for your configuration and environment.
+
+ .. code-block:: yaml
+
+ apiVersion: installation.mattermost.com/v1beta1
+ kind: Mattermost
+ metadata:
+ name: mm-example-full # Chose the desired name
+ spec:
+ size: 5000users # Adjust to your requirements
+ ingress:
+ enabled: true
+ host: example.mattermost-example.com # Adjust to your domain
+ annotations:
+ kubernetes.io/ingress.class: nginx
+ version: 6.0.1
+ licenseSecret: "" # If you have created secret in step 1, put its name here
+
+ Save the file as ``mattermost-installation.yaml``. While recommended file names are provided, your naming conventions may differ.
+
+ Some of the most commonly-used fields include:
+
+ .. csv-table::
+ :header: "Field", "Description", "Must Edit"
+
+ "metadata.name", "The name of your Mattermost as it will be shown in Kubernetes. The shorter the better.", "Yes"
+ "spec.size", "The size of your installation. This can be '100users', '1000users, '5000users', '10000users', or '25000users'.", "Yes"
+ "spec.ingress.host", "The DNS for your Mattermost installation.", "Yes"
+ "spec.version", "The Mattermost version.", "No"
+ "spec.licenseSecret", "The name of the Kubernetes secret containing your license (e.g. mattermost-license). Required for Enterprise deployments.", "No"
+ "spec.mattermostEnv", "List of custom environment variables for the Mattermost instance.", "No"
+
+ Additional fields are documented `in the example `__.
+ If you have previous experience with Kubernetes Custom Resources, you can also check the `Custom Resource Definition `__.
+
+3. Create external database secret.
+
+ The database secret needs to be created in the namespace that will hold the Mattermost installation. The secret should contain the following data:
+
+ .. csv-table::
+ :header: "Key", "Description", "Required"
+
+ "DB_CONNECTION_STRING", "Connection string to the database.", "Yes"
+ "MM_SQLSETTINGS_DATASOURCEREPLICAS", "Connection string to read replicas of the database.", "No"
+ "DB_CONNECTION_CHECK_URL", "The URL used for checking that the database is accessible.", "No"
+
+ Example secret for AWS Aurora compatible with PostgreSQL:
+
+ .. code-block:: yaml
+
+ apiVersion: v1
+ data:
+ DB_CONNECTION_CHECK_URL: cG9zdGdyZXM6Ly91c2VyOnN1cGVyX3NlY3JldF9wYXNzd29yZEBteS1kYXRhYmFzZS5jbHVzdGVyLWFiY2QudXMtZWFzdC0xLnJkcy5hbWF6b25hd3MuY29tOjU0MzIvbWF0dGVybW9zdD9jb25uZWN0X3RpbWVvdXQ9MTAK
+ DB_CONNECTION_STRING: cG9zdGdyZXM6Ly91c2VyOnN1cGVyX3NlY3JldF9wYXNzd29yZEBteS1kYXRhYmFzZS5jbHVzdGVyLWFiY2QudXMtZWFzdC0xLnJkcy5hbWF6b25hd3MuY29tOjU0MzIvbWF0dGVybW9zdD9jb25uZWN0X3RpbWVvdXQ9MTAK
+ MM_SQLSETTINGS_DATASOURCEREPLICAS: cG9zdGdyZXM6Ly91c2VyOnN1cGVyX3NlY3JldF9wYXNzd29yZEBteS1kYXRhYmFzZS5jbHVzdGVyLXJvLWFiY2QudXMtZWFzdC0xLnJkcy5hbWF6b25hd3MuY29tOjU0MzIvbWF0dGVybW9zdD9jb25uZWN0X3RpbWVvdXQ9MTAK
+ kind: Secret
+ metadata:
+ name: my-postgres-connection
+ type: Opaque
+
+ .. note::
+
+ - For PostgreSQL databases, the connection is checked with `pg_isready `__ so the ``DB_CONNECTION_CHECK_URL`` is the same as connection string.
+
+4. Create external filestore secret.
+
+ The filestore secret needs to be created in the namespace that will hold the Mattermost installation. The secret should contain the following data:
+
+ .. csv-table::
+ :header: "Key", "Description", "Required"
+
+ "accesskey", "Filestore access key.", "Yes"
+ "secretkey", "Filestore secret key.", "Yes"
+
+ Example secret for AWS S3:
+
+ .. code-block:: yaml
+
+ apiVersion: v1
+ data:
+ accesskey: QUNDRVNTX0tFWQo=
+ secretkey: U1VQRVJfU0VDUkVUX0tFWQo=
+ kind: Secret
+ metadata:
+ name: my-s3-iam-access-key
+ type: Opaque
+
+5. Adjust installation manifest.
+
+ To instruct Mattermost Operator to use the external database, modify Mattermost manifest by adding the following fields:
+
+ .. code-block:: yaml
+
+ spec:
+ ...
+ database:
+ external:
+ secret: my-postgres-connection
+
+ To instruct Mattermost Operator to use the external filestore, modify Mattermost manifest by adding the following fields:
+
+ .. code-block:: yaml
+
+ spec:
+ ...
+ fileStore:
+ external:
+ url: s3.amazonaws.com
+ bucket: my-s3-bucket
+ secret: my-s3-iam-access-key
+
+ Additionally when using Amazon S3, set the ``MM_FILESETTINGS_AMAZONS3SSE`` and ``MM_FILESETTINGS_AMAZONS3SSL`` environment variables to ``true``:
+
+ .. code-block:: yaml
+
+ spec:
+ ...
+ mattermostEnv:
+ ...
+ - name: MM_FILESETTINGS_AMAZONS3SSE
+ value: "true"
+ - name: MM_FILESETTINGS_AMAZONS3SSL
+ value: "true"
+
+ Example Mattermost manifest configured with both external databases and filestore:
+
+ .. code-block:: yaml
+
+ apiVersion: installation.mattermost.com/v1beta1
+ kind: Mattermost
+ metadata:
+ name: mm-example-external-db
+ spec:
+ size: 5000users
+ ingress:
+ enabled: true
+ host: example.mattermost-example.com
+ annotations:
+ kubernetes.io/ingress.class: nginx
+ version: 6.0.1
+ licenseSecret: ""
+ database:
+ external:
+ secret: my-postgres-connection
+ fileStore:
+ external:
+ url: s3.amazonaws.com
+ bucket: my-s3-bucket
+ secret: my-s3-iam-access-key
+ mattermostEnv:
+ - name: MM_FILESETTINGS_AMAZONS3SSE
+ value: "true"
+ - name: MM_FILESETTINGS_AMAZONS3SSL
+ value: "true"
+
+6. Apply the installation manifest file. Manifests are applied with ``kubectl``. Before running the commands make sure you are connected to your Kubernetes cluster.
+
+ a. Create the Mattermost namespace:
+
+ .. code-block:: sh
+ :class: mm-code-block
+
+ kubectl create ns mattermost
+
+ b. (Mattermost Enterprise only) apply the license file by specifying the path to the file you created in step 1:
+
+ .. code-block:: sh
+ :class: mm-code-block
+
+ kubectl apply -n mattermost -f [PATH_TO_LICENCE_SECRET_MANIFEST]
+
+ c. Apply the installation file by specifying the path to the file you created in step 2:
+
+ .. code-block:: sh
+ :class: mm-code-block
+
+ kubectl apply -n mattermost -f [PATH_TO_MATTERMOST_MANIFEST]
+
+ The deployment process can be monitored in the Kubernetes user interface or in command line by running:
+
+ .. code-block:: sh
+ :class: mm-code-block
+
+ kubectl -n mattermost get mm -w
+
+ The installation should be deployed successfully, when the Custom Resource reaches the ``stable`` state.
+
+7. Configure DNS and use Mattermost.
+
+ a. When the deployment is complete, obtain the hostname or IP address of your Mattermost deployment using the following command:
+
+ .. code-block:: sh
+ :class: mm-code-block
+
+ kubectl -n mattermost get ingress
+
+ b. Copy the resulting hostname or IP address from the ``ADDRESS`` column, open your browser, and connect to Mattermost.
+
+ c. Use your domain registration service to create a canonical name or IP address record for the ``ingress.host`` in your manifest, pointing to the address you just copied. For example, on AWS you would do this within a hosted zone in Route53.
+
+ d. Navigate to the ``ingress.host`` URL in your browser and use Mattermost.
+
+.. note::
+
+ If you just want to try it out on your local machine without configuring the domain, run the following command, and then navigate to http://localhost:8065.
+
+ .. code-block:: sh
+ :class: mm-code-block
+
+ kubectl -n mattermost port-forward svc/[YOUR_MATTERMOST_NAME] 8065:8065
+
+Frequently asked questions
+--------------------------
-.. move the source content of common-prod-deploy-kubernetes to this page so that the mini-toc can build by walking the page for headings
\ No newline at end of file
+.. include:: faq_kubernetes.rst
+ :start-after: :nosearch:
\ No newline at end of file
diff --git a/source/install/install-nginx.rst b/source/install/install-nginx.rst
index 9a169d73335..c9fe83c642e 100644
--- a/source/install/install-nginx.rst
+++ b/source/install/install-nginx.rst
@@ -7,7 +7,7 @@ Install NGINX server
--------------------
NGINX is a popular web server and is responsible for hosting some of the largest and highest-traffic sites on the internet. It's more resource-friendly than Apache in most cases, and can be used as a web server or reverse proxy.
-In a production setting, use a proxy server for greater security and performance of Mattermost.
+In a production setting, we recommend using a proxy server for greater security and performance of Mattermost.
- SSL termination
- HTTP to HTTPS redirect
diff --git a/source/install/install-rhel-8.rst b/source/install/install-rhel-8.rst
index 3eca7ee6562..2b4596ffb36 100644
--- a/source/install/install-rhel-8.rst
+++ b/source/install/install-rhel-8.rst
@@ -103,32 +103,5 @@ You may also remove the Mattermost systemd unit file and the user/group created
Frequently asked questions
--------------------------
-Why doesn't Mattermost start at system boot?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To have the Mattermost Server start at system boot, the systemd until file needs to be enabled. Run the following command:
-
-.. code-block:: none
- :class: mm-code-block
-
- sudo systemctl enable mattermost.service
-
-Why does Mattermost fail to start at system boot?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If your database is on the same system as your Mattermost Server, we recommend editing the default ``/lib/systemd/system/mattermost.service`` systemd unit file to add ``After=postgresql.service`` and ``BindsTo=postgresql.service`` to the ``[Unit]`` section.
-
-Can I run Mattermost without a proxy?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Yes. Mattermost binds to 443 instead of 8065. The Mattermost binary requires the correct permissions to do that binding. You must activate the ``CAP_NET_BIND_SERVICE`` capability to allow the new Mattermost binary to bind to ports lower than 1024 by running the following command:
-
-.. code-block:: none
- :class: mm-code-block
-
- sudo setcap cap_net_bind_service=+ep ./mattermost/bin/mattermost
-
-.. note::
-
- - We recommend the `Mattermost Omnibus install method `__ over the tarball if you are running the Mattermost Server and database a single system as this greatly reduces setup and ongoing maintenance.
- - We highly recommend using a proxy in front of Mattermost server.
\ No newline at end of file
+.. include:: common-deploy-faq.rst
+ :start-after: :nosearch:
\ No newline at end of file
diff --git a/source/install/install-tar.rst b/source/install/install-tar.rst
index 5e35ce68733..6078fe30568 100644
--- a/source/install/install-tar.rst
+++ b/source/install/install-tar.rst
@@ -95,32 +95,5 @@ You may also remove the Mattermost systemd unit file and the user/group created
Frequently asked questions
--------------------------
-Why doesn't Mattermost start at system boot?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To have the Mattermost Server start at system boot, the systemd until file needs to be enabled. Run the following command:
-
-.. code-block:: none
- :class: mm-code-block
-
- sudo systemctl enable mattermost.service
-
-Why does Mattermost fail to start at system boot?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If your database is on the same system as your Mattermost Server, we recommend editing the default ``/lib/systemd/system/mattermost.service`` systemd unit file to add ``After=postgresql.service`` and ``BindsTo=postgresql.service`` to the ``[Unit]`` section.
-
-Can I run Mattermost without a proxy?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Yes. However, like NGINX, in place, Mattermost binds to 443 instead of 8065. The Mattermost binary requires the correct permissions to do that binding. You must activate the ``CAP_NET_BIND_SERVICE`` capability to allow the new Mattermost binary to bind to ports lower than 1024 by running the following command:
-
-.. code-block:: none
- :class: mm-code-block
-
- sudo setcap cap_net_bind_service=+ep ./mattermost/bin/mattermost
-
-.. note::
-
- - We don't recommend deploying Mattermost on a single server unless you have fewer than 200 users.
- - We recommend the `Mattermost Omnibus install method `__ over the tarball if you are running the Mattermost Server and database a single system as this greatly reduces setup and ongoing maintenance.
\ No newline at end of file
+.. include:: common-deploy-faq.rst
+ :start-after: :nosearch:
\ No newline at end of file
diff --git a/source/install/install-ubuntu.rst b/source/install/install-ubuntu.rst
index e2c297accc1..c5460e09e54 100644
--- a/source/install/install-ubuntu.rst
+++ b/source/install/install-ubuntu.rst
@@ -163,36 +163,5 @@ If you wish to remove the Mattermost Server for any reason, you can run this com
Frequently asked questions
--------------------------
-Why doesn't Mattermost start at system boot?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To have the Mattermost Server start at system boot, the systemd until file needs to be enabled. Run the following command:
-
-.. code-block:: none
- :class: mm-code-block
-
- sudo systemctl enable mattermost.service
-
-Why does Mattermost fail to start at system boot?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If your database is on the same system as your Mattermost Server, we recommend editing the default ``/lib/systemd/system/mattermost.service`` systemd unit file to add ``After=postgresql.service`` and ``BindsTo=postgresql.service`` to the ``[Unit]`` section.
-
-.. note::
-
- We recommend the `Mattermost Omnibus install method `__ over the ``deb`` signed package if you are running the Mattermost Server and database on a single system as this greatly reduces setup and ongoing maintenance.
-
-Can I run Mattermost without a proxy?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Yes. Mattermost binds to 443 instead of 8065. The Mattermost binary requires the correct permissions to do that binding. You must activate the ``CAP_NET_BIND_SERVICE`` capability to allow the new Mattermost binary to bind to ports lower than 1024 by running the following command:
-
-.. code-block:: none
- :class: mm-code-block
-
- sudo setcap cap_net_bind_service=+ep ./mattermost/bin/mattermost
-
-.. note::
-
- - We recommend the `Mattermost Omnibus install method `__ over the tarball if you are running the Mattermost Server and database a single system as this greatly reduces setup and ongoing maintenance.
- - We highly recommend using a proxy in front of Mattermost server.
+.. include:: common-deploy-faq.rst
+ :start-after: :nosearch:
\ No newline at end of file
diff --git a/source/install/installing-ubuntu-1804-LTS.rst b/source/install/installing-ubuntu-1804-LTS.rst
index eac9f0fca13..68b21a26eff 100644
--- a/source/install/installing-ubuntu-1804-LTS.rst
+++ b/source/install/installing-ubuntu-1804-LTS.rst
@@ -37,8 +37,7 @@ Install a production-ready Mattermost system on 1 to 3 machines.
.. include:: config-mattermost-server.rst
:start-after: :nosearch:
-.. include:: config-tls-mattermost.rst
- :start-after: :nosearch:
+
.. include:: install-nginx.rst
:start-after: :nosearch:
diff --git a/source/install/setup-nginx-proxy.rst b/source/install/setup-nginx-proxy.rst
new file mode 100644
index 00000000000..e0646e0fe71
--- /dev/null
+++ b/source/install/setup-nginx-proxy.rst
@@ -0,0 +1,14 @@
+Set up an NGINX proxy
+=====================
+
+.. include:: ../_static/badges/allplans-selfhosted.rst
+ :start-after: :nosearch:
+
+.. include:: install-nginx.rst
+ :start-after: :nosearch:
+
+.. include:: config-proxy-nginx.rst
+ :start-after: :nosearch:
+
+.. include:: config-ssl-http2-nginx.rst
+ :start-after: :nosearch:
diff --git a/source/install/setup-tls.rst b/source/install/setup-tls.rst
new file mode 100644
index 00000000000..af270fc2162
--- /dev/null
+++ b/source/install/setup-tls.rst
@@ -0,0 +1,8 @@
+Set up TLS
+==========
+
+.. include:: ../_static/badges/allplans-selfhosted.rst
+ :start-after: :nosearch:
+
+.. include:: config-tls-mattermost.rst
+ :start-after: :nosearch:
\ No newline at end of file
diff --git a/source/install/software-hardware-requirements.rst b/source/install/software-hardware-requirements.rst
index a7def4a33e5..16446d26479 100644
--- a/source/install/software-hardware-requirements.rst
+++ b/source/install/software-hardware-requirements.rst
@@ -50,7 +50,7 @@ PC web
:header: "Browser", "Self-Hosted Technical Requirement", "Cloud Technical Requirement"
"Chrome", "v116+", "v116+"
- "Firefox", "v102+", "v102+"
+ "Firefox", "v115+", "v115+"
"Safari", "v16.2+", "v16.2+"
"Edge", "v116+", "v116+"
diff --git a/source/manage/common-support-packet.rst b/source/manage/common-support-packet.rst
index b286463eb51..4e6b431d293 100644
--- a/source/manage/common-support-packet.rst
+++ b/source/manage/common-support-packet.rst
@@ -1,6 +1,6 @@
:nosearch:
-Use the System Console to generate a Mattermost Support Packet that includes configuration information, logs, plugin details, and data on external dependencies. Confidential data, such as passwords, are automatically stripped.
+Use the System Console to generate a Mattermost Support Packet that includes configuration information, logs, plugin details, trial Enterprise flag, and data on external dependencies. Confidential data, such as passwords, are automatically stripped.
.. note::
@@ -46,6 +46,6 @@ The Support Packet contains 3 go runtime profiling files:
- ``heap.prof`` contains a heap profile
- ``goroutines`` contains a dump of all the running go routines
-These files can be read using `pprof `_.
+These files can be read using `pprof `__.
Use ``go tool pprof -web X`` to open a visualization of the profile in your browser, replacing ``X`` with the profile's file name.
diff --git a/source/manage/generating-support-packet.rst b/source/manage/generating-support-packet.rst
index 0ff4ae9941d..4e10166f79d 100644
--- a/source/manage/generating-support-packet.rst
+++ b/source/manage/generating-support-packet.rst
@@ -1,7 +1,7 @@
Generating a support packet
===========================
-.. include:: ../_static/badges/ent-pro-cloud-selfhosted.rst
+.. include:: ../_static/badges/ent-pro-selfhosted.rst
:start-after: :nosearch:
*Available in legacy Mattermost Enterprise Edition E10 and E20*
diff --git a/source/manage/mmctl-command-line-tool.rst b/source/manage/mmctl-command-line-tool.rst
index 7b513d90dfd..bd5776f0ece 100644
--- a/source/manage/mmctl-command-line-tool.rst
+++ b/source/manage/mmctl-command-line-tool.rst
@@ -19,7 +19,7 @@ mmctl usage notes
- We recommend you add the path to the Mattermost ``bin`` folder into your ``$PATH`` environment variable. This ensures that you can run mmctl commands locally regardless of your current directory location.
- If the ``bin`` directory is not added to the ``$PATH`` environment variable, each time you use mmctl you must be in the ``bin`` directory to run mmctl commands, and the commands must be prefixed with ``./``. If you're working from a different directory, make sure you specify the full path to mmctl when running mmctl commands.
- Parameters in mmctl commands are order-specific.
-- You can use the ``--local`` flag with mmctl commands to run them without authentication by allowing communicating with the server through a Unix socket. See the `local mode `__ documentation for activation and usage details.
+- You can use the ``--local`` flag with mmctl commands to run them without authentication by allowing communicating with the server through a Unix socket. See the `local mode <#local-mode>`__ documentation for activation and usage details.
- If special characters (``!``, ``|``, ``(``, ``)``, ``\``, ``'``, and ``"``) are used, the entire argument needs to be surrounded by single quotes (e.g. ``-password 'mypassword!'``, or the individual characters need to be escaped out (e.g. ``password mypassword\!``).
- Team name and channel name refer to the handles, not the display names. So in the URL ``https://community.mattermost.com/core/channels/town-square`` team name would be ``core`` and channel name would be ``town-square``.
@@ -40,7 +40,7 @@ mmctl commands
- `mmctl group team`_ - Team Group Management
- `mmctl group user`_ - Custom User Group Management
- `mmctl import`_ - Import Management
-- `mmctl integrity`_ - Database Record Integrity
+- `mmctl integrity`_ - (Deprecated) Database Record Integrity
- `mmctl ldap`_ - LDAP Management
- `mmctl license`_ - License Management
- `mmctl logs`_ - Log Management
@@ -834,7 +834,7 @@ Manage channels.
- `mmctl channel create`_ - Create a channel
- `mmctl channel delete`_ - Delete a channel
- `mmctl channel list`_ - List all channels on specified teams
- - `mmctl channel make-private`_ - Set a channel's type to "private" (Deprecated)
+ - `mmctl channel make-private`_ - (Deprecated) Set a channel's type to "private"
- `mmctl channel modify`_ - Modify a channel's type (private/public)
- `mmctl channel move`_ - Move channels to the specified team
- `mmctl channel rename`_ - Rename a channel
@@ -1021,7 +1021,7 @@ List all Public, Private, and archived channels on specified teams. Archived cha
mmctl channel make-private
~~~~~~~~~~~~~~~~~~~~~~~~~~
-This command is deprecated in favour of using `mmctl channel modify `__ and the ``--private`` flag instead.
+This command is deprecated in favour of `mmctl channel modify `__ and the ``--private`` flag.
**Description**
@@ -1187,7 +1187,7 @@ Rename an existing channel.
mmctl channel restore
~~~~~~~~~~~~~~~~~~~~~
-Deprecated in favor of `mmctl channel unarchive`_. Not used in Mattermost Server version v5.26 and later.
+This command is deprecated in favor of `mmctl channel unarchive`_. Not used in Mattermost Server version v5.26 and later.
**Description**
@@ -1520,7 +1520,7 @@ Create a custom slash command for the specified team.
mmctl command delete
~~~~~~~~~~~~~~~~~~~~
-Deprecated in favor of `mmctl command archive`_.
+This command is deprecated in favor of `mmctl command archive`_.
**Description**
@@ -3556,7 +3556,7 @@ mmctl integrity
**Description**
-Perform a relational integrity check which returns information about any orphaned record found. This command can only be run using local mode.
+This command is deprecated from Mattermost v9.3. Performs a relational integrity check which returns information about any orphaned record found. This command can only be run using `local mode <#local-mode>`__.
**Format**
@@ -5932,7 +5932,7 @@ mmctl user deleteall
**Description**
-Permanently delete all users and all related information including posts. This command can only be run in local mode.
+Permanently delete all users and all related information including posts. This command can only be run in `local mode <#local-mode>`__.
**Format**
diff --git a/source/manage/telemetry.rst b/source/manage/telemetry.rst
index 2a1773f8897..f68eff786b5 100644
--- a/source/manage/telemetry.rst
+++ b/source/manage/telemetry.rst
@@ -89,7 +89,7 @@ Server Configuration Settings
**Type values (enumerated integer and enumerated boolean)**
- **ServiceSettings**: enum WebserverMode, bool EnableSecurityFixAlert, bool EnableInsecureOutgoingConnections, bool EnableIncomingWebhooks, bool EnableOutgoingWebhooks, bool EnableCommands, bool EnableDeveloper, bool EnableOnlyAdminIntegrations, bool EnablePostUsernameOverride, bool EnablePostIconOverride, bool EnableCustomEmoji, enum RestrictCustomEmojiCreation, bool EnableTesting, bool DeveloperFlags, bool EnableClientPerformanceDebugging, bool EnableMultifactorAuthentication, bool EnableOAuthServiceProvider, enum ConnectionSecurity, bool UseLetsEncrypt, bool Forward80To443, enum ConnectionSecurity, bool TLSStrictTransport, bool EnforceMultifactorAuthentication, enum RestrictPostDelete, bool AllowEditPost, bool EnableUserTypingMessages, bool EnablePostSearch, bool EnableUserStatuses, bool EnableChannelViewMessages, bool EnableEmojiPicker, bool EnableGifPicker, bool EnableAuthenticationTransfer, enum TeammateNameDisplay, bool EnableUserAccessTokens, enum MaximumLoginAttempts, bool ExtendSessionLengthWithActivity, enum SessionLengthWebInHours, enum SessionLengthMobileInHours, enum SessionLengthSSOInHours, int SessionCacheInMinutes, enum SessionIdleTimeoutInMinutes, enum PostEditTimeLimit, enum TimeBetweenUserTypingUpdatesMilliseconds, enum ClusterLogTimeoutMilliseconds, bool CloseUnusedDirectMessages, bool EnablePreviewFeatures, bool EnableTutorial, bool EnableOnboarding, bool ExperimentalEnableDefaultChannelLeaveJoinMessages, bool ExperimentalGroupUnreadChannels, bool AllowCookiesForSubdomains, bool EnableAPITeamDeletion, bool EnableAPITriggerAdminNotifications, bool EnableAPIUserDeletion, bool EnableAPIChannelDeletion, bool ExperimentalEnableHardenedMode, bool DisableLegacyMFA, bool ExperimentalStrictCSRFEnforcement, bool EnableEmailInvitations, bool ExperimentalChannelOrganization, bool ExperimentalChannelSidebarOrganization, bool EnableLegacySidebar, bool CorsAllowCredentials, bool CorsDebug, bool DisableBotsWhenOwnerIsDeactivated, bool EnableBotAccountCreation, bool RestrictLinkPreviews, bool EnablePermalinkPreviews, bool EnableSVGs, bool EnableLatex, bool EnableInlineLatex, bool EnableOpenTracing, bool Directory, bool RetentionDays, bool ExperimentalDataPrefetch, bool EnableLocalMode; **TeamSettings**: bool EnableUserCreation, bool EnableTeamCreation, bool RestrictTeamNames, enum RestrictTeamInvite, enum RestrictPublicChannelManagement, enum RestrictPrivateChannelManagement, enum RestrictPublicChannelCreation, enum RestrictPrivateChannelCreation, enum RestrictPublicChannelDeletion, enum RestrictPrivateChannelDeletion, enum RestrictPrivateChannelManageMembers, bool EnableOpenServer, bool EnableUserDeactivation, bool EnableCustomBrand, bool RestrictDirectMessage, enum MaxNotificationsPerChannel, bool EnableConfirmNotificationsToChannel; enum MaxUsersPerTeam, enum MaxChannelsPerTeam, bool EnableJoinLeaveMessageByDefault, bool EnableCustomUserStatuses, bool EnableLastActiveTime, bool ExperimentalTownSquareIsReadOnly, bool ExperimentalHideTownSquareinLHS, bool EnableXToLeaveChannelsFromLHS, bool ExperimentalEnableAutomaticReplies, bool ExperimentalViewArchivedChannels, bool LockTeammateNameDisplay, bool MaxFieldSize; **ClientRequirementSettings**: enum AndroidLatestVersion, enum AndroidMinVersion, enum DesktopLatestVersion, enum DesktopMinVersion, enum IosLatestVersion, enum IosMinVersion; **DisplaySettings**: bool ExperimentalTimezone; **GuestAccountsSettings**: bool Enable, bool AllowEmailAccounts, bool EnforceMultifactorAuthentication; **SqlSettings**: enum DriverName, bool Trace, enum MaxIdleConns, enum ConnMaxIdleTimeMilliseconds, bool ConnMaxLifetimeMilliseconds; enum MaxOpenC onns, enum QueryTimeout, bool DisableDatabaseSearch; **LogSettings**: bool EnableConsole, enum ConsoleLevel, bool ConsoleJson, bool EnableFile, enum FileLevel, bool FileJson, bool EnableWebhookDebugging; **NotificationLogSettings**: bool EnableConsole, bool ConsoleLevel, bool ConsoleJson, bool EnableFile, bool FileLevel, bool FileJson **PasswordSettings**: bool Lowercase, bool Number, bool Uppercase, bool Symbol, enum MinimumLength; **FileSettings**: bool EnablePublicLink, enum DriverName, enum MaxFileSize, enum FileSettings.MaxImageResolution, enum MaxImageDecoderConcurrency, bool FileSettings.ExtractContent, bool FileSettings.ArchiveRecursion, bool AmazonS3SSL, bool AmazonS3SignV2, bool AmazonS3SSE, bool AmazonS3Trace, bool EnableFileAttachments, bool EnableMobileUpload, bool EnableMobileDownload; **EmailSettings**: bool EnableSignUpWithEmail, bool EnableSignInWithEmail, bool EnableSignInWithUsername, bool RequireEmailVerification, bool SendEmailNotifications, bool UseChannelInEmailNotifications, bool EmailNotificationContentsType, bool EnableSMTPAuth, enum ConnectionSecurity, bool SendPushNotifications, enum PushNotificationContents, bool EnableEmailBatching, bool SkipServerCertificateVerification, enum EmailBatchingBufferSize, enum EmailBatchingInterval, bool EnablePreviewModeBanner, enum SMTPServerTimeout; **MessageExportSettings**: bool DownloadExportResults; **RateLimitSettings**: bool EnableRateLimiter, bool VaryByRemoteAddr, bool VaryByUser, enum PerSec, enum MaxBurst, enum MemoryStoreSize; **PrivacySettings**: bool ShowEmailAddress, bool ShowFullName; **ThemeSettings**: bool EnableThemeSelection, bool AllowCustomThemes; **GitLabSettings**: bool Enable; **GoogleSettings**: bool Enable; **Office365Settings**: bool Enable; **SupportSettings**: bool CustomTermsOfServiceEnabled; enum CustomTermsOfServiceReAcceptancePeriod; **LdapSettings**: bool Enable, bool EnableSync, enum ConnectionSecurity, bool SkipCertificateVerification, enum SyncIntervalMinutes, enum QueryTimeout, enum MaxPageSize, bool EnableAdminFilter; **ComplianceSettings**: bool Enable, bool EnableDaily; **LocalizationSettings**: enum DefaultServerLocale, enum DefaultClientLocale, enum AvailableLocales; **SamlSettings**: bool Enable, bool EnableSyncWithLdap, bool IgnoreGuestsLdapSync, bool EnableSyncWithLdapIncludeAuth, bool Verify, bool Encrypt, bool SignRequest, bool EnableAdminFilter; **ClusterSettings**: bool Enable, bool UseIpAddress, bool UseExperimentalGossip, bool ReadOnlyConfig, bool EnableExperimentalGossipEncryption, bool EnableGossipCompression; **MetricsSettings**: bool Enable, enum BlockProfileRate; **WebrtcSettings** (only in v5.5 and earlier): bool Enable; **ExperimentalSettings** bool ClientSideCertEnable, bool EnablePostMetadata, bool LinkMetadataTimeoutMilliseconds, bool EnableClickToReply, bool RestrictSystemAdmin, bool UseNewSAMLLibrary, bool CloudBilling, bool RemoteClusters, bool EnableSharedChannels, bool EnableRemoteClusterService, bool PatchPluginsReactDOM, bool Disableappbar, bool AllowSyncedDrafts; **AnnouncementSettings**: bool EnableBanner, bool AllowBannerDismissal, bool AdminNoticesEnabled, bool UserNoticesEnabled; **ElasticsearchSettings**: bool EnableIndexing, bool EnableSearching, bool Sniff, enum PostIndexReplicas, enum PostIndexShards, enum LiveIndexingBatchSize, enum BatchSize, enum RequestTimeoutSeconds, bool SkipTLSVerification, bool Trace; **PluginSettings**: bool Enable, bool EnableUploads, bool EnableHealthCheck, bool EnableMarketplace, bool EnableRemoteMarketplace, bool AutomaticPrepackagedPlugins, bool RequirePluginSignature; **DataRetentionSettings**: bool EnableMessageDeletion, bool MessageRetentionDays, bool AllowInsecureDownloadUrl, bool EnableFileDeletion, bool FileRetentionDays, enum DeletionJobStartTime; **MessageExportSettings**: bool EnableExport, enum ExportFormat, enum DailyRunTime, enum ExportFromTimestamp, enum BatchSize, enum GlobalRelaySettings.CustomerType; **ExperimentalAuditSettings**: bool SysLogEnabled, bool SysLogInsecure, enum SysLogMaxQueueSize, bool FileEnabled, enum FileMaxSizeMB, enum FileMaxAgeDays, bool FileMaxBackups, bool FileCompress, enum FileMaxQueueSize; **BleveSettings**: bool EnableIndexing, bool EnableSearching, bool EnableAutocomplete, enum BatchSize; bool FeatureFlags
+ **ServiceSettings**: enum WebserverMode, bool EnableSecurityFixAlert, bool EnableInsecureOutgoingConnections, bool EnableIncomingWebhooks, bool EnableOutgoingWebhooks, bool EnableCommands, bool EnableDeveloper, bool EnableOnlyAdminIntegrations, bool EnablePostUsernameOverride, bool EnablePostIconOverride, bool EnableCustomEmoji, enum RestrictCustomEmojiCreation, bool EnableTesting, bool DeveloperFlags, bool EnableClientPerformanceDebugging, bool EnableMultifactorAuthentication, bool EnableOAuthServiceProvider, enum ConnectionSecurity, bool UseLetsEncrypt, bool Forward80To443, enum ConnectionSecurity, bool TLSStrictTransport, bool EnforceMultifactorAuthentication, enum RestrictPostDelete, bool AllowEditPost, bool EnableUserTypingMessages, bool EnablePostSearch, bool EnableUserStatuses, bool EnableChannelViewMessages, bool EnableEmojiPicker, bool EnableGifPicker, bool EnableAuthenticationTransfer, enum TeammateNameDisplay, bool EnableUserAccessTokens, enum MaximumLoginAttempts, bool ExtendSessionLengthWithActivity, enum SessionLengthWebInHours, enum SessionLengthMobileInHours, enum SessionLengthSSOInHours, int SessionCacheInMinutes, enum SessionIdleTimeoutInMinutes, enum PostEditTimeLimit, enum TimeBetweenUserTypingUpdatesMilliseconds, enum ClusterLogTimeoutMilliseconds, bool CloseUnusedDirectMessages, bool EnablePreviewFeatures, bool EnableTutorial, bool EnableOnboarding, bool ExperimentalEnableDefaultChannelLeaveJoinMessages, bool ExperimentalGroupUnreadChannels, bool AllowCookiesForSubdomains, bool EnableAPITeamDeletion, bool EnableAPITriggerAdminNotifications, bool EnableAPIUserDeletion, bool EnableAPIChannelDeletion, bool ExperimentalEnableHardenedMode, bool DisableLegacyMFA, bool ExperimentalStrictCSRFEnforcement, bool EnableEmailInvitations, bool ExperimentalChannelOrganization, bool ExperimentalChannelSidebarOrganization, bool EnableLegacySidebar, bool CorsAllowCredentials, bool CorsDebug, bool DisableBotsWhenOwnerIsDeactivated, bool EnableBotAccountCreation, bool RestrictLinkPreviews, bool EnablePermalinkPreviews, bool EnableSVGs, bool EnableLatex, bool EnableInlineLatex, bool EnableOpenTracing, bool Directory, bool RetentionDays, bool ExperimentalDataPrefetch, bool EnableLocalMode; **TeamSettings**: bool EnableUserCreation, bool EnableTeamCreation, bool RestrictTeamNames, enum RestrictTeamInvite, enum RestrictPublicChannelManagement, enum RestrictPrivateChannelManagement, enum RestrictPublicChannelCreation, enum RestrictPrivateChannelCreation, enum RestrictPublicChannelDeletion, enum RestrictPrivateChannelDeletion, enum RestrictPrivateChannelManageMembers, bool EnableOpenServer, bool EnableUserDeactivation, bool EnableCustomBrand, bool RestrictDirectMessage, enum MaxNotificationsPerChannel, bool EnableConfirmNotificationsToChannel; enum MaxUsersPerTeam, enum MaxChannelsPerTeam, bool EnableJoinLeaveMessageByDefault, bool EnableCustomUserStatuses, bool EnableLastActiveTime, bool ExperimentalTownSquareIsReadOnly, bool ExperimentalHideTownSquareinLHS, bool EnableXToLeaveChannelsFromLHS, bool ExperimentalEnableAutomaticReplies, bool ExperimentalViewArchivedChannels, bool LockTeammateNameDisplay, bool MaxFieldSize; **ClientRequirementSettings**: enum AndroidLatestVersion, enum AndroidMinVersion, enum DesktopLatestVersion, enum DesktopMinVersion, enum IosLatestVersion, enum IosMinVersion; **GuestAccountsSettings**: bool Enable, bool AllowEmailAccounts, bool EnforceMultifactorAuthentication; **SqlSettings**: enum DriverName, bool Trace, enum MaxIdleConns, enum ConnMaxIdleTimeMilliseconds, bool ConnMaxLifetimeMilliseconds; enum MaxOpenC onns, enum QueryTimeout, bool DisableDatabaseSearch; **LogSettings**: bool EnableConsole, enum ConsoleLevel, bool ConsoleJson, bool EnableFile, enum FileLevel, bool FileJson, bool EnableWebhookDebugging; **NotificationLogSettings**: bool EnableConsole, bool ConsoleLevel, bool ConsoleJson, bool EnableFile, bool FileLevel, bool FileJson **PasswordSettings**: bool Lowercase, bool Number, bool Uppercase, bool Symbol, enum MinimumLength; **FileSettings**: bool EnablePublicLink, enum DriverName, enum MaxFileSize, enum FileSettings.MaxImageResolution, enum MaxImageDecoderConcurrency, bool FileSettings.ExtractContent, bool FileSettings.ArchiveRecursion, bool AmazonS3SSL, bool AmazonS3SignV2, bool AmazonS3SSE, bool AmazonS3Trace, bool EnableFileAttachments, bool EnableMobileUpload, bool EnableMobileDownload; **EmailSettings**: bool EnableSignUpWithEmail, bool EnableSignInWithEmail, bool EnableSignInWithUsername, bool RequireEmailVerification, bool SendEmailNotifications, bool UseChannelInEmailNotifications, bool EmailNotificationContentsType, bool EnableSMTPAuth, enum ConnectionSecurity, bool SendPushNotifications, enum PushNotificationContents, bool EnableEmailBatching, bool SkipServerCertificateVerification, enum EmailBatchingBufferSize, enum EmailBatchingInterval, bool EnablePreviewModeBanner, enum SMTPServerTimeout; **MessageExportSettings**: bool DownloadExportResults; **RateLimitSettings**: bool EnableRateLimiter, bool VaryByRemoteAddr, bool VaryByUser, enum PerSec, enum MaxBurst, enum MemoryStoreSize; **PrivacySettings**: bool ShowEmailAddress, bool ShowFullName; **ThemeSettings**: bool EnableThemeSelection, bool AllowCustomThemes; **GitLabSettings**: bool Enable; **GoogleSettings**: bool Enable; **Office365Settings**: bool Enable; **SupportSettings**: bool CustomTermsOfServiceEnabled; enum CustomTermsOfServiceReAcceptancePeriod; **LdapSettings**: bool Enable, bool EnableSync, enum ConnectionSecurity, bool SkipCertificateVerification, enum SyncIntervalMinutes, enum QueryTimeout, enum MaxPageSize, bool EnableAdminFilter; **ComplianceSettings**: bool Enable, bool EnableDaily; **LocalizationSettings**: enum DefaultServerLocale, enum DefaultClientLocale, enum AvailableLocales; **SamlSettings**: bool Enable, bool EnableSyncWithLdap, bool IgnoreGuestsLdapSync, bool EnableSyncWithLdapIncludeAuth, bool Verify, bool Encrypt, bool SignRequest, bool EnableAdminFilter; **ClusterSettings**: bool Enable, bool UseIpAddress, bool UseExperimentalGossip, bool ReadOnlyConfig, bool EnableExperimentalGossipEncryption, bool EnableGossipCompression; **MetricsSettings**: bool Enable, enum BlockProfileRate; **WebrtcSettings** (only in v5.5 and earlier): bool Enable; **ExperimentalSettings** bool ClientSideCertEnable, bool EnablePostMetadata, bool LinkMetadataTimeoutMilliseconds, bool EnableClickToReply, bool RestrictSystemAdmin, bool UseNewSAMLLibrary, bool CloudBilling, bool RemoteClusters, bool EnableSharedChannels, bool EnableRemoteClusterService, bool PatchPluginsReactDOM, bool Disableappbar, bool AllowSyncedDrafts; **AnnouncementSettings**: bool EnableBanner, bool AllowBannerDismissal, bool AdminNoticesEnabled, bool UserNoticesEnabled; **ElasticsearchSettings**: bool EnableIndexing, bool EnableSearching, bool Sniff, enum PostIndexReplicas, enum PostIndexShards, enum LiveIndexingBatchSize, enum BatchSize, enum RequestTimeoutSeconds, bool SkipTLSVerification, bool Trace; **PluginSettings**: bool Enable, bool EnableUploads, bool EnableHealthCheck, bool EnableMarketplace, bool EnableRemoteMarketplace, bool AutomaticPrepackagedPlugins, bool RequirePluginSignature; **DataRetentionSettings**: bool EnableMessageDeletion, bool MessageRetentionDays, bool AllowInsecureDownloadUrl, bool EnableFileDeletion, bool FileRetentionDays, enum DeletionJobStartTime; **MessageExportSettings**: bool EnableExport, enum ExportFormat, enum DailyRunTime, enum ExportFromTimestamp, enum BatchSize, enum GlobalRelaySettings.CustomerType; **ExperimentalAuditSettings**: bool SysLogEnabled, bool SysLogInsecure, enum SysLogMaxQueueSize, bool FileEnabled, enum FileMaxSizeMB, enum FileMaxAgeDays, bool FileMaxBackups, bool FileCompress, enum FileMaxQueueSize; **BleveSettings**: bool EnableIndexing, bool EnableSearching, bool EnableAutocomplete, enum BatchSize; bool FeatureFlags
**Counts (integer)**
diff --git a/source/onboard/migrating-to-mattermost.rst b/source/onboard/migrating-to-mattermost.rst
index d04b78eece9..a3e0dca1ee3 100644
--- a/source/onboard/migrating-to-mattermost.rst
+++ b/source/onboard/migrating-to-mattermost.rst
@@ -64,39 +64,6 @@ If your data in the bespoke messenger is not vital, consider:
Sometimes systems running in parallel turn into a hard switch migration when a bespoke or deprecated system experiences a major outage or a security exploit. In 2017, this was experienced by many companies using Mattermost and HipChat.com in parallel when `HipChat suffered a major security breach where customer data was stolen by an unknown attacker `__.
-When IT adopts management of Mattermost, often they will purchase the commercial version for additional compliance, access control, and scale features, in addition to high quality commercial support for upgrades and migrations. Teams can `purchase Mattermost Enterpise Edition with a credit card online `__ or `contact sales `__ to engage in an enterprise procurement process.
-
-Why IT teams choose to leave bespoke solutions
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Because messaging solutions in technical teams often contain confidential and highly exploitable data, messaging solutions become a security concern that could impact all of an organization's technical infrastructure.
-
-When IT teams are asked to maintain a bespoke messaging solution, they often need to consider security issues such as the following:
-
-1. Is the solution backed by a commercial entity with significant legal obligations to ensure the safety and security of the product?
-2. Is there a security bulletin available to alert our organization of high-priority security updates, with clear instructions to apply the updates?
-3. Does the solution have a clear and up-to-date list of security updates?
-4. Are security updates released prior to detailed disclosure of vulnerability details, so as to provide our organization with time to apply security updates before vulnerabilities are widely known?
-5. In addition to internal testing, is there a Responsible Disclosure Policy for external security researchers to confidentially report security issues, and a recognition program for their contributions?
-
-Bespoke communication products that provide weak security assurance can dramatically increase the risk to IT teams and their organizations.
-
-When early adopters of a bespoke solutions ask IT to "take over" and assume the risk of managing a rapidly installed, difficult-to-maintain system with limited or no assurance of security, the IT team is under a great deal of pressure.
-
-Often at this point, IT teams accelerate their exploration of Mattermost as a long-term solution, given the `thousands of organizations (many in mission critical, high security industries) that have switched `__.
-
-Why IT teams choose Mattermost over bespoke solutions
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Mattermost is designed to replace bespoke messaging solutions through a platform that is unmatched in flexibility. From the `hundreds of open source projects extending and customizing Mattermost through APIs and drivers `__, to an innovative client and server plugin framework for adapting the Mattermost user experience to the specific workflows and needs, thousands of high performance teams rely on Mattermost daily.
-
-In addition, IT teams prefer Mattermost for its specific `security assurances `__:
-
-1. Mattermost products are backed by Mattermost, Inc., which has commercial contracts with hundreds of enterprises around the world, many with Fortune 500 and Global 2000 organizations who require significant obligations and assurances from vendors of critical infrastructure.
-2. Mattermost offers a `security bulletin `__ to alert IT teams and customers of high priority security updates, with step-by-step instructions for upgrade and options for commercial support.
-3. Mattermost maintains an `up-to-date list of security updates `__ for both its open source and commercial offerings.
-4. To keep IT teams safe, Mattermost waits 14 days after releasing a security patch before disclosing the specific details of the vulnerability each addresses.
-5. A `Responsible Disclosure Policy `__ is available to supplement internal security reviews with confidential reports from external security researchers, with a recognition program for security research contributions after the security patch is properly released.
----
@@ -121,4 +88,4 @@ The following instructions migrate Mattermost from one server to another by back
7. Start the DESTINATION deployment by running ``sudo start mattermost``. Then go to the **System Console**, make a minor change, and save it to upgrade your ``config.json`` schema to the latest version using default values for any new settings added.
8. Test that the system is working by going to the URL of an existing team. You may need to refresh your Mattermost browser page in order to get the latest updates from the upgrade.
-Once your migration is complete and verified, you can optionally `upgrade the Team Edition of Mattermost to Enterprise Edition using the upgrade guide `__.
\ No newline at end of file
+Once your migration is complete and verified, you can optionally `upgrade the Team Edition of Mattermost to Enterprise Edition using the upgrade guide `__.
diff --git a/source/onboard/multi-factor-authentication.rst b/source/onboard/multi-factor-authentication.rst
index cf01b945936..c2810e7b440 100644
--- a/source/onboard/multi-factor-authentication.rst
+++ b/source/onboard/multi-factor-authentication.rst
@@ -12,7 +12,7 @@ With MFA enabled, users need to provide a secure one-time code in addition to th
Mattermost offers a smartphone-based MFA check in addition to email-password or Active Directory/LDAP authentication to log in to the Mattermost server.
-Supported devices include iOS, Android, or other devices that are able to install Google Authenticator or a similar app. After the app is installed, the device does not require internet access.
+Supported devices include iOS, Android, or other devices that are able to install a software-based authenticator such as FreeOTP, Google Authenticator, Microsoft Authenticator, 1Password, LastPass, or a similar app. After the app is installed, the device does not require internet access.
.. note::
diff --git a/source/preferences/manage-advanced-options.rst b/source/preferences/manage-advanced-options.rst
index 0dad8383dd7..379abf795a3 100644
--- a/source/preferences/manage-advanced-options.rst
+++ b/source/preferences/manage-advanced-options.rst
@@ -136,21 +136,6 @@ By default, `message drafts `__ are synchron
This option isn't applicable to the mobile app.
-Allow Mattermost to prefetch channel posts
-------------------------------------------
-
-By default, Mattermost pre-fetches messages and user information when you start Mattermost in a browser. You can disable webapp pre-fetching so that Mattermost prefetches messages and user information as you open channels instead. Disabling prefetch is recommended for users with a high unread channel count in order to improve application performance.
-
-.. tabs::
-
- .. tab:: Web/Desktop
-
- Select **Allow Mattermost to prefetch channel posts** to disable webapp pre-fetching on startup, and pre-fetch the data as you open channels.
-
- .. tab:: Mobile
-
- This option isn't applicable to the mobile app.
-
Delete local files
------------------
diff --git a/source/preferences/manage-your-display-options.rst b/source/preferences/manage-your-display-options.rst
index d76db293aff..2ebe09047fe 100644
--- a/source/preferences/manage-your-display-options.rst
+++ b/source/preferences/manage-your-display-options.rst
@@ -255,6 +255,7 @@ You can control what language Mattermost displays in. Options include:
- Português (Brasil) - Portuguese
- Română - Romanian
- Svenska - Swedish
+- Tiếng Việt - Vietnamese
- Türkçe - Turkish
- български - Bulgarian
- Pусский - Russian
diff --git a/source/preferences/manage-your-notifications.rst b/source/preferences/manage-your-notifications.rst
index dba18a6c6a7..c32f6e88711 100644
--- a/source/preferences/manage-your-notifications.rst
+++ b/source/preferences/manage-your-notifications.rst
@@ -11,15 +11,15 @@ Manage your notifications
:alt: Use the Channel Info icon to access additional channel management options.
.. |more-icon| image:: ../images/dots-horizontal_F01D8.svg
- :alt: Use the More icon to access additional message options.
+ :alt: Use the More icon to access additional message options.
.. |dot-badge| image:: ../images/dot-badge.png
- :alt: A dot on the badge means you have unread activity in at least one channel you're a member of.
- :width: 50px
+ :alt: A dot on the badge means you have unread activity in at least one channel you're a member of.
+ :width: 50px
.. |numbered-badge| image:: ../images/numbered-badge.png
- :alt: A numbered badge means you have at least 1 unread message, @mention, or one of your keywords has triggered a notification.
- :width: 50px
+ :alt: A numbered badge means you have at least 1 unread message, @mention, or one of your keywords has triggered a notification.
+ :width: 50px
Mattermost notifies you of new activity in the following ways:
@@ -103,7 +103,26 @@ On mobile, select the **Settings** |gear| icon and tap **Notifications**.
**Customize notification keywords**
- You can customize any additional non case-sensitive keywords to trigger notifications. For example, you can receive notifications for all messages and threads related to a specific topic, project name, or customer. Separate multiple keywords using commas or by pressing :kbd:`Tab`, and use :kbd:`Backspace` to manage keywords.
+ Using a web browser or the desktop app, customize any additional non case-sensitive keywords to trigger notifications. For example, you can receive notifications for all messages and threads related to a specific topic, project name, or customer. Separate multiple keywords using commas or by pressing :kbd:`Tab`, and use :kbd:`Backspace` to manage keywords.
+
+ .. image:: ../images/keywords-trigger-mentions.gif
+ :alt: A walkthrough of setting keywords that trigger mentions in Mattermost.
+
+ .. raw:: html
+
+
+
+ **Passively track keywords (no notification)**
+
+ .. include:: ../_static/badges/ent-pro-only.rst
+ :start-after: :nosearch:
+
+ From Mattermost v9.3, Mattermost Enterprise and Professional users interested calling attention to specific topics of interest across channels, at a glance, can do so without triggering notifications.
+
+ Using a web browser or the desktop app, passively track key terms by specifying single or multi-words to highlight in all channels you're a member of. Keywords and phrases are automatically highlighted based on your `Mattermost theme `__.
+
+ .. image:: ../images/keywords-highlighted.gif
+ :alt: A walkthrough of setting keywords that are highlighted in Mattermost.
.. tab:: Replies
@@ -168,4 +187,4 @@ On mobile, select the **Settings** |gear| icon and tap **Notifications**.
.. tip::
- Missing notifications? Visit our `notifications knowledge base article `__ for troubleshooting tips and tricks.
\ No newline at end of file
+ Missing notifications? Visit our `notifications knowledge base article `__ for additional troubleshooting tips and tricks.
\ No newline at end of file
diff --git a/source/preferences/manage-your-security-preferences.rst b/source/preferences/manage-your-security-preferences.rst
index eb987df5eb9..396a69d597f 100644
--- a/source/preferences/manage-your-security-preferences.rst
+++ b/source/preferences/manage-your-security-preferences.rst
@@ -51,7 +51,7 @@ Select your profile picture, select **Profile**, and then select **Security** to
| | 7. Select **Save**. |
+----------------------+--------------------------------------------------------------------------------------------------------+
| Sign-in method | This option allows you to switch your login method between using email/username and password and |
-| | single sign-on credentials `__. |
+| | `single sign-on credentials `__. |
| | |
| | You can configure this setting using Mattermost in a web browser or using the desktop app. |
| | |
diff --git a/source/upgrade/open-source-components.rst b/source/upgrade/open-source-components.rst
index 1ef00d84caf..39bdc355136 100644
--- a/source/upgrade/open-source-components.rst
+++ b/source/upgrade/open-source-components.rst
@@ -9,6 +9,7 @@ The following open source components are used to provide the full benefits of Ma
Desktop
--------
+ - Mattermost Desktop v5.6.0 - `View Open Source Components `_.
- Mattermost Desktop v5.5.0 - `View Open Source Components `_.
- Mattermost Desktop v5.4.0 - `View Open Source Components `_.
- Mattermost Desktop v5.3.0 - `View Open Source Components `_.
@@ -28,6 +29,7 @@ Desktop
Mobile
-------
+ - Mattermost Mobile v2.11.0 - `View Open Source Components `_.
- Mattermost Mobile v2.10.0 - `View Open Source Components `_.
- Mattermost Mobile v2.9.0 - `View Open Source Components `_.
- Mattermost Mobile v2.8.0 - `View Open Source Components `_.
@@ -99,6 +101,7 @@ Mobile
Server
------------------------------
+ - Mattermost Enterprise Edition v9.3.0 - `View Open Source Components `_.
- Mattermost Enterprise Edition v9.2.0 - `View Open Source Components `_.
- Mattermost Enterprise Edition v9.1.0 - `View Open Source Components `_.
- Mattermost Enterprise Edition v9.0.0 - `View Open Source Components `_.
diff --git a/source/upgrade/release-lifecycle.rst b/source/upgrade/release-lifecycle.rst
index b9896b4aa10..f2e86a271ec 100644
--- a/source/upgrade/release-lifecycle.rst
+++ b/source/upgrade/release-lifecycle.rst
@@ -16,6 +16,8 @@ During each monthly release, Mattermost backports high severity or high impact s
+-------------+-----------------------+--------------------------+--------------------------+--------------------------+
| Version | Release Type | Lifecyle Start Date | Lifecycle End Date | Extended Support Release |
+=============+=======================+==========================+==========================+==========================+
+| 9.4 | Feature | 2024-01-16 | 2024-04-15 | |
++-------------+-----------------------+--------------------------+--------------------------+--------------------------+
| 9.3 | Feature | 2023-12-16 | 2024-03-15 | |
+-------------+-----------------------+--------------------------+--------------------------+--------------------------+
| 9.2 | Feature | 2023-11-16 | 2024-02-15 | |
diff --git a/source/upgrade/version-archive.rst b/source/upgrade/version-archive.rst
index ff9e8e20e94..dc2cfdfd469 100644
--- a/source/upgrade/version-archive.rst
+++ b/source/upgrade/version-archive.rst
@@ -16,6 +16,10 @@ If you want to check that the version of Mattermost you are installing is the of
Mattermost Enterprise Edition
------------------------------
+Mattermost Enterprise Edition v9.3.0 - `View Changelog `__ - `Download `__
+ - ``https://releases.mattermost.com/9.3.0/mattermost-9.3.0-linux-amd64.tar.gz``
+ - SHA-256 Checksum: ``2145f476b53f51c454c4f2631664ff080c46390928d2be142d3697750a023f3f``
+ - GPG Signature: https://releases.mattermost.com/9.3.0/mattermost-9.3.0-linux-amd64.tar.gz.sig
Mattermost Enterprise Edition v9.2.4 - `View Changelog `__ - `Download `__
- ``https://releases.mattermost.com/9.2.4/mattermost-9.2.4-linux-amd64.tar.gz``
- SHA-256 Checksum: ``1063a605cb9f7d57eef36919897502914af55b991b147ee48a73bc323569062a``
@@ -349,6 +353,10 @@ The open source Mattermost Team Edition is functionally identical to the commerc
We generally recommend installing Enterprise Edition, even if you don't currently need a license. This provides the flexibility to seamlessly unlock Enterprise features should you need them. However, if you only want to install software with a fully open source code base, then Team Edition is the best choice for you.
+Mattermost Team Edition v9.3.0 - `View Changelog `__ - `Download `__
+ - ``https://releases.mattermost.com/9.3.0/mattermost-team-9.3.0-linux-amd64.tar.gz``
+ - SHA-256 Checksum: ``a53ddf36e313f0d5bc69ecd5940d089ce0b6ab392831e8126edbba22dc0946b4``
+ - GPG Signature: https://releases.mattermost.com/9.3.0/mattermost-team-9.3.0-linux-amd64.tar.gz.sig
Mattermost Team Edition v9.2.4 - `View Changelog `__ - `Download `__
- ``https://releases.mattermost.com/9.2.4/mattermost-team-9.2.4-linux-amd64.tar.gz``
- SHA-256 Checksum: ``5d8757d27e63082417d259e6264d7918f49832809187a86fbb93b7502696a646``