Instalação Mattermost · 10 min read · Oct 12, 2025

Como Instalar o Sistema de Mensagens Mattermost no Ubuntu 20.04

Mattermost é um aplicativo de mensagens de código aberto e auto-hospedado usado para chat, compartilhamento de arquivos, pesquisa e integrações. É uma alternativa ao chat Slack que reúne toda a comunicação da sua equipe em um só lugar. É escrito em React e Golang, e usa banco de dados PostgreSQL ou MySQL no backend. Oferece um rico conjunto de recursos, incluindo Notificações Push, Histórico de pesquisa ilimitado, Emojis personalizados, Webhooks e comandos, Diretório ativo, Suporte a implantação de banco de dados multi-nó, Fórum, Quadro de Discussão e muito mais.

Neste tutorial, mostraremos como instalar o Mattermost com Nginx e SSL Let’s Encrypt no Ubuntu 20.04.

Pré-requisitos

  • Um servidor rodando Ubuntu 20.04.
  • Um nome de domínio válido apontado para o IP do seu servidor.
  • Uma senha de root configurada no servidor.

Começando

Primeiro, é recomendado atualizar os pacotes do seu sistema para a versão mais recente. Você pode atualizá-los executando o seguinte comando:

apt-get update -y

Uma vez que todos os pacotes estejam atualizados, instale outras dependências necessárias executando o seguinte comando:

apt-get install curl wget vim git unzip gnupg2 -y

Após instalar todos os pacotes necessários, você pode prosseguir para a próxima etapa.

Instalar e Configurar o MariaDB

O Mattermost usa MySQL/MariaDB como backend de banco de dados. Portanto, o servidor MariaDB deve ser instalado no seu servidor. Se não estiver instalado, você pode instalá-lo com o seguinte comando:

apt-get install mariadb-server -y

Após instalar o servidor MariaDB, faça login no MariaDB com o seguinte comando:

mysql

Uma vez logado, crie um banco de dados e um usuário para o Mattermost com o seguinte comando:

MariaDB [(none)]> CREATE DATABASE mattermostdb;  
MariaDB [(none)]> CREATE USER 'mattermost'@'%' IDENTIFIED BY 'password';

Em seguida, conceda todas as permissões ao Mattermost com o seguinte comando:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mattermost'@'%';

Em seguida, limpe as permissões e saia do shell do MariaDB com o seguinte comando:

MariaDB [(none)]> FLUSH PRIVILEGES;  
MariaDB [(none)]> EXIT;

Uma vez que seu banco de dados MariaDB esteja configurado, você pode prosseguir para a próxima etapa.

Instalar e Configurar o Mattermost

Primeiro, você precisará baixar a versão mais recente do Mattermost do seu site oficial. Você pode baixá-lo com o seguinte comando:

wget https://releases.mattermost.com/5.24.2/mattermost-5.24.2-linux-amd64.tar.gz

Uma vez baixado, extraia o arquivo baixado com o seguinte comando:

tar -xvzf mattermost-5.24.2-linux-amd64.tar.gz

Em seguida, copie o diretório extraído para o /opt:

cp -r mattermost /opt

Em seguida, crie um diretório de dados para o Mattermost:

mkdir /opt/mattermost/data

Em seguida, você precisará criar um usuário separado para executar o Mattermost. Você pode criá-lo com o seguinte comando:

useradd --system --user-group mattermost

Em seguida, altere a propriedade do diretório mattermost para mattermost e dê as permissões adequadas com o seguinte comando:

chown -R mattermost:mattermost /opt/mattermost  
chmod -R g+w /opt/mattermost

Em seguida, edite o arquivo de configuração padrão do Mattermost e defina suas configurações de banco de dados e URL do site.

nano /opt/mattermost/config/config.json

Altere as seguintes linhas conforme sua necessidade:

    "SiteURL": "https://mattermost.linuxbuz.com",

    "DriverName": "mysql",
    "DataSource": "mattermost:password@tcp(localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Salve e feche o arquivo quando terminar.

Criar um Arquivo de Serviço Systemd para o Mattermost

Em seguida, você precisará criar um arquivo de serviço systemd para gerenciar o serviço Mattermost. Você pode criá-lo com o seguinte comando:

nano /lib/systemd/system/mattermost.service

Adicione as seguintes linhas:

