GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo implementar Rocket.Chat en CentOS 7

Rocket.Chat es una plataforma de comunicación de equipo completa, una alternativa de Slack autohospedada. Está construido con Meteor y ofrece varias funciones, incluido el chat de la mesa de ayuda, videoconferencias, uso compartido de archivos, mensajes de voz, API y más.

En este tutorial, le mostraremos cómo instalar e implementar Rocket.Chat en un servidor CentOS 7 con Nginx como proxy inverso SSL.

Requisitos previos #

Asegúrese de cumplir con los siguientes requisitos previos antes de continuar con este tutorial:

  • Servidor CentOS 7, de acuerdo con los requisitos oficiales del sistema Rocket.Chat, necesita al menos 1G de RAM.
  • Ha iniciado sesión como usuario con privilegios sudo.
  • Tiene un nombre de dominio que apunta a la dirección IP de su servidor. En este artículo, usaremos example.com .
  • Tienes Nginx instalado, si no, puedes instalarlo siguiendo este tutorial.
  • Un certificado SSL. Puede generar uno gratuito de Let's Encrypt o comprar uno de otro proveedor.

Instalar dependencias #

Instale los siguientes paquetes que son necesarios para construir el npm requerido módulos:

sudo yum install epel-release curl GraphicsMagick gcc-c++

A continuación, instale Node.js y npm escribiendo:

sudo yum install -y nodejs npm

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

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

sudo npm install -g inherits nsudo n 8.11.3

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

Instalaremos MongoDBusando yum de los repositorios oficiales de MongoDB.

Abra el editor de su elección y cree el siguiente archivo de repositorio:

sudo nano /etc/yum.repos.d/mongodb-org.repo

Pegue el siguiente contenido en el archivo:

/etc/yum.repos.d/mongodb-org.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

Guarde el archivo y cierre su editor de texto.

Para instalar MongoDB, ejecute el siguiente comando:

sudo yum 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

Cree un nuevo usuario y grupo, que ejecutará nuestra instancia de Rocket.Chat. Para simplificar, nombraremos al usuario rocket :

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

Agregue el nginx usuario al nuevo grupo de usuarios y cambie el /opt/rocket permisos de directorio para que Nginx pueda acceder a él:

sudo usermod -a -G rocket nginxsudo chmod 750 /opt/rocket

Instalando Rocket.Chat #

Cambiar al usuario rocket escribiendo:

sudo su - 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 npm necesarios paquetes:

cd Rocket.Chat/programs/servernpm install

Antes de crear la unidad systemd y configurar un proxy inverso con Nginxit, es una buena idea probar si la instalación fue exitosa.

Para hacerlo, comience configurando las variables de entorno requeridas:

export PORT=3000export ROOT_URL=http://example.com:3000/export MONGO_URL=mongodb://localhost:27017/rocketchat

A continuación, 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                  |
➔ |                                             |
➔ +---------------------------------------------+

En este punto, Rocket.Chat está instalado en su máquina CentOS 7. Detenga el servidor Rocket.Chat con CTRL+C y continúa con los siguientes pasos.

Crear una Unidad Systemd #

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

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

Pegue el siguiente contenido en el archivo:

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

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo.

Notifique a systemd que se creó un nuevo archivo de unidad e inicie el servicio Rocket.Chat ejecutando:

sudo systemctl daemon-reloadsudo systemctl start rocketchat

Verifique el estado del servicio con el siguiente comando:

sudo systemctl status rocketchat

La salida debería verse así:

● rocketchat.service - Rocket.Chat server
   Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-04-10 20:30:56 UTC; 8s ago
 Main PID: 32356 (node)
   CGroup: /system.slice/rocketchat.service
           └─32356 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

Si no hay errores, puede habilitar el servicio Rocket.Chat para que se inicie automáticamente en el momento del arranque:

sudo systemctl enable rocketchat

Configurar un proxy inverso con Nginx #

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

Ahora necesitamos crear un nuevo bloque de servidor para nuestra instalación de Rocket.Chat:

sudo nano /etc/nginx/conf.d/example.com.conf

Pegue el siguiente contenido en el archivo:

/etc/nginx/conf.d/example.com.conf
upstream rocketchat_backend {
  server 127.0.0.1:3000;
}

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

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

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

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

    return 301 https://example.com$request_uri;
}

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

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

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/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;
    }
}

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 la mayoría de las otras funciones, como las notificaciones automáticas, funcionarán. de la caja.

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.


Cent OS
  1. Cómo implementar CDP en un servidor CentOS

  2. Cómo instalar Live Helper Chat en CentOS 7

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

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

  5. Cómo implementar Ruby + Passenger + Nginx en CentOS Linux

Cómo instalar R en CentOS 8

Cómo implementar un clúster fragmentado de MongoDB en CentOS 7

Cómo instalar Streamlit e implementar una aplicación Streamlit en CentOS 8

Cómo instalar Rocket.Chat en CentOS 8

Cómo instalar Rocket.Chat en Ubuntu 16.04 LTS

Cómo implementar Rocket Chat con Nginx en Ubuntu 18.04