GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer NodeBB Forum sur Ubuntu 18.04 LTS

NodeBB est un logiciel de forum basé sur Node.js conçu pour le Web moderne. Il est construit sur une base de données MongoDB ou Redis. Il utilise des sockets Web pour des interactions instantanées et des notifications en temps réel. NodeBB dispose de nombreuses fonctionnalités modernes prêtes à l'emploi telles que l'intégration des réseaux sociaux et les discussions en streaming. Des fonctionnalités supplémentaires sont activées grâce à l'utilisation de plug-ins tiers. NodeBB est un projet open source qui peut être trouvé sur Github. Dans ce guide, nous vous guiderons pas à pas tout au long du processus d'installation de NodeBB sur le système d'exploitation Ubuntu 18.04 LTS en utilisant Nginx comme proxy inverse, MongoDB comme base de données et acme.sh et Let's Encrypt pour HTTPS.

Exigences

NodeBB nécessite l'installation du logiciel suivant :

  • Node.js version 6 ou plus
  • Version MongoDB 2.6 ou version supérieure ou version Redis 2.8.9 ou plus
  • Version Nginx 1.3.13 ou plus
  • Git

REMARQUE : L'installation des dépendances de NodeBB peut nécessiter plus de 512 mégaoctets de mémoire système. Il est recommandé d'activer une partition d'échange pour compenser si votre système Linux ne dispose pas de suffisamment de mémoire.

Prérequis

  • Un système sous Ubuntu 18.04 avec au moins 1 Go ou RAM.
  • Nom de domaine avec A /AAAA enregistrements configurés.
  • Un utilisateur non root avec des privilèges sudo.

Étapes initiales

Vérifiez votre version d'Ubuntu :

lsb_release -ds
# Ubuntu 18.04.1 LTS

Configurez le fuseau horaire :

sudo dpkg-reconfigure tzdata

Mettez à jour les packages de votre système d'exploitation (logiciels). Il s'agit d'une première étape importante car elle garantit que vous disposez des dernières mises à jour et correctifs de sécurité pour les packages logiciels par défaut de votre système d'exploitation :

sudo apt update && sudo apt upgrade -y

Installez certains packages essentiels nécessaires à l'administration de base du système d'exploitation Ubuntu :

sudo apt install -y curl wget vim git unzip socat bash-completion

Étape 1 :Installer Node.js et npm

NodeBB est basé sur Node.js. Nous allons installer recommandé version pour NodeBB qui est la version 8  au moment d'écrire ces lignes. Sous Linux, vous disposez de quelques options d'installation de Node.js :les binaires Linux (x86/x64), le code source ou via les gestionnaires de packages. Nous utiliserons l'option de gestion des packages qui facilite l'installation et la mise à jour de Node.js.

Téléchargez et installez la dernière version de support à long terme (LTS) de Node.js à partir du référentiel Nodesource :

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

Pour compiler et installer des modules complémentaires natifs à partir de npm, vous devrez peut-être également installer des outils de compilation :

sudo apt install -y build-essential

REMARQUE  :npm est distribué avec Node.js - ce qui signifie que lorsque vous téléchargez Node.js, vous obtenez automatiquement npm installé sur votre système.

Vérifiez les versions de Node.js et npm :

node -v && npm -v
# v10.15.1
# 6.4.1

Npm est un projet distinct de Node.js et a tendance à être mis à jour plus fréquemment. Par conséquent, même si vous venez de télécharger Node.js (et donc npm), vous devrez probablement mettre à jour votre npm. Heureusement, npm sait se mettre à jour ! Pour mettre à jour votre npm, saisissez ceci dans votre terminal :

sudo npm install -g [email protected]

Cette commande mettra à jour npm vers la dernière version stable.

Revérifiez la version npm avec :

npm -v
# 6.7.0

Et il devrait renvoyer les derniers numéros de version.

Étape 2 :Installer et configurer MongoDB