[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=notify
User=mattermost
Group=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
LimitNOFILE=49152

[Install]
WantedBy=mariadb.service

Salve e feche o arquivo, então recarregue o daemon do systemd com o seguinte comando:

systemctl daemon-reload

Em seguida, inicie o serviço Mattermost e habilite-o para iniciar na reinicialização do sistema com o seguinte comando:

systemctl start mattermost  
systemctl enable mattermost

Em seguida, verifique o status do serviço Mattermost com o seguinte comando:

systemctl status mattermost

Você deve obter a seguinte saída:

? mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-08-01 09:12:52 UTC; 17s ago
   Main PID: 4106 (mattermost)
      Tasks: 20 (limit: 2353)
     Memory: 85.9M
     CGroup: /system.slice/mattermost.service
             ??4106 /opt/mattermost/bin/mattermost
             ??4198 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.131499,"caller":"mlog/sugar.go:19","msg":"Sent notification of ne>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1841655,"caller":"jobs/workers.go:73","msg":"Starting workers"}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1842792,"caller":"bleveengine/bleve.go:267","msg":"UpdateConf Ble>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.1930475,"caller":"jobs/schedulers.go:74","msg":"Starting schedule>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.20063,"caller":"app/web_hub.go:83","msg":"Starting websocket hubs>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2099638,"caller":"app/license.go:37","msg":"License key from http>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2205582,"caller":"app/server.go:525","msg":"Starting Server..."}
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2208374,"caller":"app/server.go:594","msg":"Server is listening o>
Aug 01 09:12:52 ubuntu2004 mattermost[4106]: {"level":"info","ts":1596273172.2211802,"caller":"commands/server.go:106","msg":"Sending systemd >
Aug 01 09:12:52 ubuntu2004 systemd[1]: Started Mattermost.

Neste ponto, o Mattermost está em execução e ouvindo na porta 8065.

Configurar o Nginx como um Proxy Reverso

Em seguida, você precisará configurar o Nginx como um proxy reverso para o Mattermost. Primeiro, instale o pacote Nginx com o seguinte comando:

apt-get install nginx -y

Uma vez instalado, crie um arquivo de configuração de host virtual do Nginx com o seguinte comando:

nano /etc/nginx/sites-available/mattermost.conf

Adicione as seguintes linhas:

upstream mattermost {
   server localhost:8065;
   keepalive 32;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
   listen 80;
   server_name mattermost.linuxbuz.com;

   location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       proxy_pass http://mattermost;
   }

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://mattermost;
   }
}

Salve e feche o arquivo, então ative a configuração do host virtual com o seguinte comando:

ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf

Em seguida, verifique o Nginx para qualquer erro de configuração:

ginx -t

Você deve obter a seguinte saída:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Finalmente, reinicie o serviço Nginx para aplicar as mudanças:

systemctl restart nginx

Proteger o Mattermost com SSL Let’s Encrypt

Primeiro, você precisará instalar o cliente Certbot em seu sistema para gerenciar o SSL Let’s Encrypt. Você pode instalá-lo com o seguinte comando:

apt-get install python3-certbot-nginx -y

Após instalar o Certbot, execute o seguinte comando para instalar o SSL Let’s Encrypt para seu site.

certbot --nginx -d mattermost.linuxbuz.com

Você será solicitado a fornecer um endereço de e-mail válido e aceitar os termos de serviço, conforme mostrado abaixo:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mattermost.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/mattermost.conf

Em seguida, selecione se deseja ou não redirecionar o tráfego HTTP para HTTPS:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Digite 2 e pressione Enter para instalar o SSL Let’s Encrypt em seu domínio. Uma vez instalado, você deve ver a seguinte saída:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/mattermost.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://mattermost.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=mattermost.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/mattermost.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Acessar a Interface Web do Mattermost

Agora, abra seu navegador e digite a URL https://mattermost.linuxbuz.com. Você será redirecionado para a tela de inscrição do Mattermost:

Login do Mattermost

Forneça seu endereço de e-mail, nome, senha e clique no botão Criar Conta. Você deve ver a seguinte tela:

Comunicação da equipe Mattermost

Clique no botão Criar uma equipe. Você deve ver a seguinte tela:

Nome da equipe

Forneça o nome da sua equipe e clique no botão Próximo. Você deve ver a seguinte tela:

URL da equipe

Forneça a URL da sua equipe e clique no botão Finalizar. Você deve ver a tela de boas-vindas do Mattermost:

Painel do Mattermost

Clique no botão Pular Tutoriais. Você deve ver o painel do Mattermost na seguinte tela:

Chat do Mattermost

Conclusão

Neste guia, você aprendeu como instalar o aplicativo de mensagens Mattermost no servidor Ubuntu 20.04. Você também aprendeu como configurar o Nginx como um proxy reverso e protegê-lo com SSL Let’s Encrypt. Agora você pode explorar os serviços do Mattermost e trabalhar junto com sua equipe.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.