Cómo instalar NodeBB con Nginx Proxy en un servidor Ubuntu 24.04

NodeBB es un software de foros de código abierto basado en Node.js que proporciona una solución moderna y con capacidad de respuesta para las comunidades online. Ejecutándose en Ubuntu Linux, NodeBB aprovecha la robustez y flexibilidad del sistema operativo para ofrecer un alto rendimiento y escalabilidad. Utiliza una combinación de MongoDB o Redis para la gestión de bases de datos, por lo que es capaz de manejar grandes volúmenes de contenido generado por los usuarios de forma eficiente. NodeBB es conocido por sus notificaciones en tiempo real, su perfecta integración con varias plataformas de redes sociales y su amplio ecosistema de plugins, que permite a los administradores personalizar sus foros para satisfacer necesidades específicas. Además, su diseño mobile-first garantiza una experiencia de usuario coherente y atractiva en todos los dispositivos. Las características de estabilidad y seguridad de Ubuntu complementan a NodeBB, convirtiéndolo en una opción ideal para alojar y gestionar comunidades online dinámicas.

En esta guía, aprenderás a instalar NodeBB en el servidor Ubuntu 24.04 con la base de datos MongoDB y el servidor web Nginx. También aprenderás a asegurar NodeBB con HTTPS a través de Certbot y Letsencrypt.

Requisitos previos

Para empezar con esta guía, asegúrate de que tienes

  • Un servidor Ubuntu 24.04.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio apuntando a una dirección IP del servidor.

Instalación del servidor MongoDB

NodeBB está escrito con Node.js y utiliza MongoDB como base de datos. Para instalar NodeBB, debes instalar el servidor MongoDB en tu sistema. En esta sección, instalarás el servidor MongoDB 7 en el servidor Ubuntu 24.04.

En primer lugar, ejecuta el siguiente comando para instalar los paquetes gnupg y curl en tu sistema Ubuntu.

sudo apt install gnupg curl

instalar curl

Ahora añade la clave GPG y el repositorio para MongoDB utilizando el comando que aparece a continuación. En este momento, MongoDB 7.0 sólo está disponible para hasta Ubuntu 22.04, así que lo utilizaremos en nuestro servidor Ubuntu 24.04.

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc |
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg
–dearmor
echo “deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

añadir repo mongodb

A continuación, ejecuta el siguiente comando apt para actualizar el índice de paquetes de Ubuntu e instalar el paquete mongodb-org. Introduce Y para confirmar la instalación.

sudo apt update
sudo apt install mongodb-org

instalar mongodb

Una vez finalizada la instalación, ejecuta el siguiente comando systemctl para recargar el gestor systemd. Esto se debe a que se ha añadido a tu sistema el nuevo archivo de servicio mongod.

sudo systemctl daemon-reload

Ahora ejecuta el siguiente comando systemctl para iniciar y habilitar el servicio MongoDB mongod. Y, a continuación, comprueba su estado para asegurarte de que el servicio mongod se está ejecutando.

sudo systemctl enable --now mongod
sudo systemctl status mongod

Como puedes ver a continuación, el servicio mongod está habilitado y en ejecución.

comprobar servicio mongod

Configurar el servidor MongoDB y la base de datos para NodeBB

Una vez que hayas instalado el servidor MongoDB, habilitarás la autenticación en MongoDB, crearás un usuario administrador y, a continuación, crearás un nuevo usuario y base de datos para la instalación de NodeBB.

Accede al shell de MongoDB con el comando cliente mongosh que se indica a continuación.

mongosh

En el shell mongosh, cambia a la base de datos admin y crea un nuevo usuario admin para MongoDB. En este ejemplo, crearás un usuario admin de MongoDB con la contraseña MongoDBAdminPass. Asegúrate de cambiar los detalles del usuario con tu información.

use admin
db.createUser( { user: “admin”, pwd: “MongoDBAdminPass”, roles: [ { role: “root”, db: “admin” } ] } )

Después, cambia y crea la base de datos nodebb, y a continuación crea un nuevo usuario nodebb con la contraseña NodeBBPassword. La base de datos y el usuario nodebb se utilizarán para la instalación de NodeBB.

use nodebb
db.createUser( { user: “nodebb”, pwd: “NodeBBPassword”, roles: [ { role: “readWrite”, db: “nodebb” }, { role: “clusterMonitor”, db: “admin” } ] } )

