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 -yUma 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 -yApó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 -yApós instalar o servidor MariaDB, faça login no MariaDB com o seguinte comando:
mysqlUma 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.gzUma vez baixado, extraia o arquivo baixado com o seguinte comando:
tar -xvzf mattermost-5.24.2-linux-amd64.tar.gzEm seguida, copie o diretório extraído para o /opt:
cp -r mattermost /optEm seguida, crie um diretório de dados para o Mattermost:
mkdir /opt/mattermost/dataEm seguida, você precisará criar um usuário separado para executar o Mattermost. Você pode criá-lo com o seguinte comando:
useradd --system --user-group mattermostEm 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/mattermostEm 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.jsonAltere 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.serviceAdicione 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.serviceSalve e feche o arquivo, então recarregue o daemon do systemd com o seguinte comando:
systemctl daemon-reloadEm 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 mattermostEm seguida, verifique o status do serviço Mattermost com o seguinte comando:
systemctl status mattermostVocê 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 -yUma vez instalado, crie um arquivo de configuração de host virtual do Nginx com o seguinte comando:
nano /etc/nginx/sites-available/mattermost.confAdicione 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.confEm seguida, verifique o Nginx para qualquer erro de configuração:
ginx -tVocê 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 successfulFinalmente, reinicie o serviço Nginx para aplicar as mudanças:
systemctl restart nginxProteger 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 -yApós instalar o Certbot, execute o seguinte comando para instalar o SSL Let’s Encrypt para seu site.
certbot --nginx -d mattermost.linuxbuz.comVocê 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.confEm 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): 2Digite 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:

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

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

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

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

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

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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.