NodeBB a besoin d'une base de données pour stocker ses données, et il prend en charge MongoDB et Redis. Dans ce tutoriel, nous avons choisi MongoDB comme moteur de magasin de données. Ainsi, dans les prochaines étapes, nous allons télécharger et installer la base de données MongoDB à partir du référentiel rpm officiel de MongoDB :

Pour installer la version stable du package MongoDB, lancez la commande suivante :

sudo apt install -y mongodb

Vérifiez la version de MongoDB :

mongo --version | head -n 1 && mongod --version | head -n 1

Démarrer et activer (configurez-le pour qu'il démarre au redémarrage ) Service MongoDB :

sudo systemctl start mongodb.service
sudo systemctl enable mongodb.service

Vérifiez l'état du serveur de base de données MongoDB en exécutant :

sudo systemctl status mongodb.service
# active (running)

Ensuite, créez la base de données MongoDB et l'utilisateur pour NodeBB.

Connectez-vous d'abord au serveur MongoDB.

mongo

Passer à l'admin intégré base de données.

> use admin

Créez un utilisateur administratif.

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

REMARQUE : Remplacez l'espace réservé <Enter a secure password> avec votre propre mot de passe sélectionné.

Ajouter une nouvelle base de données appelée nodebb .

> use nodebb

La base de données sera créée et le contexte commuté sur nodebb . Créez ensuite le nodebb utilisateur avec les privilèges appropriés.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

REMARQUE : Encore une fois, remplacez l'espace réservé <Enter a secure password> avec votre propre mot de passe sélectionné.

Quittez le shell Mongo.

> quit()

Redémarrez MongoDB et vérifiez que l'utilisateur administratif créé précédemment peut se connecter.

sudo systemctl restart mongodb.service
mongo -u admin -p your_password --authenticationDatabase=admin

Si tout s'est bien passé, votre MongoDB devrait être installé et préparé pour NodeBB. À l'étape suivante, nous traiterons de l'installation et de la configuration du serveur Web.

Étape 3 - Installer acme.sh client et obtenir le certificat Let's Encrypt (facultatif )

Sécuriser votre forum NodeBB avec HTTPS n'est pas nécessaire, mais c'est une bonne pratique pour sécuriser le trafic de votre site. Afin d'obtenir un certificat TLS de Let's Encrypt, nous utiliserons le client acme.sh. Acme.sh est un logiciel shell Unix pur permettant d'obtenir des certificats TLS de Let's Encrypt sans aucune dépendance.

Téléchargez et installez acme.sh :

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Vérifiez la version d'acme.sh :

acme.sh --version
# v2.8.0

Obtenir RSA et ECC/ECDSA certificats pour votre domaine/nom d'hôte :

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Si vous voulez de faux certificats pour les tests, vous pouvez ajouter --staging flage aux commandes ci-dessus.

Après avoir exécuté les commandes ci-dessus, vos certificats et les clés sera dans :

  • Pour RSA :/home/username/example.com répertoire.
  • Pour ECC/ECDSA :/home/username/example.com_ecc répertoire.

Pour répertorier vos certificats émis, vous pouvez exécuter :

acme.sh --list

Créez un répertoire pour stocker vos certificats. Nous utiliserons /etc/letsencrypt répertoire.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installez/copiez les certificats dans le répertoire /etc/letsencrypt.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Tous les certificats seront automatiquement renouvelés tous les 60 jours.

Après avoir obtenu les certificats, quittez l'utilisateur root et revenez à l'utilisateur sudo normal :

exit

Étape 4 :Installer et configurer Nginx

NodeBB peut fonctionner correctement avec de nombreux serveurs Web. Dans ce tutoriel, nous avons sélectionné Nginx.

Installez le package Nginx en exécutant la commande suivante :

sudo apt install -y nginx

Après l'installation, vous pouvez vérifier la version de Nginx en exécutant :

nginx -v

Démarrer et activer (configurez-le pour qu'il démarre au redémarrage ) Service Nginx :

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Vérifiez l'état du serveur Web Nginx en exécutant :

sudo systemctl status nginx.service
# active (running)

NodeBB s'exécute par défaut sur le port 4567 . Pour éviter de taper http://example.com:4567 , nous allons configurer Nginx en tant que proxy inverse pour l'application NodeBB. Chaque requête sur le port 80 ou 443 (si SSL est utilisé ) sera transmis au port 4567 .

Exécutez sudo vim /etc/nginx/conf.d/nodebb.conf et configurez Nginx en tant que proxy inverse HTTPS.

server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;

server_name example.com;

client_max_body_size 50M;

# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

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";
}

}

