Revolt Chat VPS: Guia Completo de Instalação e Configuração

9 min de leitura Comunicação Interna Self-Hosted
Revolt Chat VPS: Guia Completo de Instalação e Configuração

Introdução à Comunicação Interna Self-Hosted no Linux

Nos últimos anos, a migração de ferramentas de comunicação corporativa para ambientes self-hosted (hospedados localmente) tornou-se uma prioridade estratégica para organizações que valorizam a soberania de dados, a privacidade e o controle total sobre sua infraestrutura. Diferente de soluções SaaS (Software as a Service) tradicionais, onde os dados residem em servidores de terceiros, a abordagem self-hosted permite que empresas configurem suas próprias instâncias de chat, voz e videoconferência.

No ecossistema Linux, diversas alternativas robustas emergiram como líderes de mercado. Entre elas, destacam-se o Mattermost, conhecido por sua semelhança com o Slack e facilidade de integração; o Rocket.Chat, que oferece alta customizabilidade; e o Zulip, famoso por seu modelo de chat baseado em tópicos. Além dessas, soluções de infraestrutura federada como o Matrix Synapse com o cliente Element Messenger ganham tração para quem busca interoperabilidade entre diferentes provedores. Para comunicação de voz pura, o Mumble e o Jami oferecem latência ultrabaixa e criptografia ponta a ponta.

Este tutorial foca na instalação e configuração básica de uma instância de chat self-hosted em um VPS Linux (Ubuntu Server 20.04/22.04 LTS), utilizando o Mattermost como exemplo principal devido à sua popularidade no mercado brasileiro para comunicação interna, mas os conceitos aplicados são válidos para outras ferramentas citadas como Zulip servidor proprio ou Mattermost VPS.

Pré-requisitos e Preparação do Ambiente

Antes de iniciar a instalação, é fundamental garantir que o servidor esteja atualizado e com as dependências básicas instaladas. Utilizaremos um VPS com pelo menos 2 vCPUs e 4GB de RAM para garantir uma experiência fluida.

  1. Acesse seu servidor via SSH:
ssh root@seu_ip_do_servidor

Em seguida, atualize o sistema operacional e instale as dependências necessárias para compilação e gerenciamento de serviços.

  1. Atualize os pacotes do sistema:
apt update && apt upgrade -y
  1. Instale utilitários básicos:
apt install curl wget git sudo unzip -y

Para a maioria das soluções modernas de chat self-hosted, é necessário um banco de dados (PostgreSQL ou MySQL) e, opcionalmente, um servidor web reverso (Nginx ou Apache). Neste guia, utilizaremos o Nginx para gerenciar o tráfego HTTPS e o PostgreSQL como banco de dados principal.

Instalação do Banco de Dados PostgreSQL

O Mattermost, assim como muitas ferramentas de comunicação interna self-hosted, performa melhor com bancos relacionais robustos. O PostgreSQL é a escolha recomendada pela documentação oficial da maioria das plataformas.

  1. Instale o PostgreSQL e o pgAdmin (opcional para gestão):
apt install postgresql postgresql-contrib -y
  1. Inicie o serviço e garanta sua execução:
systemctl start postgresql
systemctl enable postgresql
  1. Crie um usuário e um banco de dados dedicados para o chat:
sudo -u postgres psql

Dentro do prompt do PostgreSQL, execute os seguintes comandos SQL. Troque senha_segura por uma senha forte e complexa.

CREATE USER mattermost WITH PASSWORD 'senha_segura';
CREATE DATABASE mattermost;
GRANT ALL PRIVILEGES ON DATABASE mattermost TO mattermost;

Saia do prompt digitando \q.

Download e Configuração do Mattermost Server

O Mattermost disponibiliza pacotes binários prontos para Linux, o que simplifica significativamente a instalação em comparação a compilações manuais de projetos como Jami self-hosted ou Mumble servidor voz.

  1. Baixe a versão estável mais recente:
cd /tmp
wget https://releases.mattermost.com/6.7.2/mattermost-6.7.2-linux-amd64.tar.gz

Nota: Verifique sempre o site oficial para a versão mais atualizada antes de executar comandos.

  1. Crie o diretório de instalação e extraia os arquivos:
mkdir /opt/mattermost
tar -xvzf mattermost-*.tar.gz -C /opt/mattermost
chown -R root:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
  1. Crie o usuário do sistema para rodar o serviço:
useradd --system --home-dir /opt/mattermost --no-create-home mattermost

Agora, é necessário configurar o arquivo config.json para conectar ao banco de dados criado anteriormente.

  1. Edite o arquivo de configuração:
nano /opt/mattermost/config/config.json

Localize a seção "DataSource". Substitua o conteúdo padrão pela string de conexão com seu PostgreSQL. Exemplo:

"DataSource": "postgres://mattermost:senha_segura@localhost/mattermost?sslmode=disable&connect_timeout=10"

Salve o arquivo (Ctrl+O, Enter) e saia (Ctrl+X).

Criação do Serviço Systemd

Para garantir que o servidor inicie automaticamente após reinicialções e seja gerenciado corretamente pelo Linux, criaremos um arquivo de serviço .service.

  1. Crie o arquivo de serviço:
nano /etc/systemd/system/mattermost.service

Cole o seguinte conteúdo no arquivo:

[Unit]
Description=Mattermost
After=network.target
After=syslog.target
After=postgresql.service

