Poupe 15% em todos os serviços de alojamento

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código: Skills Começar a trabalhar
Secções
Administração Linux

Como Instalar Mattermost no Ubuntu: Guia Completo Passo a Passo

Mattermost é uma plataforma poderosa de mensagens e colaboração em equipa de código aberto que oferece às organizações controlo total sobre a sua infraestrutura de comunicação. Como alternativa auto-hospedada ao Slack e Microsoft Teams, Mattermost oferece segurança de nível empresarial, propriedade completa de dados e personalização extensiva — tudo sem custos recorrentes de subscrição SaaS.

Este guia abrangente orienta-o em cada passo da instalação e configuração do Mattermost num servidor Ubuntu, incluindo configuração da base de dados PostgreSQL, configuração do proxy reverso Nginx e integração de certificados SSL.

1. Pré-requisitos

Antes de começar, certifique-se de que os seguintes requisitos estão em vigor:

  • Um servidor executando Ubuntu 20.04 ou Ubuntu 22.04 LTS (Ubuntu 18.04 chegou ao fim da vida útil e não é recomendado para produção)
  • Privilégios Sudo ou root no servidor
  • Um nome de domínio apontado para o endereço IP do seu servidor (fortemente recomendado para implementações de produção)
  • Hardware mínimo: 1 vCPU, 2 GB RAM, 10 GB de espaço em disco (para pequenas equipes); aumente para implementações maiores

> Dica de Hospedagem: Para uma implementação suave do Mattermost, considere um plano confiável de Hospedagem VPS da AlexHost. Com armazenamento SSD, acesso root completo e tempo de atividade garantido, as instâncias VPS da AlexHost são ideais para ferramentas de colaboração auto-hospedadas.

2. Atualizar o Seu Sistema

Comece sempre por atualizar o índice de pacotes e aplicar todas as atualizações de segurança e sistema pendentes:

sudo apt update
sudo apt upgrade -y

Reinicie o servidor se uma atualização de kernel foi aplicada:

sudo reboot

3. Instalar Dependências Necessárias

Mattermost depende de três componentes principais: PostgreSQL (base de dados), Nginx (proxy reverso), e Certbot (gestão de certificados SSL).

Instale todos os pacotes necessários em uma etapa:

sudo apt install -y postgresql postgresql-contrib
sudo apt install -y nginx
sudo apt install -y certbot python3-certbot-nginx

Verifique se PostgreSQL e Nginx estão em execução:

sudo systemctl status postgresql
sudo systemctl status nginx

Ambos os serviços devem mostrar active (running).

4. Transferir e Instalar Mattermost

Passo 1: Transferir a Versão Mais Recente do Mattermost

Visite a página oficial de versões do Mattermost para encontrar a versão estável mais recente. Use wget para transferi-la diretamente para o seu servidor:

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

> Nota: Substitua 9.5.0 pelo número da versão mais recente disponível. Utilize sempre a versão estável mais recente para correções de segurança e novas funcionalidades.

Passo 2: Extrair o Arquivo

tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gz

Passo 3: Mover Mattermost para o Diretório do Sistema

Mova a pasta extraída para /opt, que é a localização padrão do Linux para software de terceiros opcional:

sudo mv mattermost /opt/mattermost

Passo 4: Criar um Utilizador de Sistema Mattermost Dedicado

Executar Mattermost como um utilizador dedicado e sem privilégios é uma prática crítica de segurança:

sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermost

Passo 5: Criar o Diretório de Dados e Definir Permissões

sudo mkdir -p /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R 750 /opt/mattermost

5. Configurar a Base de Dados PostgreSQL

Mattermost requer uma base de dados PostgreSQL dedicada e um utilizador. Siga estes passos com cuidado.

Passo 1: Mudar para o Utilizador do Sistema PostgreSQL

sudo -i -u postgres

Passo 2: Abrir a Shell Interativa do PostgreSQL

psql

Passo 3: Criar a Base de Dados, Utilizador e Conceder Privilégios

Execute os seguintes comandos SQL um por um:

CREATE DATABASE mattermost_db;
CREATE USER mattermost WITH PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost;

> Nota de Segurança: Substitua YourStrongPassword123! por uma palavra-passe forte e única. Utilize um gestor de palavras-passe para a gerar e armazenar com segurança.

Para PostgreSQL 15 e posterior, também precisa de conceder privilégios de esquema:

c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;

Passo 4: Sair da Shell do PostgreSQL e Regressar ao Seu Utilizador

q
exit

6. Configurar Mattermost

Passo 1: Abrir o Ficheiro de Configuração do Mattermost

sudo nano /opt/mattermost/config/config.json

Passo 2: Atualizar as Definições de Ligação da Base de Dados

Localize o bloco SqlSettings e atualize-o com as suas credenciais PostgreSQL:

"SqlSettings": {
    "DriverName": "postgres",
    "DataSource": "postgres://mattermost:YourStrongPassword123!@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",
    "DataSourceReplicas": [],
    "DataSourceSearchReplicas": [],
    "MaxIdleConns": 20,
    "ConnMaxLifetimeMilliseconds": 3600000,
    "MaxOpenConns": 300,
    "Trace": false,
    "AtRestEncryptKey": "",
    "QueryTimeout": 30
}

Passo 3: Configurar o URL do Site

Encontre o bloco ServiceSettings e defina o seu domínio:

"ServiceSettings": {
    "SiteURL": "https://your_domain.com",
    ...
}

Substitua your_domain.com pelo seu nome de domínio real.

Passo 4: Guardar e Sair

Prima Ctrl+X, depois Y, depois Enter para guardar e fechar o ficheiro.