Vérifiez la configuration de Nginx :

sudo nginx -t

Enfin, pour que les modifications prennent effet, nous devons recharger Nginx :

sudo systemctl reload nginx.service

Étape 5 :Installer et configurer NodeBB

Créez un répertoire racine de document dans lequel NodeBB doit résider :

sudo mkdir -p /var/www/nodebb

Accédez au répertoire racine du document :

cd /var/www/nodebb

Changer la propriété du /var/www/nodebb répertoire à votre_utilisateur.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

REMARQUE :  Remplacez your_user dans la commande ci-dessus par votre utilisateur non root que vous auriez dû créer comme prérequis pour ce tutoriel .

Clonez le dernier référentiel NodeBB dans le dossier racine du document :

git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .

Lancez le script d'installation en exécutant l'application avec le setup drapeau. Répondez à chacune des questions :

./nodebb setup

Une fois l'installation de NodeBB terminée, exécutez ./nodebb start pour démarrer manuellement votre serveur NodeBB :

./nodebb start

Après avoir exécuté cette commande, vous devriez pouvoir accéder à votre tout nouveau forum dans votre navigateur Web :

Étape 6 :Exécutez NodeBB en tant que service système

Au démarrage via ./nodebb start , NodeBB ne redémarrera pas automatiquement au redémarrage du système. Pour éviter cela, nous devrons configurer NodeBB en tant que service système.

S'il est en cours d'exécution, arrêtez NodeBB :

./nodebb stop

Créer un nouveau nodebb utilisateur :

sudo useradd nodebb

Changer le propriétaire du /var/www/nodebb répertoire vers nodebb utilisateur :

sudo chown -R nodebb:nodebb /var/www/nodebb

Créer un nodebb.service fichier de configuration de l'unité systemd. Ce fichier d'unité gérera le démarrage du démon NodeBB. Exécutez sudo vim /etc/systemd/system/nodebb.service et ajoutez le contenu ci-dessous :

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

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

REMARQUE : Définissez les noms d'utilisateur et les chemins de répertoire en fonction des noms que vous avez choisis.

Activer nodebb.service au redémarrage et démarrer immédiatement nodebb.service:

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

Vérifiez le nodebb.service état :

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

Toutes nos félicitations! Vous avez installé et déployé avec succès la plate-forme de discussion NodeBB sur le système Ubuntu 18.04. Vous devriez pouvoir accéder à votre forum sur votre domaine et interagir avec votre forum.

Liens

  • https://nodebb.org/
  • https://docs.nodebb.org/
  • https://github.com/NodeBB/NodeBB

Ubuntu
  1. Comment installer MongoDB sur Ubuntu 18.04

  2. Comment installer MongoDB sur Ubuntu 18.04

  3. Comment installer NodeBB sur Ubuntu 18.04

  4. Comment installer MongoDB sur Ubuntu 18.04

  5. Comment installer MongoDB sur Ubuntu 22.04

Comment installer Go sur Ubuntu 22.04 LTS

Comment installer MongoDB sur Ubuntu 14.04

Comment installer Go sur Ubuntu 18.04 LTS

Comment installer MongoDB sur Ubuntu 18.04 LTS

Comment installer Go sur Ubuntu 20.04 LTS

Comment installer MongoDB Compass sur Ubuntu 20.04 LTS