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 n
sudo 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 mongod
sudo 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 nginx
sudo 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.tgz
mv bundle Rocket.Chat
Cambia a Rocket.Chat/programs/server
e instale todos los npm
necesarios paquetes:
cd Rocket.Chat/programs/server
npm 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=3000
export 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-reload
sudo 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.confupstream 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.