Ahora escribe quit() para salir del shell mongosh.

quit()

crear usuario y base de datos mongodb

A continuación, abre la configuración por defecto de MongoDB /etc/mongod. conf con el siguiente editor nano.

sudo nano /etc/mongod.conf

Descomprime la opción de seguridad y cambia la autorización a habilitada. Esto habilitará la autenticación en tu servidor MongoDB.

security:
  authorization: enabled

Cuando hayas terminado, guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio mongod y aplicar tus cambios. Una vez reiniciado el servicio mongod, se habilitará la autenticación de MongoDB.

sudo systemctl restart mongod

Ejecuta el siguiente comando mongosh para conectarte como usuario nodedbb a la base de datos nodebb. Introduce tu contraseña cuando se te solicite.

mongosh “mongodb://127.0.0.1:27017” --username nodebb --authenticationDatabase nodebb

Ahora ejecuta las siguientes consultas para comprobar tu conexión con el servidor MongoDB.

db.runCommand( { connectionStatus: 1, showPrivileges: false } )

A continuación, te has autenticado como usuario nodebb a la base de datos nodebb.

Escribe quit() para salir del intérprete de comandos de MongoDB.

comprobar usuarios

Instalar NodeBB

Ahora que has configurado el servidor MongoDB, instalarás Node.js a través del repositorio oficial de Ubuntu, y luego descargarás e instalarás NodeBB en tu sistema Ubuntu.

Antes de instalar NodeBB, ejecuta el siguiente comando apt para instalar el paquete Node.js y NPM en tu sistema Ubuntu. Introduce Y para confirmar la instalación.

sudo apt install nodejs npm

instalar nodejs

Después de la instalación, comprueba las versiones de Node.js y NPM con lo siguiente – Puedes ver que Node.js 18 y NPM 9 están instalados.

node --version
npm --version

comprobar nodejs

Ahora ejecuta el siguiente comando para crear un nuevo usuario y grupo del sistema nodebb. Este usuario se utilizará para ejecutar la instalación de NodeBB.

sudo adduser --system --no-create-home --home=/opt/nodebb --group nodebb

Ejecuta el siguiente comando git para descargar el código fuente de NodeBB al directorio /opt/nodebb, y luego cambia la propiedad del mismo al usuario nodebb.

git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb
sudo chown -R nodebb:nodebb /opt/nodebb

añadir usuario y descargar nodebb

Ve al directorio /opt/nodebb y ejecuta el comando nodebb setup para iniciar la instalación de NodeBB.

cd /opt/nodebb
sudo su -s /bin/bash -c “./nodebb setup” nodebb

Se te preguntará por las siguientes configuraciones de NodeBB:

  • Introduce tu nombre de dominio para NodeBB, como forum.howtoforge.local.
  • Pulsa ENTER en la configuración del secreto de NodeBB. Déjalo por defecto.
  • Introduce no para desactivar el acceso anónimo a NodeBB.
  • Selecciona MongoDB como base de datos.
  • Introduce los detalles de tu base de datos MongoDB en el formato mongodb://nodebb:[email protected]:27017/nodebb.
  • Introduce el nuevo usuario administrador y la dirección de correo electrónico para NodeBB.
  • Introduce la contraseña para tu usuario administrador de NodeBB y repite.

Una vez completada la instalación, verás una salida NodeBB Setup Completed.

configuración completa

Para ejecutar NodeBB desde la línea de comandos, ejecuta el siguiente comando nodebb start:

sudo su -s /bin/bash -c "./nodebb start" nodebb

Para desactivar el proceso NodeBB, utiliza el siguiente comando nodebb stop.

sudo su -s /bin/bash -c "./nodebb stop" nodebb

iniciar y detener nodebb

Ejecutar NodeBB como un servicio systemd

En esta guía, ejecutarás NodeBB en segundo plano como un servicio systemd. Así que ahora crearás un nuevo archivo de servicio para NodeBB, lo que facilita la gestión del servicio NodeBB a través de la utilidad systemctl.

Crea un nuevo archivo de servicio systemd /etc/systemd/system/nodebb.service con el siguiente editor nano.

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

