GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo implementar Rocket.Chat en Ubuntu 18.04

Rocket.Chat es una plataforma de comunicación de equipo de código abierto, una alternativa de Slack autohospedada. Está desarrollado utilizando el marco Meteor y proporciona varias funciones, incluido el chat de la mesa de ayuda, el intercambio de archivos, las videoconferencias, los mensajes de voz, la API y más.

Rocket.Chat es una solución perfecta para empresas y comunidades que desean alojar su propio sistema de chat.

En este tutorial, le mostraremos cómo implementar Rocket.Chat en un servidor Ubuntu 18.04 y configurar Nginx como un proxy inverso SSL.

Requisitos previos #

Antes de continuar con este tutorial, asegúrese de tener los siguientes requisitos previos.

  • Servidor Ubuntu 18.04. De acuerdo con los requisitos oficiales del sistema Rocket.Chat, necesita al menos 1 G de RAM.
  • Un nombre de dominio que apunta a la dirección IP de su servidor. Usaremos chat.example.com .
  • Nginx instalado siguiendo este tutorial.
  • Tienes un certificado SSL instalado para tu dominio. Puede generar un certificado SSL gratuito de Let's Encrypt siguiendo este tutorial.

Instalando Node.js #

Comience actualizando la lista de paquetes de su sistema:

sudo apt update

Instale Node.js, npm y todas las demás dependencias necesarias para crear paquetes npm desde la fuente:

sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick

Al momento de escribir este artículo, la versión recomendada de Node.js para Rocket.Chat es Node.js v8.11.3.

Vamos a usar n , un paquete npm que nos permite administrar de forma interactiva las versiones de Node.js.

Ejecute los siguientes comandos para instalar n y la versión recomendada de Node.js:

sudo npm install -g inherits nsudo n 8.11.3

Instalando MongoDB #

MongoDB es una base de datos orientada a documentos NoSQL y Rocket.Chat la utiliza como almacén de datos.

Instalaremos MongoDB desde los repositorios oficiales de MongoDB.

Importe la clave pública de MongoDB y habilite el repositorio oficial de MongoDB con el siguiente comando:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

Una vez que el repositorio apt esté habilitado, actualice la lista de paquetes e instale MongoDB escribiendo:

sudo apt updatesudo apt install mongodb-org

Una vez completada la instalación, habilite e inicie el servicio MongoDB:

sudo systemctl start mongodsudo systemctl enable mongod

Crear nuevo número de usuario del sistema

Para crear un nuevo usuario y grupo llamado rocket , que ejecutará la instancia de Rocket.Chat, escriba:

sudo useradd -m -U -r -d /opt/rocket rocket

Agrega los www-data usuario al nuevo grupo de usuarios y cambie el /opt/rocket permisos de directorio para que Nginx pueda acceder a la instalación de Rocket.Chat:

sudo usermod -a -G rocket www-datasudo chmod 750 /opt/rocket

Instalando Rocket.Chat #

Cambiar al usuario rocket :

sudo su - rocket

Los siguientes comandos asumen que actualmente está operando como usuario rocket .

Descarga la última versión estable de Rocket.Chat con curl:

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

Una vez que se complete la descarga, extraiga el archivo y cambie el nombre del directorio a Rocket.Chat :

tar zxf rocket.chat.tgzmv bundle Rocket.Chat

Cambia a Rocket.Chat/programs/server e instale todos los paquetes npm necesarios:

cd Rocket.Chat/programs/servernpm install

Para probar nuestra instalación antes de crear la unidad systemd y configurar un proxy inverso con Nginx, estableceremos las variables de entorno requeridas e iniciaremos el servidor Rocket.Chat

export PORT=3000export ROOT_URL=http://0.0.0.0:3000/export MONGO_URL=mongodb://localhost:27017/rocketchat

Vuelva a cambiar a Rocket.Chat directorio e inicie el Rocket.Chat servidor emitiendo los siguientes comandos:

cd ../../node main.js

Si no hay errores, debería ver el siguiente resultado:

➔ +---------------------------------------------+
➔ |                SERVER RUNNING               |
➔ +---------------------------------------------+
➔ |                                             |
➔ |  Rocket.Chat Version: 0.71.1                |
➔ |       NodeJS Version: 8.11.3 - x64          |
➔ |             Platform: linux                 |
➔ |         Process Port: 3000                  |
➔ |             Site URL: http://0.0.0.0:3000/  |
➔ |     ReplicaSet OpLog: Disabled              |
➔ |          Commit Hash: e73dc78ffd            |
➔ |        Commit Branch: HEAD                  |
➔ |                                             |
➔ +---------------------------------------------+