[Service]
TimeoutStartSec=3600
ExecStart=/opt/mattermost/bin/mattermost
SuccessExitStatus=143
User=mattermost
Group=mattermost
WorkingDirectory=/opt/mattermost

[Install]
WantedBy=postgresql.target

Salve e feche o arquivo. Agora, recarregue o systemd e inicie o serviço:

systemctl daemon-reload
systemctl start mattermost
systemctl enable mattermost

Verifique se o serviço está rodando sem erros:

systemctl status mattermost

Configuração do Nginx como Proxy Reverso e HTTPS

Nunca exponha o Mattermost diretamente na porta padrão (8065) para a internet. Utilize o Nginx para gerenciar as requisições e, crucialmente, implementar certificados SSL/TLS.

  1. Instale o Nginx:
apt install nginx -y
  1. Crie um bloco de servidor para o Mattermost:
nano /etc/nginx/sites-available/mattermost

Insira a seguinte configuração. Substitua chat.sudominio.com pelo seu domínio real.

upstream backend {
    server 127.0.0.1:8065;
    keepalive 32;
}

proxy_cache_path /var/cache/nginx/mattermost levels=1:2 keys_zone=STATIC:10m
inactive=24h max_size=1g;

server {
    listen 80;
    server_name chat.sudominio.com;

    client_max_body_size 50M;

    location /api/v3/websocket {
        proxy_set_header Connection "";
        proxy_http_version 1.1;
        upstream_backend backend;
    }

    location / {
        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_cache STATIC;
        upstream_backend backend;
    }

    error_page 502 /502.html;
}

Ative a configuração e teste o Nginx:

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost
nginx -t
  1. Instale certificados SSL com Let's Encrypt (Certbot):
apt install certbot python3-certbot-nginx -y
certbot --nginx -d chat.sudominio.com

O assistente do Certbot irá redirecionar automaticamente o tráfego HTTP para HTTPS e configurar os certificados. Reinicie o Nginx para aplicar as mudanças:

systemctl restart nginx

Acesso Inicial e Personalização

Com a infraestrutura pronta, você pode acessar a interface web do seu Mattermost VPS navegando até https://chat.sudominio.com.

  1. Criação da Conta de Administrador:

A primeira tela solicitará a criação da conta de administrador. Defina um nome de equipe (Team Name), o domínio da sua organização e suas credenciais de admin.

  1. Configuração do Email:

Vá em Admin Console > Configuration > Email Settings. Configure o SMTP do seu provedor (ex: SendGrid, AWS SES ou Postfix local) para permitir que os usuários recebam convites e notificações por e-mail.

  1. Integrações e Canais:

Crie canais públicos e privados. O Mattermost suporta integrações nativas com GitHub, Jira, Slack (importação), e webhooks personalizados. Explore a seção Integrations no menu administrativo para conectar suas ferramentas de desenvolvimento.

Vantagens Comparativas no Mercado Brasileiro

A escolha entre Mattermost VPS, Rocket.Chat self-hosted ou Zulip servidor proprio depende das necessidades específicas da equipe:

  • Mattermost: Ideal para equipes de desenvolvimento que buscam uma interface limpa, rápida e com forte foco em integração CI/CD. É a escolha padrão para quem migra do Slack.
  • Rocket.Chat: Oferece recursos de vídeo conferência nativos mais robustos fora da caixa e maior flexibilidade visual. Bom para equipes que precisam de chat ao vivo para suporte ao cliente integrado.
  • Zulip: O modelo de tópicos é superior para equipes assíncronas ou distribuídas globalmente, reduzindo o ruído em canais gerais.

Para comunicações que exigem criptografia extrema e descentralização, a stack Matrix Synapse VPS com Element Messenger Linux é a alternativa mais segura, embora tenha uma curva de aprendizado técnica mais íngreme. Já para voz, o Mumble servidor voz continua sendo imbatível em termos de latência e qualidade de áudio para gamers e call centers técnicos.

Manutenção e Segurança Básica

A segurança de um servidor self-hosted depende da manutenção constante. Siga estas práticas recomendadas:

  1. Atualizações Regulares: Mantenha o sistema operacional e o Mattermost atualizados. Verifique releases semanais para correções de segurança.
apt update && apt upgrade -y
  1. Backups Automáticos: Configure backups diários do banco de dados e do diretório /opt/mattermost/data.
# Exemplo de script simples de backup via cron
0 2 * * * tar -czf /backups/mattermost_$(date +\%F).tar.gz /opt/mattermost/data /var/lib/postgresql/
  1. Firewall: Use UFW (Uncomplicated Firewall) para liberar apenas as portas necessárias (HTTP/HTTPS e SSH).
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp
ufw enable

Conclusão

Implementar uma solução de comunicação interna self-hosted em um VPS Linux oferece controle total sobre a privacidade dos dados corporativos e custos previsíveis. Ao seguir este guia, você estabeleceu uma base sólida com Mattermost, PostgreSQL e Nginx.

Lembre-se que, dependendo do volume de usuários, pode ser necessário escalar a infraestrutura horizontalmente ou migrar o banco de dados para um servidor dedicado separado. Para equipes que buscam alternativas específicas como Jami self-hosted (focado em criptografia P2P) ou Mumble servidor voz (focado em latência), os princípios de instalação via repositórios oficiais e gerenciamento via Systemd permanecem consistentes.

A autonomia tecnológica é um diferencial competitivo. Com essa infraestrutura em mãos, sua empresa está pronta para comunicar-se com segurança, eficiência e total propriedade sobre seus dados.

Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000