7. Criar um Serviço Systemd

Executar Mattermost como um serviço systemd garante que ele inicie automaticamente no boot e reinicie em caso de falha — essencial para qualquer implementação em produção.

Passo 1: Criar o Ficheiro de Serviço

sudo nano /etc/systemd/system/mattermost.service

Passo 2: Adicionar a Configuração do Serviço

Cole o seguinte conteúdo:

[Unit]
Description=Mattermost Team Messaging Server
After=network.target postgresql.service
Wants=postgresql.service

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

[Install]
WantedBy=multi-user.target

Passo 3: Ativar e Iniciar o Serviço Mattermost

sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermost

Passo 4: Verificar se o Serviço está em Execução

sudo systemctl status mattermost

Deverá ver active (running). Mattermost escuta na porta 8065 por padrão.

8. Configurar Nginx como Proxy Reverso

Nginx atua como um proxy reverso, encaminhando o tráfego HTTP/HTTPS recebido das portas 80/443 para a porta interna 8065 do Mattermost. Isso também ativa o suporte a WebSocket, que o Mattermost requer para mensagens em tempo real.

Passo 1: Criar o Arquivo de Configuração do Nginx

sudo nano /etc/nginx/sites-available/mattermost

Passo 2: Adicionar a Configuração do Proxy Reverso

upstream backend {
    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 your_domain.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;
        proxy_read_timeout 600s;
        proxy_pass http://backend;
    }

    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_pass http://backend;
    }
}

Substitua your_domain.com pelo seu nome de domínio real.

Passo 3: Ativar a Configuração do Site

sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/

Passo 4: Testar a Configuração do Nginx para Erros de Sintaxe

sudo nginx -t

Saída esperada:

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

Passo 5: Reiniciar o Nginx

sudo systemctl restart nginx

9. Proteja Mattermost com SSL (HTTPS)

Executar Mattermost sobre HTTPS é obrigatório para qualquer ambiente de produção. Encripta toda a comunicação entre utilizadores e o seu servidor, protegendo credenciais e mensagens de interceção.

> SSL Simplificado: AlexHost oferece Certificados SSL acessíveis para todos os tipos de websites e aplicações. Alternativamente, utilize o método gratuito Let’s Encrypt abaixo.

Passo 1: Obtenha um Certificado SSL Gratuito com Certbot

sudo certbot --nginx -d your_domain.com

Certbot irá automaticamente:

  • Verificar a propriedade do domínio
  • Emitir um certificado Let’s Encrypt
  • Modificar a sua configuração Nginx para ativar HTTPS
  • Configurar a renovação automática de certificados

Passo 2: Verifique a Renovação Automática

sudo certbot renew --dry-run

Passo 3: Reinicie Nginx

sudo systemctl restart nginx

A sua instância Mattermost está agora acessível em https://your_domain.com.

10. Verificação Final

Verifique se Todos os Serviços Estão em Execução

sudo systemctl status postgresql
sudo systemctl status mattermost
sudo systemctl status nginx

Teste o Mattermost Diretamente na Porta 8065

curl -I http://localhost:8065

Você deve receber uma resposta HTTP 200 OK ou redirecionamento.

Conclua a Configuração Baseada na Web

  1. Abra seu navegador e navegue para https://your_domain.com
  2. Você será saudado pelo assistente de configuração do Mattermost
  3. Crie sua conta de administrador
  4. Configure sua primeira equipe e espaço de trabalho
  5. Convide membros da equipe e comece a colaborar

Resolução de Problemas Comuns

ProblemaCausa ProvávelSolução
Falha ao iniciar o serviço MattermostCredenciais de banco de dados incorretas em config.jsonVerifique novamente a string DataSource em SqlSettings
502 Bad Gateway no NginxMattermost não está em execução na porta 8065Execute sudo systemctl restart mattermost
Erros de conexão WebSocketCabeçalhos de proxy WebSocket ausentes no NginxVerifique o bloco de localização WebSocket na configuração do Nginx
Erros de certificado SSLDomínio não apontado para o IP do servidorAtualize o registro DNS A e aguarde a propagação
Conexão de banco de dados recusadaPostgreSQL não está em execuçãoExecute sudo systemctl start postgresql

Por Que Escolher um Host Confiável para Mattermost?

O desempenho e a confiabilidade da sua instância Mattermost dependem muito da infraestrutura subjacente. Para equipes pequenas e médias, um VPS bem configurado é a escolha ideal. Para organizações maiores com altos volumes de mensagens, considere fazer upgrade para um Servidor Dedicado para máximo desempenho, isolamento e controle.

Se você precisa de um nome de domínio para sua implantação Mattermost, a AlexHost oferece Registro de Domínio competitivo com gerenciamento completo de DNS. E se você está executando múltiplos serviços junto com Mattermost, Hospedagem Web Compartilhada ou um VPS com cPanel podem simplificar o gerenciamento com um painel de controle intuitivo.

Resumo

Você instalou e configurou com sucesso o Mattermost no Ubuntu com:

  • ✅ PostgreSQL como banco de dados backend
  • ✅ Nginx como proxy reverso de nível de produção com suporte a WebSocket
  • ✅ Let’s Encrypt SSL para conexões HTTPS criptografadas
  • ✅ Um serviço systemd para inicialização automática e recuperação de falhas
  • ✅ Permissões de arquivo adequadas e um usuário do sistema dedicado para segurança

O Mattermost está pronto para servir como o hub de comunicação privado e auto-hospedado da sua equipe — totalmente sob seu controle, sem dados deixando sua infraestrutura.