Como instalar e configurar Rocket.Chat no Ubuntu 16.04 com Nginx
Visão geral rápida
Rocket.Chat é uma solução de chat de código aberto para comunicação em equipe, semelhante ao Slack. Este tutorial cobre uma instalação manual em Ubuntu 16.04, usando MongoDB 3.2 (ReplicaSet), Node.js 4.5 e Nginx como proxy reverso com SSL. Destina-se a administradores de sistema e engenheiros DevOps que preferem controle total sobre o ambiente.
Importante: use domínios, IPs e credenciais adequados ao seu ambiente. Ajuste versões ao migrar para Ubuntu ou Rocket.Chat mais recentes.
Pré-requisitos
- Ubuntu 16.04 LTS (servidor)
- Acesso root ou sudo
- Um domínio configurado (recomendado) ou IP público
- Portas 80 e 443 abertas para HTTP/HTTPS
Etapas principais (resumo)
- Instalar dependências (curl, GraphicsMagick, build-essential)
- Instalar e configurar MongoDB 3.2 + ReplicaSet
- Instalar Node.js (via n) e npm — Rocket.Chat exige Node 4.5 (versões antigas do tutorial)
- Baixar e iniciar Rocket.Chat
- Instalar e configurar Nginx como reverse proxy com SSL
- Testar, criar admin e validar o fluxo HTTPS
Passo 1 - Instalar dependências do Rocket.Chat
Conecte-se ao servidor por SSH e obtenha privilégios root:
ssh [email protected]
sudo suAtualize repositórios e instale pacotes necessários:
apt-get updateapt-get install curl graphicsmagick build-essentialObservação: GraphicsMagick é usado para manipulação de imagens (avatares, thumbnails).
Passo 2 - Instalar MongoDB
Rocket.Chat requer MongoDB. Neste tutorial usamos MongoDB 3.2 a partir do repositório oficial.
Adicione a chave do repositório MongoDB:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927Adicione o repositório (linha longa):
echo \"deb http://repo.mongodb.org/apt/ubuntu \"$(lsb_release -sc)\"/mongodb-org/3.2 multiverse\" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.listAtualize e instale o pacote mongodb-org:
apt-get update
apt-get install mongodb-orgHabilite e inicie o serviço:
systemctl enable mongod
systemctl start mongodPor padrão, o MongoDB escuta na porta 27017.
Passo 3 - Configurar ReplicaSet do MongoDB
O Rocket.Chat se beneficia de um ReplicaSet para suporte ao oplog, que é usado para atualizar o aplicativo em tempo real.
Edite o arquivo de configuração (/etc/mongod.conf) e permita ligação além do localhost. Abra com o editor (vim):
vim /etc/mongod.confLocalize a seção net e comente a linha bindIp para permitir conexões externas (ajuste conforme sua política de rede):
net:
port: 27017
#bindIp: 127.0.0.1Adicione a seção de replicação no arquivo (replSetName = rs0):
#replication:
replication:
oplogSizeMB: 1
replSetName: rs0Salve e reinicie o MongoDB:
systemctl restart mongodInicie um shell do MongoDB e inicialize o ReplicaSet:
export LC_ALL=C
mongo
rs.initiate()Exemplo de saída esperada:
{
\"info2\" : \"no configuration specified. Using a default configuration for the set\",
\"me\" : \"nyanko-sensei:27017\",
\"ok\" : 1
}Importante: garanta que o campo ok seja 1. Se for outro número, verifique logs do mongod (/var/log/mongodb/mongod.log).

