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 características como chats grupales, videoconferencia y puede integrar el chat en vivo con otras plataformas. En este artículo, aprenderemos cómo configurar un sistema Rocketchat autohospedado con cifremos certificados SSL.
Prerrequisitos
- Servidor ubuntu fresco
- Acceso root o sudo cuenta privilegiada
- Un nombre de dominio apuntado con la IP del servidor
- Conexión a Internet para descargar aplicaciones.
Instalar los paquetes y las dependencias necesarios
Antes de instalar los paquetes, actualice el sistema Ubuntu usando el siguiente comando
PS sudo apt-get update -y
Una vez que se complete la actualización del sistema, configure apt para instalar paquetes de MongoDB usando el siguiente comando.
PS 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
Producción :
Para configurar Node.js para poder instalar usando apto el administrador de paquetes ejecuta el siguiente comando.
PS sudo apt-get -y actualización && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash –
Producción:
Ahora instale las herramientas de compilación Nodejs, MongoDB y graphicsmagick:
PS sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick
Producción :
Ahora instale hereda yn, y la versión de nodo requerida por Rocketchat.
PS sudo npm install -g hereda n && sudo n 12,18,4
Para verificar la versión de Nodejs instalada, ejecute el siguiente comando.
$ nodo –versión
Producción:
v12.18.4
Instalar Rocketchat
Ya hemos instalado las dependencias necesarias. 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.
PS curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz tar -xzf /tmp/rocket.chat.tgz -C / tmp
Producción :
Extrae la aplicación descargada. Puede elegir su directorio preferido para almacenar el archivo extraído. En esto example, He extraído el archivo en el / tmp directorio.
$ tar -xvzf /tmp/rocket.chat.tgz -C / tmp
Ahora instale Rocketchat. En este articulo /optar El directorio se utiliza para la instalación. Puede preferir cualquier directorio.
$ cd / tmp / paquete / programas / servidor && npm install
Producción:
PS sudo mv / tmp / bundle /opt/Rocket.Chat
Configurar el servicio Rocket.Chat
Cree un usuario de rocketchat, establezca el permiso correcto para el directorio de la aplicación Rocket.Chat y cree el servicio Rocket.Chat.
PS sudo useradd -M rocketchat && sudo usermod -L rocketchat $ sudo chown -R rocketchat: rocketchat /opt/Rocket.Chat
Para crear rocketchat.service, ejecute el siguiente comando en su terminal
gato << EOF |sudo tee -a /lib/systemd/system/rocketchat.service [Unit] Descripción = El servidor Rocket.Chat Después = 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 Usuario = rocketchat Entorno = MONGO_URL = mongodb: // localhost: 27017 / rocketchat ROOT_URL = https: / / localhost: 3000 / PUERTO = 3000 [Install] WantedBy = multi-user.target EOF
Ejemplo:
Ahora necesitamos configurar un motor de almacenamiento MongoDB y la replicación. Después de esto, habilite e inicie mongoDB como:
PS sudo sed -i “s / ^ # motor: / motor: mmapv1 /” /etc/mongod.conf $ sudo sed -i “s / ^ # replication: / replication: n replSetName: rs01 /” /etc/mongod.conf $ sudo systemctl habilitar mongod && sudo systemctl start mongod $ mongo –eval “printjson (rs.initiate ())”
Producción :
Ahora inicie y habilite el servicio Rocket.Chat usando el siguiente comando:
PS sudo systemctl habilitar rocketchat && sudo systemctl start rocketchat
Verifique el estado del servicio Rocket.Chat “
PS sudo systemctl status rocketchat
Producción:
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
PS sudo apto instalar nginx
Cree la configuración de host virtual nginx para rocketchat.
PS sudo nano /etc/nginx/conf.d/rocketchat.conf
Ahora pegue el siguiente contenido y guarde el archivo
backend ascendente {servidor 127.0.0.1:3000; } servidor {escuchar 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; ubicación / {proxy_pass https: // backend /; proxy_http_version 1.1; proxy_set_header Actualización $ http_upgrade; proxy_set_header Conexión “actualización”; proxy_set_header Host $ http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forward-For $ proxy_add_x_fordered_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy verdadero; proxy_redirect off; }}
Verifique el archivo de configuración de nginx
PS sudo nginx -t
Reinicie y habilite el servicio nginx
PS sudo systemctl reiniciar nginx $ sudo systemctl habilitar nginx
Ahora acceda a su dominio de rocketchat como
https: // tu_dominio_rocketchat
Obtendrá el asistente de configuración web, complételo y comenzará 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 nginx vhost y pegue el siguiente contenido.
PS sudo nano /etc/nginx/conf.d/rocketchat.conf backend ascendente {servidor 127.0.0.1:3000; } servidor {escuchar 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; ubicación / {proxy_pass https: // backend; proxy_http_version 1.1; proxy_set_header Actualización $ http_upgrade; proxy_set_header Conexión “actualización”; proxy_set_header Host $ http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Fordered-For $ proxy_add_x_fordered_for; proxy_set_header X-Fordered-Proto https; proxy_set_header X-Nginx-Proxy verdadero; proxy_redirect off; }
Nota :
Genere o compre un certificado ssl y apunte 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]
Verifique el archivo de configuración de nginx
sudo nginx -t
Reiniciar el servicio nginx
sudo systemctl reiniciar nginx
Accediendo a Rocketchat
Una vez que el proxy inverso está configurado, 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 usar su Rocket.Chat autohospedado.
Conclusión
En este artículo, hemos aprendido cómo instalar y configurar el chat de Rocket autohospedado en Ubuntu 20.04. Además, he cubierto cómo instalar y configurar nginx para proxy inverso con cifremos certificados SSL.