Introdução
Mattermost é um software de comunicação usado para trabalhar em equipe, semelhante ao Slack e Microsoft Teams. Com ele várias equipes pode trabalhar juntas em projetos e compartilhem informações em tempo real através de mensagens de texto, voz e vídeo. Ele é de código aberto e possui marcação de linguagens como MarkDown.
Ele também possui recursos de integração com outras ferramentas populares de produtividade, como o Trello, o GitHub e o Google Drive. Além de fornecer algumas coisas nativamente. O Mattermost é altamente personalizável, permitindo que as equipes personalizem sua experiência de comunicação com recursos como temas personalizados, notificações personalizadas e a capacidade de integrar seus próprios bots e plug-ins.
Instalação
Comece atualizando e baixando o banco de dados:
# Atualize o sistema:
$ sudo apt update && sudo apt dist-upgrade -y
# Instale o 'mysql-server':
$ sudo apt install -y mysql-server
# Configure a senha do Root e os acessos para o Mattermost:
$ mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'SENHA_ROOT';
create database mattermost;
create user 'USER_MYSQL'@'127.0.0.1' identified by 'SENHA_MYSQL';
GRANT ALL ON mattermost.* TO 'USER_MYSQL'@'localhost';
# Agora rode a instalação segura do mysql:
$ sudo mysql_secure_installation
Caso precise mudar a senha:
ALTER USER 'USERNAME'@'127.0.0.1' IDENTIFIED BY 'SENHA';
Agora vamos instalar o Mattermost:
# Entre no diretório abaixo:
$ cd /usr/src
# Baixe o código fonte:
$ sudo wget https://releases.mattermost.com/7.9.1/mattermost-7.9.1-linux-amd64.tar.gz
# Descompacte:
tar -xvzf mattermost*.gz
# Move a pasta para /opt:
$ sudo mv mattermost /opt
# Crie o diretório de armazenamento:
$ sudo mkdir /opt/mattermost/data
O diretório de armazenamento irá conter todos os arquivos e imagens que seus usuários postam no Mattermost, portanto, você precisa garantir que o disco seja grande o suficiente para comportar o número esperado de arquivos e imagens enviados.
Vamos criar e configurar o usuário e grupo para rodar a aplicação:
# Adicione o usuário/grupo:
$ sudo useradd --system --user-group mattermost
# Configure o usuário/grupo que criamos como dono do diretório abaixo:
$ sudo chown -R mattermost:mattermost /opt/mattermost
# Aplique permissão de escrita para o grupo:
$ sudo chmod -R g+w /opt/mattermost
Agora vamos configurar ele para conseguir acessar o MySql:
# Edite o arquivo abaixo:
$ sudo vim /opt/mattermost/config/config.json
# Configure a opção 'DriverName' para 'mysql':
"DriverName": "mysql",
# Configure a opção 'DataSource' para ser igual abaixo:
"DataSource": "USER_MYSQL:SENHA_MYSQL@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8&writeTimeout=30s",
# Configure 'SiteURL' para a URL do Site:
"SiteURL": "https://mattermost.example.com",
Agora vamos testar o Mattermost:
# Entre no diretório abaixo:
$ cd /opt/mattermost
# Agora rode:
$ sudo -u mattermost ./bin/mattermost
{"timestamp":"2023-03-27 20:32:06.207 Z","level":"info","msg":"Server is listening on [::]:8065","caller":"app/server.go:964","address":"[::]:8065"}
Agora vamos criar o serviço no SystemD:
$ sudo vim /lib/systemd/system/mattermost.service
### Adicione a conf abaixo:
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
BindsTo=mysql.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.service
Agora faça:
sudo systemctl daemon-reload
sudo systemctl restart mattermost.service
sudo systemctl status mattermost.service
sudo systemctl enable mattermost.service
Configurando
Primeiro acesse http://IP:8065
para configurar a primeira equipe/usuário.
Fontes
https://docs.mattermost.com/install/installing-ubuntu-2004-LTS.html