GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Rocket.chat con proxy inverso nginx en Ubuntu 20.04

Si está buscando una plataforma de chat autohospedada de código abierto, Rocketchat puede ser la mejor opción. El chat de Rocket se puede usar como una alternativa a diferentes canales de comunicación, como Slack, Mattermost, etc. El chat de Rocket viene con diferentes funciones, como chats grupales, videoconferencias, y puede integrar el chat en vivo con otras plataformas. En este artículo, aprenderemos cómo configurar un sistema Rocketchat autohospedado con certificados SSL de let's encrypt.

Requisitos

  1. Servidor ubuntu actualizado
  2. Acceso raíz o cuenta privilegiada sudo
  3. Un nombre de dominio apuntado con la IP del servidor
  4. Conexión a Internet para descargar aplicaciones

Instalar los paquetes y dependencias requeridos

Antes de instalar los paquetes, actualice el sistema Ubuntu usando el siguiente comando

$ sudo apt-get update -y

Una vez que se complete la actualización del sistema, configure apt para instalar paquetes MongoDB usando el siguiente comando.

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Salida:

Para configurar Node.js para poder instalar usando apt administrador de paquetes ejecute el siguiente comando.

$ sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

Salida:

Ahora instale las herramientas de compilación Nodejs, MongoDB y graphicsmagick:

$ sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick

Salida:

Ahora instale los herederos y n, y la versión de nodo requerida por Rocketchat.

$ sudo npm install -g inherits n && sudo n 12.18.4

Para verificar la versión de Nodejs instalada, ejecute el siguiente comando.

$ node --version

Salida:

v12.18.4

Instalar Rocketchat

Ya hemos instalado las dependencias requeridas. Ahora, en este paso, descargaremos la aplicación Rocket Chat y la instalaremos en Ubuntu 20.04.

Descarga la última versión de Rocketchat usando el siguiente comando.

$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp

Salida:

Extraiga la aplicación descargada. Puede elegir su directorio preferido para almacenar el archivo extraído. En este ejemplo, extraje el archivo en el /tmp directorio.

$ tar -xvzf /tmp/rocket.chat.tgz -C /tmp

Ahora instala Rocketchat. En este artículo /opt El directorio se utiliza para la instalación. Puede preferir cualquier directorio.

$ cd /tmp/bundle/programs/server && npm install

Salida:

$ sudo mv /tmp/bundle /opt/Rocket.Chat

Configurar el servicio Rocket.Chat

Cree un usuario de Rocketchat, establezca el permiso correcto en el directorio de la aplicación Rocket.Chat y cree el servicio Rocket.Chat.

$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

Para crear el servicio Rocketchat, ejecute el siguiente comando en su terminal

cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

Ejemplo:

Ahora necesitamos configurar un motor de almacenamiento y replicación MongoDB. Después de esto, habilite e inicie mongoDB como:

$ sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
$ sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
$ sudo systemctl enable mongod && sudo systemctl start mongod
$ mongo --eval "printjson(rs.initiate())"

Salida:

Ahora inicie y habilite el servicio Rocket.Chat usando el siguiente comando:

$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat

Verifique el estado del servicio Rocket.Chat”

$ sudo systemctl status rocketchat

Salida:

Instalación de Nginx y configuración de proxy inverso

Para configurar el proxy inverso nginx para Rocket.Chat, instale nginx usando el siguiente comando

$ sudo apt install nginx

Cree una configuración de host virtual nginx para Rocketchat.

$ sudo nano /etc/nginx/conf.d/rocketchat.conf

Ahora pegue los siguientes contenidos y guarde el archivo

upstream backend {
server 127.0.0.1:3000;
}

server {
listen 80;

server_name your_rocketchat_domain_name;
access_log /var/log/nginx/rocket.chat.access.log;
error_log /var/log/nginx/rocket.chat.error.log;

location / {
proxy_pass http://backend/;
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;
}
}

Compruebe el archivo de configuración de nginx

$ sudo nginx -t

Reinicie y habilite el servicio nginx

$ sudo systemctl restart nginx
$ sudo systemctl enable nginx

Ahora accede a tu dominio de Rocketchat como

http://tu_dominio_de_rocketchat

Obtendrá el asistente de configuración web, complételo y comience a usar Rocket.Chat

Nginx como proxy inverso SSL

Configuramos Rocket.Chat solo con proxy inverso HTTP. Para configurar nginx como un proxy inverso SSL, necesitará archivos de certificado. Edite el archivo vhost de nginx y pegue el siguiente contenido.

$ sudo nano /etc/nginx/conf.d/rocketchat.conf
upstream backend {
server 127.0.0.1:3000;
}

server {
listen 443 ssl;
Server_name your_rocketchat_domain_name;
client_max_body_size 200M;
access_log /var/log/nginx/rocket.chat.access.log;
error_log /var/log/nginx/rocket.chat.error.log;
ssl_certificate /etc/nginx/certificate.crt;
ssl_certificate_key /etc/nginx/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

location / {
proxy_pass http://backend;
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-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}

Nota:

Genere o compre un certificado SSL y señale el directorio de su archivo de certificado en el siguiente parámetro de configuración.

ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]

Compruebe el archivo de configuración de nginx

sudo nginx -t

Reiniciar el servicio nginx

sudo systemctl restart nginx

Accediendo a Rocketchat

Una vez que se configura el proxy inverso, puede acceder a su Rocket.Chat usando la URL como:

https://you_rocket_chat_domain

Obtendrá el asistente de configuración web de Rocket.Chat. Complete la configuración y comience a utilizar su propio Rocket.Chat.

Conclusión

En este artículo, aprendimos cómo instalar y configurar el chat de Rocket autohospedado en Ubuntu 20.04. Además, he explicado cómo instalar y configurar nginx para el proxy inverso con los certificados Let's Encrypt SSL.


Ubuntu
  1. Cómo instalar Nginx en Ubuntu 16.04

  2. Cómo instalar Odoo 11 en Ubuntu 16.04 con Nginx como proxy inverso

  3. Cómo instalar Odoo 10 en Ubuntu 16.04 con Nginx como proxy inverso

  4. Cómo instalar Flectra en Ubuntu 20.04 con Nginx como proxy inverso

  5. Cómo instalar Odoo 12 en Ubuntu 18.04 con Nginx como proxy inverso

Cómo instalar Rocket Chat en Ubuntu 16.04 con Docker

Cómo instalar WordPress 5.x con Nginx en Ubuntu 18.04 / Ubuntu 16.04

Cómo instalar WordPress con Nginx en Ubuntu

Cómo instalar SuiteCRM en Ubuntu 20.04 con Apache/Nginx

Cómo instalar MediaWiki en Ubuntu 20.04 con Apache/Nginx

Cómo instalar Rocket.Chat en Ubuntu 20.04 LTS