GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer NodeBB Forum sur CentOS 7

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 dans le processus d'installation de NodeBB sur le système d'exploitation CentOS 7.

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

Prérequis

  • Un serveur exécutant un système CentOS 7 x86_64 (64 bits) avec au moins 1 Go ou RAM
  • Nom de domaine avec A /AAAA enregistrements mis en place
  • Un utilisateur non root avec des privilèges sudo.

Étapes initiales

Vérifiez la version de CentOS :

cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)

Configurez le fuseau horaire :

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Mettez à jour les packages de votre système d'exploitation (logiciels) :

sudo yum update -y

Installez les packages nécessaires pour terminer ce tutoriel :

sudo yum install -y curl wget vim bash-completion git socat epel-release

Par souci de simplicité, désactivez SELinux et le pare-feu :

sudo setenforce 0; sudo systemctl stop firewalld.service; sudo systemctl disable firewalld.service

É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 Package Management 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 dépôt Nodesource :

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum -y install nodejs

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

sudo yum install -y gcc-c++ make
# or
# sudo yum groupinstall -y 'Development Tools'

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
# v8.12.0
# 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.

Étape 2 :Installer et configurer MongoDB

NodeBB a besoin d'une base de données pour stocker ses données et 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 :

Créez un /etc/yum.repos.d/mongodb-org-4.0.repo fichier, afin que vous puissiez installer MongoDB directement en utilisant yum :

sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo

Remplissez le fichier avec le contenu suivant :

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

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

sudo yum install -y mongodb-org

Vérifiez la version de MongoDB :

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.2
# db version v4.0.2

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

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

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

sudo systemctl status mongod.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

Basculer vers 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 mongod.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 :Installez le client Acme.sh et obtenez un 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 SSL de Let's Encrypt, nous utiliserons le client Acme.sh. Acme.sh est un logiciel shell pur Unix permettant d'obtenir des certificats SSL de Let's Encrypt sans aucune dépendance.

Téléchargez et installez Acme.sh :

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~

Vérifiez la version d'Acme.sh :

/etc/letsencrypt/acme.sh --version
# v2.8.0

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

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d forum.example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d forum.example.com --ocsp-must-staple --keylength ec-256

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

  • Pour RSA  : /etc/letsencrypt/forum.example.com répertoire.
  • Pour ECC/ECDSA  : /etc/letsencrypt/forum.example.com_ecc répertoire.

Étape 4 :Installer et configurer Nginx

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

Téléchargez et importez d'abord la clé PGP du référentiel Nginx :

wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key

Une fois la clé importée, vous pouvez la supprimer du disque en toute sécurité :

rm nginx_signing.key

Créez un /etc/yum.repos.d/nginx_mainline.repo fichier, afin que vous puissiez installer Nginx directement à l'aide de yum :

sudo vim /etc/yum.repos.d/nginx_mainline.repo

Remplissez le fichier avec le contenu suivant :

[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1

Enfin, pour installer la dernière version principale du package Nginx, exécutez la commande suivante :

sudo yum install -y nginx

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

nginx -v
# 1.15.3

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 saisir 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 forum.example.com;

client_max_body_size 50M;

# RSA
ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.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

Modifier le propriétaire 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.10.x https://github.com/NodeBB/NodeBB.git .

Lancez le script de configuration en exécutant l'application avec le setup drapeau :

./nodebb setup

Une fois la configuration 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

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

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

Créer 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 serveur CentOS 7.

Liens

  • https://nodebb.org/
  • https://docs.nodebb.org/

Cent OS
  1. Comment installer Vagrant sur CentOS 7

  2. Comment installer Gitea sur CentOS 8

  3. Comment installer Memcached sur CentOS 8

  4. Comment installer ownCloud sur CentOS 8

  5. Comment installer NodeBB sur CentOS 7

Comment installer Jenkins sur CentOS 8

Comment installer Zoom sur CentOS 8

Comment installer Nethogs sur CentOS

Comment installer Yourls dans CentOS 8

Comment installer SuiteCRM sur CentOS 8

Comment installer Minikube sur CentOS 8