Passo 4 - Instalar npm e Node.js
O Rocket.Chat (na versão do tutorial) requer Node.js 4.5. Vamos instalar npm/nodejs do repositório e em seguida o utilitário n para gerir versões.
apt-get install nodejs npmInstale o gerenciador de versões n globalmente:
npm install -g nInstale a versão requerida do Node.js (4.5):
sudo n 4.5Verifique as versões instaladas:
node --version
npm -v
Nota: versões modernas do Rocket.Chat exigem Node e MongoDB mais recentes; antes de atualizar, consulte a documentação oficial.
Passo 5 - Instalar o servidor Rocket.Chat
Faça o download e extraia o bundle do Rocket.Chat para /var/www/
curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
tar -xzvf rocket.chat.tgzCrie a pasta de destino e mova o bundle:
mkdir -p /var/www/
mv bundle Rocket.Chat
mv Rocket.Chat /var/www/Instale dependências do servidor e defina variáveis de ambiente necessárias, depois execute:
cd /var/www/Rocket.Chat/
cd programs/server/
npm install
cd ../../
export ROOT_URL=http://192.168.1.110:3000/
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.jsSubstitua 192.168.1.110 pelo IP ou domínio do seu servidor.

Abra no navegador http://192.168.1.110:3000 para acessar a interface inicial.

