GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo implementar Rocket Chat con Nginx en Ubuntu 18.04

Rocket.Chat es una aplicación de chat gratuita, de código abierto y autohospedada que le permite alojar su propio servidor de chat. Es muy similar a Slack y ofrece características similares que incluyen compartir archivos, sistemas de emisión de boletos, chat de video y conferencias. Con Rocket.Chat, puede chatear con los miembros del equipo, crear canales y grupos privados, realizar videollamadas y llamadas de audio, compartir pantallas y cargar archivos.

Características

  • API potentes
  • Supervisión remota de vídeo
  • Conferencias de audio y video gratuitas
  • LiveChat y sincronización de grupos LDAP
  • Compartir pantalla y archivos
  • Notificaciones de escritorio y móviles
  • Salas multiusuario públicas y privadas

Rocket.Chat es la mejor opción para usted si está buscando una plataforma de chat de código abierto para alojar en la nube.

En este tutorial, le mostraremos cómo instalar y configurar Rocket.Chat en Ubuntu 18.04 VPS.

Requisitos

  • Un Ubuntu 18.04 VPS nuevo en Atlantic.Net Cloud Platform.
  • Un nombre de dominio válido dirigido a su dirección IP de VPS. En este tutorial, usaremos node1.example.com.

Nota:puede consultar la Guía de DNS de Atlantic para administrar los registros de DNS.

Paso 1:crear el servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 18.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor Ubuntu 18.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

apt-get update -y

Paso 2:instalar Node.js

Rocket.Chat requiere Node.js y otras dependencias para crear paquetes npm desde el origen. Primero, agregue el repositorio Node.js ejecutando el siguiente comando:

curl -sL https://deb.nodesource.com/setup_12.x — Node.js 12 LTS "Erbium"| bash -

A continuación, actualice el repositorio e instale Node.js junto con las dependencias requeridas con el siguiente comando:

apt-get update -y
apt-get install nodejs build-essential curl software-properties-common graphicsmagick -y

Paso 3:instalar MongoDB

Rocket.Chat requiere que MongoDB esté instalado en su servidor. De forma predeterminada, la última versión de MongoDB no está disponible en el repositorio predeterminado de Ubuntu 18.04, por lo que deberá agregar el repositorio de MongoDB a su servidor.

Primero, descargue y agregue la clave del repositorio oficial con el siguiente comando:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

A continuación, agregue el repositorio de MongoDB ejecutando el siguiente comando:

add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

Una vez que se agrega el repositorio, actualice el repositorio e instale MongoDB con el siguiente comando:

apt-get update -y
apt-get install mongodb-org -y

Una vez que MongoDB esté instalado, inicie el servicio MongoDB y habilítelo para que se inicie después de reiniciar el sistema:

systemctl start mongod
systemctl enable mongod
netstat -ant

Salida:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN

Paso 4:configurar MongoDB

Rocket.Chat utiliza el conjunto de réplicas de MongoDB para mejorar el rendimiento, por lo que deberá configurar el conjunto de réplicas de MongoDB. Puedes configurarlo con el siguiente comando:

echo -e "replication:\n replSetName: \"rs01\"" | tee -a /etc/mongod.conf

A continuación, reinicie el servicio MongoDB para aplicar los cambios:

systemctl restart mongod

A continuación, inicie sesión en el shell de MongoDB e inicie el conjunto de réplicas con el siguiente comando:

mongo
rs.initiate()

Debería ver el siguiente resultado:

En este punto, MongoDB está instalado y configurado con el conjunto de réplicas.

Escriba Salir para salir de MongoDB.

Paso 5:instala Rocket.Chat

Antes de comenzar, se recomienda crear un nuevo usuario y grupo para ejecutar Rocket.Chat.

Primero, crea un nuevo usuario con el nombre de cohete con el siguiente comando:

adduser rocket

Deberías obtener el siguiente resultado:

A continuación, permita que Nginx acceda al directorio Rocket.Chat agregando el usuario de cohete al grupo www-data:

usermod -a -G rocket www-data

A continuación, cambie el usuario a Rocket y descargue la última versión de Rocket.Chat con el siguiente comando:

su - rocket
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz

Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:

tar zxf rocket.chat.tgz

Luego, mueva el directorio extraído a Rocket.Chat usando el siguiente comando:

mv bundle Rocket.Chat

A continuación, cambie el directorio a Rocket.Chat/programs/server e instale todos los paquetes npm necesarios con el siguiente comando:

cd Rocket.Chat/programs/server
npm install

Nota: Rocket.Chat tardará unos minutos en instalarse

Una vez que todos los paquetes estén instalados, debería ver el siguiente resultado:

A continuación, configure las variables de entorno requeridas para probar la instalación de Rocket.Chat:

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

A continuación, cambie el directorio a Rocket.Chat e inicie el servidor Rocket.Chat con el siguiente comando:

cd ~/Rocket.Chat
node main.js

Nota: Este proceso puede tardar varios minutos en completarse

Deberías obtener el siguiente resultado:

A continuación, detenga el servidor Rocket.Chat con CTRL+C y luego ejecute el siguiente comando para salir del usuario de cohete:

exit

Paso 6:cree un archivo de servicio de Systemd para Rocket.Chat

A continuación, cree un archivo de servicio systemd para iniciar y detener el servicio Rocket.Chat:

nano /etc/systemd/system/rocketchat.servicio

Agregue las siguientes líneas:

[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 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01 ROOT_URL=http://node1.example.com PORT=3000
ExecStart=/usr/bin/nodejs /home/rocket/Rocket.Chat/main.js


[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo cuando haya terminado. Luego, vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicie el servicio Rocket.Chat y habilítelo para que se inicie después de reiniciar el sistema:

systemctl start rocketchat
systemctl enable rocketchat

Ahora puede verificar el servicio Rocket.Chat usando el siguiente comando:

systemctl status rocketchat

Deberías obtener el siguiente resultado:

Paso 7:configurar un proxy inverso con Nginx

A continuación, deberá instalar y configurar Nginx como un proxy inverso para reenviar las solicitudes de los clientes que llegan del puerto 3000 al puerto 80 de Nginx.

Primero, instale el servidor web Nginx con el siguiente comando:

apt-get install nginx -y

A continuación, cree un archivo de configuración de host virtual Nginx con el siguiente comando:

nano /etc/nginx/sites-available/rocket

Agregue las siguientes líneas:

server {
  listen 80;

  server_name    node1.example.com;
  access_log /var/log/nginx/rocket-access.log;
  error_log /var/log/nginx/rocket-error.log;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:3000/;
  }
}

Guarde y cierre el archivo cuando haya terminado. Luego, habilite el host virtual con el siguiente comando:

ln -s /etc/nginx/sites-available/rocket /etc/nginx/sites-enabled/

Finalmente, reinicie el servicio Nginx para aplicar los cambios de configuración:

systemctl restart nginx

Paso 8:acceda a la interfaz web de Rocket.Chat

Ahora, abra su navegador web y navegue hasta la URL http://node1.example.com. Será redirigido al asistente de configuración de Rocket.Chat:

Proporcione su nombre de usuario de administrador, correo electrónico, detalles de contraseña y haga clic en Continuar botón. Debería ver la siguiente página:

A continuación, proporcione la información de su organización y haga clic en Continuar. botón. Debería ver la siguiente página:

A continuación, proporcione la información de su servidor y haga clic en Continuar botón. Debería ver la siguiente página:

A continuación, utilice las puertas de enlace y los proxies preconfigurados de Rocket.Chat y haga clic en Continuar. botón. Debería ver la siguiente página:

Ahora, haz clic en Ir a tu espacio de trabajo botón. Se le redirigirá al panel predeterminado de Rocket.Chat:

Conclusión

¡Felicidades! Ha instalado y configurado con éxito el servidor Rocket.Chat con Nginx como proxy inverso en Ubuntu 18.04 VPS. Puede visitar Rocket.Chat Doc para conocer el nuevo sistema de chat. ¡Empiece hoy con Rocket.Chat en un VPS de Atlantic.Net!


Linux
  1. Cómo implementar Rocket.Chat en Ubuntu 18.04

  2. Cómo implementar Modsecurity con Nginx en Ubuntu 20.04 LTS

  3. Cómo instalar Rocket.Chat en Ubuntu 16.04

  4. Cómo instalar Rocket.Chat en Ubuntu 18.04

  5. Cómo instalar y configurar MERN Stack con Nginx en Ubuntu 20.04

Cómo implementar Ghost Blog con Nginx en Ubuntu 20.04

Cómo instalar Rocket Chat en Ubuntu 16.04 con Docker

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

Cómo instalar el software CodoForum en Ubuntu con Nginx

Cómo configurar un servidor Seafile con Nginx en Ubuntu 18.04

¿Cómo implementar la aplicación Laravel con Nginx en Ubuntu?