Cómo instalar Let’s Chat en Ubuntu 22.04
Let’s Chat es una aplicación de transporte gratuita, de código hendido y persistente que se ejecuta en Node.js y MongoDB. Está diseñada para equipos pequeños e íntimos y ofrece un rico conjunto de funciones, como autenticación LDAP/Kerberos, una API tipo REST y compatibilidad con XMPP. Con Let’s Chat, puedes cursar todo tipo de mensajes y igualmente encontrar chats de grupos de interés, pegatinas de voz y emojis geniales.
En este post, te mostraremos cómo instalar Let’s Chat con Nginx como proxy inverso en Ubuntu 22.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04.
- Una contraseña de root configurada en el servidor.
Instalar Node.JS
Ayer de despuntar, necesitarás instalar Node.js en tu servidor. Para instalar la última lectura de Node.js, tendrás que añadir el repositorio Node Source a APT.
Primero, instala todas las dependencias necesarias con el posterior comando:
apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common -y
Una vez instaladas todas las dependencias, añade el repositorio de Node.js a APT
curl -sL https://deb.nodesource.com/setup_18.x | bash -
Una vez añadido el repositorio, puedes instalar el Node.js con el posterior comando:
apt-get install nodejs -y
Tras la instalación correcta, verifica la lectura de Node.js con el posterior comando:
node -v
Obtendrás la posterior salida:
v18.7.0
Instalar almohadilla de datos MongoDB
Incluso necesitarás instalar una almohadilla de datos MongoDB en tu servidor.
En primer superficie, descarga e instala el paquete libssl con el posterior comando:
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
A continuación, añade la secreto GPG de MongoDB y el repositorio con el posterior comando:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list
A continuación, actualiza la elegancia del repositorio con el posterior comando:
apt update
Una vez actualizado tu repositorio, instala el MongoDB utilizando el posterior comando:
apt install -y mongodb-org
Una vez instalado el paquete MongoDB, inicia y habilita el servicio MongoDB con el posterior comando:
systemctl start mongod systemctl enable mongod
Puedes comprobar el estado del servicio MongoDB con el posterior comando:
systemctl status mongod
Deberías ver la posterior salida:
? mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-07-31 04:00:08 UTC; 6s ago Docs: https://docs.mongodb.org/manual Main PID: 42274 (mongod) Memory: 61.1M CPU: 1.014s CGroup: /system.slice/mongod.service ??42274 /usr/bin/mongod --config /etc/mongod.conf Jul 31 04:00:08 ubuntu2204 systemd[1]: Started MongoDB Database Server.
Instalar Let’s Chat
En primer superficie, tendrás que descargar la última lectura de Let’s Chat del repositorio Git Hub. Puedes descargarla con el posterior comando:
git clone https://github.com/sdelements/lets-chat.git
Una vez completada la descarga, cambia el directorio al descargado e instala todas las dependencias necesarias con el posterior comando:
cd lets-chat npm install
A continuación, copia el archivo de configuración de ejemplo e inicia el servidor de Let’s Chat con el posterior comando:
cp settings.yml.sample settings.yml npm start
Deberías ver la posterior salida:
> [email protected] start > node app.js (node:42373) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`. See http://mongoosejs.com/docs/4.x/docs/connections.html#use-mongo-client (Use `node --trace-deprecation ...` to show where the warning was created) ??? ????????????????????????? ?????????? ??? ?????? ????????? ??? ????????????????????????? ??????????? ???????????????????? ??? ?????? ??? ???????? ??? ???????????????? ??? ??? ?????? ??? ???????? ??? ???????????????? ??? ???????????????? ??? ???????? ??????????? ?????? ??? ??? ???????????????? ??? ???????? ?????????? ?????? ??? ??? Release 0.4.8
Pulsa CTRL + C para detener el servicio Let’s Chat.
Crear un archivo de servicio Systemd para Let’s Chat
A continuación, tendrás que crear un archivo de servicio systemd para Let’s Chat. Puedes crearlo con el posterior comando:
nano /etc/systemd/system/letschat.service
Añade las siguientes líneas:
[Unit] Description=Let's Chat Server Wants=mongodb.service After=network.target mongod.service [Service] Type=simple WorkingDirectory=/root/lets-chat ExecStart=/usr/bin/npm start User=root Group=root Restart=always RestartSec=9 [Install] WantedBy=multi-user.target
Tutela y cierra el archivo, luego recarga el demonio systemd con el posterior comando:
systemctl daemon-reload
A continuación, inicia y activa el servicio Let’s Chat con el posterior comando:
systemctl start letschat systemctl enable letschat
A continuación, comprueba el estado de Let’s Chat con el posterior comando:
systemctl status letschat
Deberías ver la posterior salida:
? letschat.service - Let's Chat Server Loaded: loaded (/etc/systemd/system/letschat.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-07-31 04:02:34 UTC; 4s ago Main PID: 42429 (npm start) Tasks: 23 (limit: 2242) Memory: 157.9M CPU: 4.457s CGroup: /system.slice/letschat.service ??42429 "npm start" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ??42440 sh /tmp/start-b5e830e4.sh ??42441 letschat "" "" "" Jul 31 04:02:34 ubuntu2204 npm[42429]: > node app.js Jul 31 04:02:38 ubuntu2204 npm[42441]: (node:42441) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead> Jul 31 04:02:38 ubuntu2204 npm[42441]: (Use `node --trace-deprecation ...` to show where the warning was created) Jul 31 04:02:38 ubuntu2204 npm[42441]: ??? ????????????????????????? ?????????? ??? ?????? ????????? Jul 31 04:02:38 ubuntu2204 npm[42441]: ??? ????????????????????????? ??????????? ???????????????????? Jul 31 04:02:38 ubuntu2204 npm[42441]: ??? ?????? ??? ???????? ??? ???????????????? ??? Jul 31 04:02:38 ubuntu2204 npm[42441]: ??? ?????? ??? ???????? ??? ???????????????? ??? Jul 31 04:02:38 ubuntu2204 npm[42441]: ???????????????? ??? ???????? ??????????? ?????? ??? ??? Jul 31 04:02:38 ubuntu2204 npm[42441]: ???????????????? ??? ???????? ?????????? ?????? ??? ??? Jul 31 04:02:38 ubuntu2204 npm[42441]: Release 0.4.8
En este punto, el servicio Let’s Chat está iniciado y audición en el puerto 5000. Puedes comprobarlo con el posterior comando:
ss -antpl | grep 5000
Deberías ver la posterior salida:
LISTEN 0 511 127.0.0.1:5000 0.0.0.0:* users:(("letschat",pid=42441,fd=20))
Configurar Nginx para Let’s Chat
A continuación, tendrás que instalar y configurar Nginx como proxy inverso para Let’s Chat. Así podrás obtener al Chat de Let’s a través del puerto 80.
En primer superficie, instala el paquete de servidor Nginx con el posterior comando:
apt install nginx -y
A continuación, crea un archivo de configuración de host aparente Nginx:
nano /etc/nginx/conf.d/letschat.conf
Añade las siguientes configuraciones:
server { server_name letschat.example.com; listen 80; access_log /var/log/nginx/lets_chat-access.log; error_log /var/log/nginx/lets_chat-error.log; location / { proxy_set_header X-Efectivo-IP $remote_addr; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_cache_bypass $http_upgrade; proxy_pass http://127.0.0.1:5000; } }
Tutela y cierra el archivo, luego verifica que Nginx no tenga ningún error de sintaxis:
nginx -t
Deberías ver la posterior salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Por posterior, reinicia el servicio Nginx para aplicar los cambios de configuración:
systemctl restart nginx
Incluso puedes comprobar el estado del Nginx utilizando el posterior comando:
systemctl status nginx
Deberías ver el estado de Nginx en la posterior salida:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-07-31 04:04:23 UTC; 5s ago Docs: man:nginx(8) Process: 43193 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 43194 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 43195 (nginx) Tasks: 2 (limit: 2242) Memory: 2.5M CPU: 35ms CGroup: /system.slice/nginx.service ??43195 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??43196 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" Jul 31 04:04:23 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server... Jul 31 04:04:23 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
Consentir a la interfaz web de Let’s Chat
Ahora, abre tu navegador web y accede a la interfaz web de Let’s Chat utilizando la URL http://letschat.example.com.
Deberás hacer clic en el rama «Necesito una cuenta» para crear una cuenta. Deberías ver la posterior página:
Proporciona tu nombre de usufructuario, contraseña, dirección de correo electrónico y haz clic en el rama Registrar. Una vez que te hayas registrado correctamente, deberías ver la posterior pantalla:
Haz clic en el rama Aceptar. Se te redirigirá a la pantalla de inicio de sesión de Let’s Chat:
Proporciona tu nombre de usufructuario y contraseña de Let’s Chat, y haz clic en el rama Iniciar sesión. Deberías ver el panel de Let’s Chat en la posterior pantalla:
Conclusión
Enhorabuena! has instalado correctamente el servidor de Let’s Chat con Nginx como proxy inverso en Ubuntu 22.04. Ahora puedes desplegar Let’s Chat en tu entorno de trabajo y despuntar a comunicarte con otros miembros del equipo. No dudes en preguntarme si tienes alguna duda.