Passo 6 - Instalar e configurar Nginx como reverse proxy com HTTPS
Executar Rocket.Chat atrás de Nginx permite TLS, cache e melhor integração com headers X-Forwarded. Vamos configurar um certificado autoassinado (substitua por Let’s Encrypt em produção).
Instale o Nginx:
apt-get install nginxCrie a pasta para SSL:
mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/Gere um certificado autoassinado e proteja a chave:
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/rocket-chat.crt -keyout /etc/nginx/ssl/rocket-chat.key
chmod 400 rocket-chat.keyCrie o arquivo de vhost em /etc/nginx/sites-available/rocket-chat e cole a configuração abaixo:
# Upstreams
upstream backend {
server 127.0.0.1:3000;
}
# Redirect Options
server {
listen 80;
server_name rocket-chat.co;
# enforce https
return 301 https://$server_name$request_uri;
}
# HTTPS Server
server {
listen 443;
server_name rocket-chat.co;
error_log /var/log/nginx/rocketchat.access.log;
ssl on;
ssl_certificate /etc/nginx/ssl/rocket-chat.crt;
ssl_certificate_key /etc/nginx/ssl/rocket-chat.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don't use SSLv3 (POODLE)
location / {
proxy_pass http://192.168.1.110:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection \"upgrade\";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}Substitua rocket-chat.co e os IPs pelo seu domínio/IP. Em produção, recomendamos usar certbot/Let’s Encrypt em vez de certificados autoassinados.
Ative o site e teste a configuração do Nginx:
ln -s /etc/nginx/sites-available/rocket-chat /etc/nginx/sites-enabled/rocket-chat
nginx -tSe não houver erros, reinicie o Nginx:
systemctl restart nginxPasso 7 - Testes e criação da conta admin
Atualize as variáveis de ambiente para usar o ROOT_URL com HTTPS e reinicie o Rocket.Chat (ou execute em foreground para testes):
cd /var/www/Rocket.Chat/
export ROOT_URL=https://rocket-chat.co
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.jsAcesse https://rocket-chat.co (ou seu domínio) e registre a primeira conta usando o link “Register a new account” na tela inicial. Crie o usuário administrador e confirme o SITE-URL quando solicitado.





Dashboard inicial após criar o admin:

Boas práticas, segurança e operação
Important: o guia original usa versões antigas. Antes de colocar em produção, planeje atualização: use Ubuntu LTS suportado, MongoDB e Node.js compatíveis com sua versão do Rocket.Chat.
- TLS: prefira Let’s Encrypt para certificados gratuitos e renovação automática com certbot.
- Firewall: limite acesso ao MongoDB (porta 27017) apenas a hosts confiáveis.
- Process manager: execute Rocket.Chat com systemd, PM2 ou outro process manager para reinício automático e logs centralizados.
- Backups: faça backups regulares do banco MongoDB (mongodump) e do diretório /var/www/Rocket.Chat.
- Atualizações: teste upgrades em ambiente de staging: atualizar Rocket.Chat pode exigir nova versão de Node/Mongo.
Exemplo mínimo de systemd unit para Rocket.Chat
[Unit]
Description=Rocket.Chat Server
After=network.target mongod.service
[Service]
Type=simple
Environment=ROOT_URL=https://rocket-chat.co
Environment=MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
Environment=PORT=3000
WorkingDirectory=/var/www/Rocket.Chat
ExecStart=/usr/bin/node main.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
[Install]
WantedBy=multi-user.target(Adapte paths e usuário para rodar como um usuário não-root.)
Backup e restauração rápida do MongoDB
- Fazer dump:
mongodump --db rocketchat --out /var/backups/mongodump-$(date +%F)- Restaurar:
mongorestore --db rocketchat /path/to/dump/rocketchatChecklist baseado em papéis
Admin de sistema
- Instalar e configurar serviços (MongoDB, Node, Nginx)
- Configurar firewall e backups
- Criar unit systemd/PM2
DevOps
- Automatizar deploy (Ansible/Chef/Puppet)
- Monitorar SLI/SLO (uptime, latência)
- Planejar upgrades e migrações
Segurança
- Forçar HTTPS e HSTS
- Restringir acesso ao MongoDB
- Rotacionar chaves/credenciais
Runbook de incidentes (resumo)
- Verifique status dos serviços:
systemctl status mongod
systemctl status nginx
systemctl status rocketchat- Verifique logs:
- Rocket.Chat: logs definidos pelo process manager
- MongoDB: /var/log/mongodb/mongod.log
- Nginx: /var/log/nginx/
Se o MongoDB falhar: restaurar último dump ou reiniciar serviço. Se o ReplicaSet estiver com problemas, use mongo shell e rs.status().
Rollback: restaurar versão anterior do bundle em /var/www/Rocket.Chat e reiniciar processo.
Maturidade e alternativas
- Se você precisa de alta disponibilidade: use múltiplas réplicas MongoDB em nós separados, balanceador de carga e instâncias Rocket.Chat em múltiplos hosts.
- Alternativas gerenciadas: Rocket.Chat Cloud (serviço pago) ou soluções SaaS (Slack, Microsoft Teams) caso não queira gerenciar infra.
Compatibilidade e migração
- Versões recentes do Rocket.Chat exigem Node 12+ e MongoDB 4+. Antes de atualizar, consulte as notas de release oficiais.
- Migrar de Ubuntu 16.04 para 18.04/20.04: primeiro atualize em um ambiente de teste; migrações do sistema podem quebrar dependências do Node.
1-linha de glossário
- ReplicaSet: conjunto de instâncias MongoDB que mantém cópias dos dados para alta disponibilidade e suporte ao oplog.
- ROOT_URL: URL base do Rocket.Chat usada em links e para validação do site.
- oplog: log de operações do MongoDB usado para replicação e atualizações em tempo real.
Caixa de fatos (valores-chave)
- Porta padrão MongoDB: 27017
- Porta padrão Rocket.Chat no tutorial: 3000
- Node.js usado no tutorial: 4.5 (versão antiga; ver compatibilidade)
- Ubuntu alvo do tutorial: 16.04 LTS
- TLS/HTTPS: portas 80 (redirecionamento) e 443 (HTTPS)
Problemas comuns e como resolver
- Problema: “ok” diferente de 1 ao rs.initiate
- Verifique /etc/mongod.conf, portas e logs do mongod.
- Problema: Nginx retorna 502/504
- Verifique se o Rocket.Chat está escutando na porta esperada e se o proxy_pass aponta para o endereço correto.
- Problema: mensagens não atualizam em tempo real
- Verifique o oplog do MongoDB e se MONGO_URL aponta para um ReplicaSet com ?replicaSet=rs0
Referências
- Documentação oficial (manutenção e versões): https://rocket.chat/docs/installation/manual-installation/ubuntu/
Resumo: este guia cobre a instalação manual do Rocket.Chat no Ubuntu 16.04 com MongoDB ReplicaSet e Nginx TLS. Inclui práticas operacionais, backup, runbook e checklists para colocar o serviço em produção com segurança.
Materiais semelhantes
Instalar e usar Podman no Debian 11
Apt‑pinning no Debian: guia prático
Injete FSR 4 com OptiScaler em qualquer jogo
DansGuardian e Squid com NTLM no Debian Etch
Corrigir erro de instalação no Android