Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deployment documentation updates #7731

Merged
merged 23 commits into from
Feb 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
b720fd1
Base updates for docs
nickmisasi Jan 30, 2025
1134c98
Adjustments to rhel
nickmisasi Feb 6, 2025
6dd1d0b
Fix warning
nickmisasi Feb 6, 2025
7e0a17e
fix conflicts
nickmisasi Feb 6, 2025
39bb3de
Merge branch 'master' into install-docs-updates
cwarnermm Feb 10, 2025
a77022b
Fixed build warnings & errors
cwarnermm Feb 10, 2025
b60f894
Add support email snippet, and new work around install-kubernetes docs
nickmisasi Feb 11, 2025
1681a69
Merge branch 'install-docs-updates' of github.com:mattermost/docs int…
nickmisasi Feb 11, 2025
e669e4e
fix conflicts
nickmisasi Feb 11, 2025
e6b0c1c
Fix a few things
nickmisasi Feb 11, 2025
9d7c374
More fixes
nickmisasi Feb 11, 2025
d3f229e
Merge branch 'master' into install-docs-updates
cwarnermm Feb 18, 2025
9bf8a5a
Added redirects, editorial pass
cwarnermm Feb 18, 2025
40823d2
Merge branch 'master' into install-docs-updates
cwarnermm Feb 19, 2025
ddff5a0
Merge branch 'master' into install-docs-updates
cwarnermm Feb 19, 2025
31e3535
Merge branch 'master' into install-docs-updates
cwarnermm Feb 19, 2025
b7a8369
Remove docker production deployment docs
nickmisasi Feb 20, 2025
240257a
Fix conflicts
nickmisasi Feb 20, 2025
98198ef
Merge branch 'master' into install-docs-updates
cwarnermm Feb 20, 2025
8a5cb6d
Merge branch 'master' into install-docs-updates
cwarnermm Feb 21, 2025
0e493ef
Editorial updates
cwarnermm Feb 21, 2025
9752302
Merge branch 'master' into install-docs-updates
cwarnermm Feb 21, 2025
e6a787d
Editorial updates
cwarnermm Feb 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -2392,8 +2392,6 @@ def setup(_: Sphinx):
"https://docs.mattermost.com/install/install-ubuntu",
"install/install-ubuntu-2004.html":
"https://docs.mattermost.com/install/installing-ubuntu-2004-LTS.html",
"install/install-mmte-helm-gitlab-helm.html":
"https://docs.mattermost.com/install/installing-team-edition-helm-chart.html",
"install/mattermost-omnibus.html":
"https://docs.mattermost.com/install/installing-mattermost-omnibus.html",
"install/outbound-proxy.html":
Expand Down Expand Up @@ -2547,6 +2545,20 @@ def setup(_: Sphinx):
"https://docs.mattermost.com/install/install-rhel.html#remove-mattermost",
"install/install-rhel-8.html#frequently-asked-questions":
"https://docs.mattermost.com/install/install-rhel.html#frequently-asked-questions",
"install/install-rhel-8.html#set-the-correct-contexts-for-opt-mattermost":
"https://docs.mattermost.com/install/install-rhel.html#set-bin-contexts-for-opt-mattermost-bin",
"install/install-kubernetes.html#install-mattermost-on-kubernetes":
"https://docs.mattermost.com/install/install-kubernetes.html#intended-outcome-and-deployment-recommendations",
"install/install-kubernetes.html#install-the-operators":
"https://docs.mattermost.com/install/install-kubernetes.html#installation-steps",
"install/install-kubernetes.html#mattermost-cloudnative-bootstrapper-sneak-peek":
"https://docs.mattermost.com/install/install-kubernetes.html",
"install/install-kubernetes.html#does-the-mattermost-operator-replace-the-mattermost-helm-chart":
"https://docs.mattermost.com/install/install-kubernetes.html#frequently-asked-questions",
"install/install-docker.html#deploy-mattermost-on-docker-for-production-use":
"https://docs.mattermost.com/install/install-docker.html#deploy-mattermost-on-docker-quick-start",
"install/install-docker.html#installing-a-different-version-of-mattermost":
"https://docs.mattermost.com/install/install-docker.html#install-a-different-version-of-mattermost",

