Deploy Mattermost on Docker

Important

This unofficial guide is maintained by the Mattermost community and this deployment configuration is not yet officially supported by Mattermost, Inc. Community testing, feedback and improvements are welcome and greatly appreciated. You can edit this page on GitHub.

Deploy Mattermost using a multi-node production configuration with Docker Compose. Experience with Docker Compose is recommended.

For a single-node preview of Mattermost (without email) see Local Machine Setup using Docker.

If you have any problems installing, see the troubleshooting guide. To submit an improvement or correction, click Edit at the top of this page.

Production Docker Setup on Ubuntu

  1. Install Docker using the Ubuntu online guide or these instructions:

    sudo apt-get update
    sudo apt-get install wget
    wget -qO- https://get.docker.com/ | sh
    sudo usermod -aG docker <username>
    sudo service docker start
    newgrp docker
    
  2. Install Docker Compose using the online guide. You have to download the latest release from the Docker Compose Github page and put the binary on your /usr/local/bin folder. Usually, you can use the following command, replacing $dockerComposeVersion with the Docker Compose version to install:

    sudo curl -L "https://github.com/docker/compose/releases/download/$dockerComposeVersion/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  3. Deploy the Mattermost Production Docker setup by running:

    sudo apt-get install git
    git clone https://github.com/mattermost/mattermost-docker.git
    cd mattermost-docker
    docker-compose build
    mkdir -pv ./volumes/app/mattermost/{data,logs,config,plugins,client-plugins}
    sudo chown -R 2000:2000 ./volumes/app/mattermost/
    docker-compose up -d
    

The docker-compose network that is created defaults to 172.18.0.0/16. If you need to change the default network this link provides guidelines on how to do that. If the network is already set up with the default, you need to run the following command to remove it. Then, run the command again to regenerate the default network to include the new network setting.

docker network rm mattermost-server_mm-test

To verify the current Docker network use the following command to list it (you can access information about the options here):

docker network ls [OPTIONS]
  1. Configure TLS by following the instructions.
  2. Configure Email by following the SMTP email setup guide.
  3. (Optional) To enable enterprise features under System Console > Edition and License upload your trial license or subscription license file received via email.
  4. Configure your Server based on the configuration settings documentation.

Additional Guides:

Production Docker Setup on Arch Linux

To install on Arch Linux, see the installation guide on the Arch Linux wiki.

Production Docker Setup on macOS

You can run a production deployment on macOS by installing Docker Compose using the online guide then following the above instructions.

Other Options

To install Mattermost Team Edition instead of Mattermost Enterprise Edition, open docker-compose.yaml and uncomment the following lines:

# args:
#   - edition=team