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
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 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
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.
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()
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.
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
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
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
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.
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
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.
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
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
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.
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:
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.
En la configuración de administración de NodeBB, verás lo siguiente:
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.