Pega el siguiente archivo de servicio para NodeBB. En este ejemplo, ejecutarás el servicio nodebb como usuario nodebb.

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service
[Service]
Type=simple
User=nodebb

StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/opt/nodebb
ExecStart=/usr/bin/env node loader.js --no-silent --no-daemon
Restart=always

[Install]
WantedBy=multi-user.target

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para recargar el gestor systemd y aplicar tus cambios.

sudo systemctl daemon-reload

Después, inicia, habilita y verifica el servicio nodebb con el siguiente comando.

sudo systemctl enable --now nodebb
sudo systemctl status nodebb

Puedes ver a continuación que el servicio nodebb se está ejecutando en segundo plano como un servicio systemd.

servicio nodebb

Configurar Nginx como proxy inverso

En este tutorial, utilizarás el servidor web Nginx como proxy inverso para NodeBB. Así que ahora instalarás Nginx, y crearás un nuevo bloque de servidor para el proxy inverso. Asegúrate de que tienes tu nombre de dominio apuntando a la dirección IP del servidor.

Instala el servidor web Nginx en tu sistema con el siguiente comando apt install.

sudo apt install nginx -y

instalar nginx

Una vez completada la instalación, crea una nueva configuración de bloque de servidor /etc/nginx/sites-available/nodebb con el editor nano.

sudo nano /etc/nginx/sites-available/nodebb

Introduce la siguiente configuración y asegúrate de cambiar forum.howtoforge. local por tu nombre de dominio. Con esto, configurarás un proxy inverso para NodeBB que se ejecutará en segundo plano en el puerto 4567.

server {
 listen 80;
server_name forum.howtoforge.local;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

proxy_pass http://127.0.0.1:4567;
proxy_redirect off;

# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

Guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando para activar el archivo de bloque del servidor nodebb y verifica tu configuración de Nginx. Si estás en lo cierto y tienes una configuración adecuada de Nginx, verás una salida sintaxis está bien – la prueba se ha realizado correctamente.

sudo ln -s /etc/nginx/sites-available/nodebb /etc/nginx/sites-enabled/
sudo nginx -t

configuración de nginx

Por último, ejecuta el siguiente comando systemctl para reiniciar el servicio Nginx y aplicar tus cambios. A continuación, comprueba el estado del servicio Nginx para asegurarte de que se está ejecutando.

sudo systemctl restart nginx
sudo systemctl status nginx

Como puedes ver en la salida de abajo, el servicio Nginx está funcionando.

comprobar nginx

Asegurar NodeBB con HTTPS

En esta sección, asegurarás NodeBB con HTTPS a través de Certbot y Letsencrypt. Combinado con Certbot y Nginx, puedes configurar HTTPS automático en tu servidor web.

Instala los paquetes certbot y python3-certbot-nginx con el siguiente comando:

sudo apt install certbot python3-certbot-nginx -y

Ahora ejecuta el siguiente comando de certbot para generar certificados SSL y asegurar tu instalación de NodeBB con HTTPS. Asegúrate de cambiar la dirección de correo electrónico y el nombre de dominio con tu información.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d forum.howtoforge.local

Una vez completado el proceso, verás tus certificados en el directorio /etc/letsencrypt/live/domain.com. Y tu instalación de NodeBB estará protegida con HTTPS automáticamente.

Acceder a NodeBB

Abre tu dominio NodeBB como https://forum.howtoforge.local utilizando tu navegador web. Si la instalación se ha realizado correctamente, verás la página de inicio por defecto de NodeBB como la siguiente:

página de inicio

Haz clic en el enlace Iniciar sesión y se te mostrará la página de inicio de sesión de NodeBB. A continuación, introduce tu usuario y contraseña de administrador, y haz clic en Iniciar sesión para confirmar. Si tienes las credenciales correctas, verás el siguiente panel de control de administrador.

inicio de sesión

En la configuración de administración de NodeBB, verás lo siguiente:

ajustes de administración

Conclusión

¡Enhorabuena! Has instalado el software de foros de código abierto NodeBB en un servidor Ubuntu 24.04. Has puesto en marcha NodeBB con MongoDB como base de datos y Nginx como proxy inverso. También has asegurado NodeBB con HTTPS a través de Certbot y Letsencrypt. Ahora puedes añadir un servidor SMTP para configurar el registro y la confirmación a través de un enlace de correo electrónico.

También te podría gustar...