# Integrations redirects.
# The integrations directory and its contents have been archived in FY23 Q2 and all applicable content has been moved from docs.mm.com to developers.mm.com.
Expand Down
2 changes: 1 addition & 1 deletion source/configure/calls-deployment.rst
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ This is a sample diagram showing how the ``rtcd`` standalone service can be depl
.. image:: ../images/calls-deployment-kubernetes.png
:alt: A diagram of calls deployed in a Kubernetes cluster.

If Mattermost isn't deployed in a Kubernetes cluster, and you want to use this deployment type, visit the :ref:`Kubernetes operator guide <install/install-kubernetes:mattermost operator>`.
If Mattermost isn't deployed in a Kubernetes cluster, and you want to use this deployment type, see the :doc:`Deploy Mattermost on Kubernetes </install/install-kubernetes>` documentation.

Helm Charts
~~~~~~~~~~~
Expand Down
2 changes: 0 additions & 2 deletions source/guides/additional-server-installation-guides.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@ Additional server installation guides

Deploy Mattermost on Bitnami </install/deploying-team-edition-on-bitnami>
AWS Elastic Beanstalk Docker setup </install/setting-up-aws-elastic-beanstalk-docker>
Install Mattermost Team Edition in GitLab Helm Chart </install/installing-team-edition-helm-chart>
Open source components </upgrade/open-source-components>

These guides are for administrators looking for alternate deployment methods as well as a list of all open source copmonents included across Mattermost releases.

* :doc:`Deploy Mattermost on Bitnami </install/deploying-team-edition-on-bitnami>`
* :doc:`AWS Elastic Beanstalk Docker setup </install/setting-up-aws-elastic-beanstalk-docker>`
* :doc:`Install on GitLab Helm Chart </install/installing-team-edition-helm-chart>`
* :doc:`Open source components </upgrade/open-source-components>`
2 changes: 1 addition & 1 deletion source/guides/deployment.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Learn how to install, deploy, and scale Mattermost for teams and organizations o
* :doc:`Migrate from MySQL to PostgreSQL </deploy/postgres-migration>` - Learn how to migrate from MySQL to PostgreSQL.
* :doc:`Prepare your Mattermost database </install/prepare-mattermost-database>` - Learn how to prepare and configure a database for Mattermost.
* :doc:`Deploy on Ubuntu </install/install-ubuntu>` - Signed packages direct from Mattermost featuring a single command for install and upgrades.
* :ref:`Deploy using Docker <install/install-docker:deploy mattermost on docker for production use>` - The fastest way to try Mattermost and a great single server installation option.
* :doc:`Deploy using Docker </install/install-docker>` - The fastest way to try Mattermost and a great single server installation option.
* :doc:`Deploy with a tarball </install/install-tar>` - Support for any Linux distribution.
* :doc:`Deploy using Omnibus </install/installing-mattermost-omnibus>` - An entire Mattermost installation on a single server.
* :doc:`Deploy using Kubernetes </install/install-kubernetes>` - Install using the Mattermost Helm Chart or Operator and simplified updates.
Expand Down
5 changes: 5 additions & 0 deletions source/install/common-configure-support-email.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
:orphan:
:nosearch:

.. note::
We recommend configuring the `Support Email <https://docs.mattermost.com/administration/config-settings.html#support-email>`_ under ``SupportSettings``, set ``"SupportEmail"``. This is the email address your users will contact when they need help.
8 changes: 8 additions & 0 deletions source/install/common-default-config-changes.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
:orphan:
:nosearch:

Configure the following properties in this file:

* Under ``SqlSettings``, set ``DriverName`` to ``"postgres"``. This is the default and recommended database for all Mattermost installations.
* Under ``SqlSettings``, set ``DataSource`` to ``"postgres://mmuser:<mmuser-password>@<host-name-or-IP>:5432/mattermost?sslmode=disable&connect_timeout=10"`` replacing ``mmuser``, ``<mmuser-password>``, ``<host-name-or-IP>`` and ``mattermost`` with your database name.
* Under ``ServiceSettings``, set ``"SiteURL"``: The domain name for the Mattermost application (e.g. ``https://mattermost.example.com``).
14 changes: 10 additions & 4 deletions source/install/common-deploy-faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
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:
To have the Mattermost Server start at system boot, the systemd unit file needs to be enabled. Run the following command:

.. code-block:: sh

sudo systemctl enable mattermost.service
sudo systemctl enable mattermost.service

Why does Mattermost fail to start at system boot?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -24,8 +24,14 @@ Yes. Mattermost binds to 443 instead of 8065. The Mattermost binary requires the

.. code-block:: sh

sudo setcap cap_net_bind_service=+ep ./mattermost/bin/mattermost
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 :doc:`set up TLS </install/setup-tls>`. If you're exceeding 200 concurrent users, you'll need :doc:`a proxy </install/setup-nginx-proxy>`, such as NGINX, in front of Mattermost to manage the traffic.
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 :doc:`set up TLS </install/setup-tls>`. If you're exceeding 200 concurrent users, you'll need :doc:`a proxy </install/setup-nginx-proxy>`, such as NGINX, in front of Mattermost to manage the traffic.

Where can I access Mattermost Server logs?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Mattermost Server logs are located in the ``logs`` directory of wherever you installed Mattermost. By default, this is ``/opt/mattermost/logs``, inside the ``mattermost.log`` file.

18 changes: 18 additions & 0 deletions source/install/common-gpg-public-key-changed.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
:orphan:
:nosearch:

.. important::

The GPG public key has changed. You can `import the new public key <https://deb.packages.mattermost.com/pubkey.gpg>`_ or run the automatic Mattermost PPA repository setup script provided below. Depending on your setup, additional steps may also be required, particularly for installations that didn't rely on the repository setup script. We recommend deleting the old key from ``/etc/apt/trusted.gpg.d`` before adding the apt repository.

- For Ubuntu Focal - 20.04 LTS:

``sudo apt-key del A1B31D46F0F3A10B02CF2D44F8F2C31744774B28``

``curl -sL -o- https://deb.packages.mattermost.com/pubkey.gpg | gpg --dearmor | sudo apt-key add``

- For Ubuntu Jammy - 22.04 LTS and Ubuntu Noble - 24.04 LTS:

``sudo rm /usr/share/keyrings/mattermost-archive-keyring.gpg``

``curl -sL -o- https://deb.packages.mattermost.com/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/mattermost-archive-keyring.gpg > /dev/null``
7 changes: 7 additions & 0 deletions source/install/common-omnibus-tip.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
:orphan:
:nosearch:

.. tip::

If you are running the Mattermost Server and database on a single system, we recommend the :doc:`Mattermost Omnibus install method </install/installing-mattermost-omnibus>` as this greatly reduces setup and ongoing maintenance.

6 changes: 6 additions & 0 deletions source/install/common-postgres-database-important.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
:orphan:
:nosearch:

.. important::

You need a PostgreSQL database. See the :doc:`database preparation </install/prepare-mattermost-database>` documentation for details on this prerequisite.
102 changes: 51 additions & 51 deletions source/install/install-docker.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,48 +4,40 @@ Deploy Mattermost via Docker
.. include:: ../_static/badges/allplans-selfhosted.rst
:start-after: :nosearch:

.. important::
This deployment method is not recommended for production environments. If you're looking to deploy a production Mattermost instance, we recommend using managed container services like AWS ECS, Azure Container Apps, or Google Cloud Run. These services provide better scalability, reliability, and maintenance features suited for production workloads.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if this would be better to suggest past a specific size. I can't see why a smaller organization shouldn't run Mattermost via Docker.

Copy link
Member

@cwarnermm cwarnermm Feb 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@spirosoik - Can we get a bit more specific about threshold guidance here? See Colton's suggestions below.


Install Docker
---------------

If you don't have Docker installed, follow the instructions below based on your operating system:
If you don't have Docker installed, follow the instructions below based on your operating system. You'll need `Docker Engine <https://docs.docker.com/engine/install/>`__ and `Docker Compose <https://docs.docker.com/compose/install/>`_ (release 1.28 or later).

.. tab:: macOS

Install `Docker for Mac <https://docs.docker.com/desktop/setup/install/mac-install/>`_.
Follow the `Install Docker Engine on Mac <https://docs.docker.com/desktop/setup/install/mac-install/>`_ documentation.

.. tab:: Windows 10

Install `Docker for Windows <https://docs.docker.com/desktop/setup/install/windows-install/>`_.
Follow the `Install Docker Engine on Windows <https://docs.docker.com/desktop/setup/install/windows-install/>`_ documentation.

.. tab:: Ubuntu

Follow the `Install Docker Engine on Ubuntu <https://docs.docker.com/engine/install/ubuntu/>`_ documentation, or you can use the Docker package from the Ubuntu repositories:

.. code-block:: sh

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
Follow the `Install Docker Engine on Ubuntu <https://docs.docker.com/engine/install/ubuntu/>`_ documentation.

.. tab:: Fedora

Follow the `Install Docker Engine on Fedora <https://docs.docker.com/engine/install/fedora/>`_ documentation, or you can use the Moby package (Moby is the FOSS upstream project to Docker) from the Fedora repositories:

.. code-block:: sh

sudo dnf install moby-engine
sudo systemctl start docker
Follow the `Install Docker Engine on Fedora <https://docs.docker.com/engine/install/fedora/>`_ documentation.

.. _Deploy Mattermost on Docker:

Deploy Mattermost on Docker for production use
----------------------------------------------
Deploy Mattermost on Docker (Quick Start)
-----------------------------------------

You'll need `Docker Engine <https://docs.docker.com/engine/install/>`__ and `Docker Compose <https://docs.docker.com/compose/install/>`_ (release 1.28 or later).
This section provides a quick start guide for deploying Mattermost on Docker. Leveraging `Docker Compose <https://docs.docker.com/compose/install/>`_, this deployment solution is designed to get Mattermost up and running quickly.

.. important::
.. note::

- 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.
- The deployment configuration results in two separate containers: a container for the database and a container for the application. An optional third container results when using NGINX for reverse proxy.
- Encountering issues with your Docker deployment? See the :ref:`Docker deployment troubleshooting <install/troubleshooting:docker deployments>` documentation for details.

To deploy Mattermost on Docker:
Expand All @@ -64,8 +56,9 @@ To deploy Mattermost on Docker:
cp env.example .env

.. important::

At a minimum, you must edit the ``DOMAIN`` value in the ``.env`` file to correspond to the domain for your Mattermost server.

- At a minimum, you must edit the ``DOMAIN`` value in the ``.env`` file to correspond to the domain for your Mattermost server.
- We recommend configuring the `Support Email <https://docs.mattermost.com/administration/config-settings.html#support-email>`_ via ``MM_SUPPORTSETTINGS_SUPPORTEMAIL``. This is the email address your users will contact when they need help.

3. Create the required directories and set their permissions.

Expand All @@ -74,7 +67,7 @@ To deploy Mattermost on Docker:
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
sudo chown -R 2000:2000 ./volumes/app/mattermost

4. Configure TLS for NGINX *(optional)*. If you're not using the included NGINX reverse proxy, you can skip this step.
4. *(Optional)* Configure TLS for NGINX. If you're not using the included NGINX reverse proxy, you can skip this step.

**If creating a new certificate and key:**

Expand All @@ -93,32 +86,18 @@ To deploy Mattermost on Docker:

.. code-block:: sh

mkdir -p ./volumes/web/cert
cp <PATH-TO-PRE-EXISTING-CERT>.pem ./volumes/web/cert/cert.pem
cp <PATH-TO-PRE-EXISTING-KEY>.pem ./volumes/web/cert/key-no-password.pem
mkdir -p ./volumes/web/cert
cp <PATH-TO-PRE-EXISTING-CERT>.pem ./volumes/web/cert/cert.pem
cp <PATH-TO-PRE-EXISTING-KEY>.pem ./volumes/web/cert/key-no-password.pem

To include the certificate and key, ensure the following lines in your ``.env`` file points to the appropriate files.

.. code-block:: sh

CERT_PATH=./volumes/web/cert/cert.pem
KEY_PATH=./volumes/web/cert/key-no-password.pem
CERT_PATH=./volumes/web/cert/cert.pem
KEY_PATH=./volumes/web/cert/key-no-password.pem

5. Configure SSO with GitLab *(optional)*. If you want to use SSO with GitLab, and you're using a self-signed certificate, you have to add the PKI chain for your authority. This is required to avoid the ``Token request failed: certificate signed by unknown authority`` error.

To add the PKI chain, uncomment this line in your ``.env`` file, and ensure it points to your ``pki_chain.pem`` file:

.. code-block:: sh

#GITLAB_PKI_CHAIN_PATH=<path_to_your_gitlab_pki>/pki_chain.pem

Then uncomment this line in your ``docker-compose.yml`` file, and ensure it points to the same ``pki_chain.pem`` file:

.. code-block:: sh

# - ${GITLAB_PKI_CHAIN_PATH}:/etc/ssl/certs/pki_chain.pem:ro

6. Deploy Mattermost.
5. Deploy Mattermost.

**Without using the included NGINX:**

Expand Down Expand Up @@ -148,18 +127,39 @@ To deploy Mattermost on Docker:

sudo docker compose -f docker-compose.yml -f docker-compose.nginx.yml down

7. Create your first Mattermost system admin user, :doc:`invite more users </collaborate/manage-channel-members>`, and explore the Mattermost platform.
6. Create your first Mattermost system admin user, :doc:`invite more users </collaborate/manage-channel-members>`, and explore the Mattermost platform.

Configure SSO With GitLab (Optional)
-------------------------------------

If you want to use SSO with GitLab, and you're using a self-signed certificate, you have to add the PKI chain for your authority. This is required to avoid the ``Token request failed: certificate signed by unknown authority`` error.

To add the PKI chain, uncomment this line in your ``.env`` file, and ensure it points to your ``pki_chain.pem`` file:

.. code-block:: sh

#GITLAB_PKI_CHAIN_PATH=<path_to_your_gitlab_pki>/pki_chain.pem

Then uncomment this line in your ``docker-compose.yml`` file, and ensure it points to the same ``pki_chain.pem`` file:

.. code-block:: sh

# - ${GITLAB_PKI_CHAIN_PATH}:/etc/ssl/certs/pki_chain.pem:ro

Upgrade from ``mattermost-docker``
-----------------------------------

The `mattermost-docker <https://github.com/mattermost/mattermost-docker>`__ GitHub repository is deprecated. Visit the `mattermost/docker <https://github.com/mattermost/docker>`_ GitHub repository to access the official Docker deployment solution for Mattermost.
Visit the `mattermost/docker <https://github.com/mattermost/docker>`_ GitHub repository to access the official Docker deployment solution for Mattermost.

.. note::

The `mattermost-docker <https://github.com/mattermost/mattermost-docker>`__ GitHub repository is deprecated.

To migrate from an existing ``mattermost/mattermost-prod-app`` image, we recommend migrating to either ``mattermost/mattermost-enterprise-edition`` or ``mattermost/mattermost-team-edition`` images, which are the official images supported by Mattermost. These images support PostgreSQL 11+ databases, which we know has been a long-running challenge for the community, and you will not lose any features or functionality by moving to these new images.

For additional help or questions, please refer to `this issue <https://github.com/mattermost/mattermost-docker/issues/489>`__.

Installing a different version of Mattermost
Install a different version of Mattermost
--------------------------------------------

1. Shut down your deployment.
Expand All @@ -170,8 +170,8 @@ Installing a different version of Mattermost

4. Redeploy Mattermost.

Troubleshooting your production deployment
-------------------------------------------
Troubleshooting deployment
--------------------------

Docker
~~~~~~
Expand All @@ -197,7 +197,7 @@ To remove all data and settings for your Mattermost deployment:
PostgreSQL
~~~~~~~~~~~

You can change the Postgres username and/or password (recommended) in the ``.env`` file.
For quick start deployments, you can change the Postgres username and/or password (recommended) in the ``.env`` file. If your database is managed externally, you'll need to change the password in your database management tool. Then, update the ``.env`` file with the new credentials.

TLS & NGINX
~~~~~~~~~~~~
Expand All @@ -212,6 +212,6 @@ If you encounter other problems while installing Mattermost, please refer to our
Trial Mattermost using Docker Preview
--------------------------------------

Looking to a way to evaluate Mattermost in a non-production environment using Docker? We recommend using the `Mattermost Docker Preview Image <https://github.com/mattermost/mattermost-docker-preview>`_ to install Mattermost in Preview Mode.
Looking for a way to evaluate Mattermost in using Docker? We recommend using the `Mattermost Docker Preview Image <https://github.com/mattermost/mattermost-docker-preview>`_ to install Mattermost in Preview Mode.

See the :doc:`trial Mattermost using Docker </install/trial-mattermost-using-docker>` documentation for details.
Loading