Detenga el servidor Rocket.Chat con CTRL+C .

Vuelva a su usuario sudo escribiendo exit y continúa con los siguientes pasos.

Crea una unidad Systemd #

Para ejecutar Rocket.Chat como un servicio, crearemos un rocketchat.service archivo de unidad en el /etc/systemd/system/ directorio.

sudo nano /etc/systemd/system/rocketchat.service

Pegue el siguiente contenido:

/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://chat.example.com PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

Notifique a systemd que hemos creado un nuevo archivo de unidad e inicie el servicio Rocket.Chat ejecutando:

sudo systemctl daemon-reloadsudo systemctl start rocketchat

Verifique el estado del servicio escribiendo:

sudo systemctl status rocketchat
* rocketchat.service - Rocket.Chat server
   Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
 Main PID: 12693 (node)
    Tasks: 10 (limit: 2319)
   CGroup: /system.slice/rocketchat.service
           `-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

Finalmente, habilite el servicio Rocket.Chat para que se inicie automáticamente en el momento del arranque con el siguiente comando:

sudo systemctl enable rocketchat

Configurar un proxy inverso con Nginx #

Si siguió nuestras guías sobre cómo instalar Nginx en Ubuntu 18.04 y cómo asegurar Nginx con Let's Encrypt en Ubuntu 18.04, ya debería tener Nginx instalado y configurado con certificado SSL.

Ahora necesitamos crear un nuevo bloque de servidor Nginx para la instalación de Rocket.Chat.

Abre tu editor de texto y crea el siguiente archivo:

sudo nano /etc/nginx/sites-available/chat.example.com.conf
/etc/nginx/sites-available/chat.example.com.conf
upstream rocketchat_backend {
  server 127.0.0.1:3000;
}

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

    include snippets/letsencrypt.conf;
    return 301 https://chat.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name chat.example.com;

    ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/chat.example.com/chain.pem;
    include snippets/ssl.conf;

    access_log /var/log/nginx/chat.example.com-access.log;
    error_log /var/log/nginx/chat.example.com-error.log;

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

Habilite el nuevo bloque de servidor creando un enlace simbólico desde el archivo al directorio de sitios habilitados:

sudo ln -s /etc/nginx/sites-available/chat.example.com.conf /etc/nginx/sites-enabled/

Vuelva a cargar el servicio Nginx para que los cambios surtan efecto:

sudo systemctl reload nginx

Configurando Rocket.Chat #

Abra su navegador y escriba:http://chat.example.com .

Suponiendo que la instalación sea exitosa, se le presentará el Asistente de configuración de Rocket.Chat que lo guiará a través de la configuración de su primer usuario administrador, la configuración de su organización y el registro de su servidor para recibir notificaciones automáticas gratuitas y más.

La primera sección del asistente de configuración inicial le pedirá que configure su usuario administrador:

Una vez que haya terminado de ingresar la información del administrador, haga clic en Continue y en el siguiente paso ingrese la información de su organización:

La tercera sección del asistente de configuración inicial le pedirá que ingrese la información del servidor:

En el siguiente paso, se le preguntará si desea utilizar las puertas de enlace y los proxies preconfigurados de Rocket.Chat. Al seleccionar esta opción, tendrá acceso al mercado de aplicaciones de Rocket.Chat y otras funciones, como las notificaciones automáticas, funcionarán de inmediato. .

Haga su elección, haga clic en Continue y será redirigido a la siguiente página que indica que su espacio de trabajo está listo para usar:

Haz clic en Go to your workspace y será redirigido al panel de control de Rocket.Chat con la sesión iniciada como usuario administrador.


Ubuntu
  1. Cómo actualizar a Ubuntu 20.04

  2. ¿Cómo instalar Let's Chat en Ubuntu 20.04?

  3. Cómo instalar Rocket.Chat en CentOS 7

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

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

Cómo implementar Mattermost en Ubuntu 20.04

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

Cómo instalar Rocket.Chat en Ubuntu 16.04 LTS

Cómo instalar Rocket.Chat en Ubuntu 20.04 LTS

Cómo implementar un servidor TeamSpeak en Ubuntu 20.04

Cómo implementar Rocket Chat con Nginx en Ubuntu 18.04