O Rocket.Chat é um software gratuito de comunicação em grupo de código aberto e é o mais utilizado. Ele foi desenvolvido em JavaScript e usa a estrutura Meteor fullstack. É um servidor de bate-papo auto-hospedado e oferece chat por vídeo e conferência, compartilhamento de arquivos, sistemas de tickets de ajuda.
O Rocket.Chat ajuda sua equipe a se comunicar e compartilhar idéias a partir de dispositivos móveis e de desktop. Finalmente, é uma ótima solução para quem deseja hospedar seu próprio serviço de bate-papo.
Recursos:
*Bate-papo ao vivo, chamadas de vídeo e áudio e compartilhamento de tela. *Aplicativos móveis para Linux, Android, iOS, Windows e Mac. *Upload e compartilhamento de arquivos. *Tradução em tempo real.
Neste tutorial, explicaremos instruções passo a passo sobre como configurar o Rocket.Chat no servidor Ubuntu 18.04 com o Nginx como proxy reverso.
Pré-requisitos
Para seguir este tutorial, você precisará de um servidor Ubuntu 18.04 instalado, um usuário não-root comum com permissão sudo, um firewall básico habilitado para bloquear portas não essenciais, 2 GB de memória e um processador com 2 núcleos, além de um nome de domínio apontado para o endereço IP do servidor.
Quando você tiver uma conta disponível, efetue login como seu usuário não root para começar.
Instalando e configurando o MongoDB
Por padrão, o MongoDB não está disponível no repositório padrão do Ubuntu 18.04. Portanto, você precisará adicionar o repositório do MongoDB ao APT.
Primeiro, importe a chave pública do MongoDB executando o seguinte comando:
$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Executing: /tmp/apt-key-gpghome.jElLfN6iUC/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
gpg: key 68818C72E52529D4: public key "MongoDB 4.0 Release Signing Key packaging@mongodb.com" imported
gpg: Total number processed: 1
gpg: imported: 1
Em seguida, adicione o repositório MongoDB com o seguinte comando:
$sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Depois, atualize o repositório e instale MongoDB com o comando:
$$sudo apt-get update -y
sudo apt-get install mongodb-org -y
Você vai precisar configurar a réplica de MongoDB para melhorar a performance via Meteor Oplog.
Você pode fazer essa configuração editando /etc/mongod.conf
$sudo nano /etc/mongod.conf
Adicione as seguintes linhas no fim do documento:
/etc/mongod.conf
replication: replSetName: "rs01"
$$sudo systemctl start mongod
sudo systemctl enable mongod
Para checar o status do MongoDB use o seguinte comando:
$sudo systemctl status mongod
Output:
mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2019-07-16 04:32:43 UTC; 4s ago
Docs: https://docs.mongodb.org/manual
Main PID: 13607 (mongod)
CGroup: /system.slice/mongod.service
└─13607 /usr/bin/mongod --config /etc/mongod.conf
Jul 16 04:32:43 test.example.com systemd[1]: Started MongoDB Database Server.
Agora efetue login no MongoDB shell com o seguinte comando:
$mongo
Depois, inicie a réplica com o seguinte comando:
$> rs.initiate()
Você deve ver o seguinte arquivo de saída:
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "127.0.0.1:27017",
"ok" : 1,
"operationTime" : Timestamp(1563253970, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1563253970, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
Instalar o Node.js
Você deve usar o Node.js para usar o Rocket.Chat, em uma versão a igual ou superior à 8.x. Logo, você terá que adicionar o Node.js em seu sistema.
Você pode fazer isso com o seguinte comando:
$curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Depois, atualize o repositório e instale o Node.js e outros pacotes necessários com o comando seguinte:
$sudo apt-get install nodejs npm build-essential curl software-properties-common graphicsmagick -y
Após instalar o Node.js, execute os comandos seguintes para instalar a versão recomendada do Node.js:
$sudo npm install -g inherits n
Output:
/usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n
/usr/local/lib
├── inherits@2.0.4
└── n@4.1.0
Depois, instale a versão recomendada do Node.js com o comando seguinte:
$n 8.11.4
Output:
install : node-v8.11.4
mkdir : /usr/local/n/versions/node/8.11.4
fetch : https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.gz
######################################################################################################################################## 100.0%
installed : v8.11.4
Instale o Rocket Chat
Antes de instalar o Rocket.Chat, você vai precisar criar um novo usuário e grupo para poder executá-lo.
Você pode criá-los com os seguintes comandos:
$sudo useradd -m -U -r -d /opt/rocket rocket
Depois, adicione o usuário rocket ao grupo www-data, para que o Nginx possa acessar o Rocket.Chat.
$$sudo usermod -a -G rocket www-data
sudo chmod 750 /opt/rocket
Depois, faça login com o usuário rocket e faça download da última versão estável do Rocket.Chat com o comando seguinte:
$$su - rocket
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
Agora, extraia o arquivo baixado com o comando seguinte:
$tar zxf rocket.chat.tgz
Renomeie o diretório extraído para Rocket.Chat com o comando seguinte:
$mv bundle Rocket.Chat
Depois, instale todos os pacotes necessários usando o comando npm como mostrado abaixo:
$$cd Rocket.Chat/programs/server
npm install
Agora você tem o Rocket.Chat instalado e configurado. Logo, vamos testar a instalação do Rocket.Chat.
Para isso, ajuste o ambiente com o comando seguinte:
$$$$export PORT=3000
export ROOT_URL=http://0.0.0.0:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
export MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01
Depois, mude o diretório para Rocket.Chat e inicie o servidor Rocket.Chat com o comando seguinte:
$$cd ../../
node main.js
Se tudo estiver certo, o arquivo de saída deve ser similar ao arquivo abaixo:
Using GridFS for custom sounds storage
Using GridFS for custom emoji storage
➔ System ➔ startup
➔ +---------------------------------------------+
➔ | SERVER RUNNING |
➔ +---------------------------------------------+
➔ | |
➔ | Rocket.Chat Version: 1.2.1 |
➔ | NodeJS Version: 8.11.4 - x64 |
➔ | MongoDB Version: 4.0.10 |
➔ | MongoDB Engine: wiredTiger |
➔ | Platform: linux |
➔ | Process Port: 3000 |
➔ | Site URL: http://0.0.0.0:3000/ |
➔ | ReplicaSet OpLog: Enabled |
➔ | Commit Hash: 7475d7628a |
➔ | Commit Branch: HEAD |
➔ | |
➔ +---------------------------------------------+
Depois, saia do rocket user com o seguinte comando:
$exit
Criando o arquivo Systemd Service para o Rocket.Chat
Depois, você vai precisar criar um arquivo Systemd para administrar o Rocket.Chat service. Você pode fazer isso com o comando seguinte:
$sudo nano /etc/systemd/system/rocketchat.service
Adicione as linhas seguintes:
/etc/systemd/system/rocketchat.service
[Unit] Description=Rocket.Chat server After=network.target nss-lookup.target mongod.target
[Service] StandardOutput=syslog StandardError=syslog SyslogIdentifier=rocketchat User=rocket Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=https://test.example.com PORT=3000 ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install] WantedBy=multi-user.target
Salve e feche o arquivo. Depois, inicie o Rocket.Chat e programe-o para iniciar depois que o sistema for ligado, por meio do comando seguinte:
$$$sudo systemctl daemon-reload
sudo systemctl start rocketchat
sudo systemctl enable rocketchat
Agora você pode verificar o serviço Rocket.Chat com o comando seguinte:
$sudo systemctl status rocketchat
Output:
● rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2019-07-16 05:29:10 UTC; 2min 24s ago
Main PID: 11161 (node)
Tasks: 10 (limit: 1114)
CGroup: /system.slice/rocketchat.service
└─11161 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | MongoDB Version: 4.0.10 |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | MongoDB Engine: wiredTiger |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | Platform: linux |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | Process Port: 3000 |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | Site URL: http://0.0.0.0:3000/ |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | ReplicaSet OpLog: Enabled |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | Commit Hash: 7475d7628a |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | Commit Branch: HEAD |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ | |
Jul 16 05:31:23 ubuntu1804 rocketchat[11161]: ➔ +---------------------------------------------+
Configure Nginx como um Proxy Reverso
Depois, você vai precisar instalar e configurar o Nginx como um proxy reverso para encaminhar solicitações de clientes ao servidor backend do Rocket.Chat.
Primeiramente, instale o Nginx com o seguinte comando:
$sudo apt-get install nginx -y
Depois, crie um servidor Nginx para Rocket.Chat com o comando seguinte:
$sudo nano /etc/nginx/conf.d/rocketchat.conf
Adicione as linhas seguintes:
/etc/nginx/conf.d/rocketchat.conf
upstream rocketchat { server 127.0.0.1:3000; }
server { listen 80; server_name test.example.com; access_log /var/log/nginx/test.example.com-access.log; error_log /var/log/nginx/test.example.com-error.log;
location / {
proxy_pass http://rocketchat/;
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;
}
}
Salve e feche o arquivo. Então, confira o Nginx para checar se há algum erro de sintaxe. Use o seguinte comando:
$sudo nginx -t
Output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Finalmente, reinicie o serviço Nginx para aplicar todas as alterações de configuração:
$sudo systemctl restart nginx
Acesse a Interface Web do Rocket.Chat
Agora, abra seu navegador web e digite a URL http://test.example.com. Você será redirecionado para a páguina seguinte:
Digite seu nome, usuário admin, senha e endereço de e-mail. Depois, clique em Continue. Você deve ver a seguinte página:
Digite o nome de sua empresa e clique no botão Continue. Você deve ver a seguinte página:
Digite as informações de seu servidor e clique em Continue. Você deve ver a seguinte página:
Agora, registe o seu servidor e clique em Continue. Você deve ver a página seguinte:
Agora, clique em ”Go to your workspace”. Você será redirecionado à página do painel de controle do Rocket.Chat, assim como na imagem seguinte:
Conclusão
Parabéns! Você instalou e configurou o Rocket.Chat em um Ubuntu 18.04 com Nginx sendo um proxy reverso com sucesso! Agora você conseguirá hospedar seu próprio chat, criar mais canais, adicionar membros e começar conversas entre si. Para mais informações, você pode verificar o arquivo oficial do Rocket.Chat em RocketChat Doc
0 COMMENTS