Comment installer Wiki.js sur Ubuntu 18.04 LTS

Wiki.js est une application wiki open source, moderne et puissante basée sur Node.js, Git et Markdown. Wiki.js fonctionne sur le très rapide moteur Node.js et est optimisé pour conserver les ressources du processeur. Voici quelques-unes des fonctionnalités de Wiki.js qui méritent d’être mentionnées :

  • Édition Markdown, soutenue par Git
  • Léger, mais extrêmement puissant
  • Magnifiquement conçu pour le Web moderne
  • Contrôle d’accès intégré
  • Gestion intuitive des actifs
  • Moteur de recherche intégré

Dans ce tutoriel, nous allons te guider dans le processus d’installation de Wiki.js version 1 sur un système d’exploitation Ubuntu 18.04 LTSen utilisantNGINXcomme serveur proxy inverse, MongoDB comme serveur de base de données, PM2 comme gestionnaire de processus et, en option, tu peux sécuriser la couche de transport en utilisant le client acme.sh et l’autorité de certification Let’s Encrypt pour ajouter la prise en charge de SSL.

Exigences

Les conditions requises pour exécuter Wiki.js sont les suivantes :

  • Node.js 6.11.1 à 10.x est nécessaire.
  • MongoDB version3.2ou ultérieure.
  • Git version2.7.4ou ultérieure.
  • Un logiciel de serveur Web tel que NGINX, Apache, Caddy, H2O…
  • Un dépôt Git vide (facultatif).
  • 512 Mo de RAM minimum. 1 Go de RAM recommandé.
  • Environ 300MB d’espace disque.
  • Un nom de domaine avec des enregistrements DNSA/AAAA configurés.

Conditions préalables

  • Un système d’exploitation Ubuntu 18.04 LTS.
  • Un utilisateur non-root avec des privilèges sudo.

Étapes initiales

Vérifie ta version d’Ubuntu :

lsb_release -ds
# Ubuntu 18.04.1 LTS

Configure le fuseau horaire :

sudo dpkg-reconfigure tzdata

Mets à jour les paquets (logiciels) de ton système d’exploitation. Il s’agit d’une première étape importante car elle garantit que tu disposes des dernières mises à jour et des derniers correctifs de sécurité pour les paquets logiciels par défaut de ton système d’exploitation :

sudo apt update && sudo apt upgrade -y

Installe certains paquets essentiels qui sont nécessaires à l’administration de base du système d’exploitation Ubuntu :

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https build-essential

Étape 1- Installer Node.js et npm

Wiki.jsest construit sur Node.js. Nous allons installer la dernière versionrecommandée pour Wiki.js qui est la version 10au moment où nous écrivons ces lignes. Sous Linux, tu as plusieurs options d’installation de Node.js : Les binaires Linux (x86/x64), le code source ou via les gestionnaires de paquets. Nous utiliserons une option de gestion de paquets qui facilite l’installation et la mise à jour de Node.js.

Télécharge et installe la dernière version recommandéede Node.js depuis le référentiel NodeSource :

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

NOTE: npm est distribué avec Node.js – ce qui signifie que lorsque tu télécharges Node.js, tu obtiens automatiquement npm installé sur ton système.

Vérifie la version de Node.js et de 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 tu viens de télécharger Node.js (et donc npm), tu auras probablement besoin de mettre à jour ton npm. Heureusement, npm sait comment se mettre à jour lui-même ! Pour mettre à jour ton npm, tape ceci dans ton terminal :

sudo npm install -g [email protected]

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

Vérifie à nouveau la version de npm avec :

npm -v
# 6.8.0

Et il devrait renvoyer le dernier numéro de version.

Étape 2 – Installe la base de données MongoDB

Wiki.jsa besoin d’une base de données pour stocker ses données, et la version stable actuelle de Wiki.js ne prend en charge que le moteur de base de données MongoDB. En conséquence, nous devons installer la base de données MongoDB.

Télécharge et installe la base de données MongoDB :

sudo apt install -y mongodb

Vérifie la version de MongoDB :

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3

Démarre et active(configure-le pour qu’il démarre au redémarrage)le service MongoDB s’il n’est pas déjà démarré et activé :

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

Étape 3 – Installe le clientacme.shet obtiens le certificat Let’s Encrypt (facultatif)

Il n’est pas nécessaire de sécuriser ton site Web avec HTTPS, mais c’est une bonne pratique pour sécuriser le trafic de ton site. Pour obtenir un certificat SSL de Let’s Encrypt, nous allons utiliser le client acme.sh. Acme.sh est un logiciel shell UNIX pur pour obtenir des certificats SSL de Let’s Encrypt sans aucune dépendance.

Télécharge et installe: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érifie la version de acme.sh:

acme.sh --version
# v2.8.1

Obtiens des certificatsRSAetECC/ECDSApour ton 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 tu veux des faux certificats pour les tester, tu peux ajouter le drapeau--stagingaux commandes ci-dessus.

Pour répertorier les certificats émis, tu peux exécuter la commande :

acme.sh --list

Crée des dossiers pour stocker tes certificats. Nous utiliserons/etc/letsencrypt mais tu peux choisir le dossier que tu préfères pour stocker tes certificats SSL.

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

Installe/copie les certificats dans/etc/letsencryptrépertoire.

# 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"

Après avoir exécuté les commandes ci-dessus, tescertificats et tesclés seront dans :

  • PourRSA:/etc/letsencrypt/example.comrépertoire.
  • PourECC/ECDSA: répertoire/etc/letsencrypt/example.com_ecc.

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

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

exit

Étape 4 - Installe et configure NGINX

Wiki.js (ou toute autre application HTTP Node.js) peut fonctionner sans serveur Web réel (comme NGINX ou Apache). Cependant, il est fortement recommandé de mettre un serveur Web standard devant Wiki.js. Cela te permettra d'utiliser des fonctions comme SSL, plusieurs sites Web, la mise en cache, etc. Nous utiliserons NGINX dans ce tutoriel, mais tout autre serveur fera l'affaire, tu dois juste le configurer correctement.

Télécharge et installe NGINX depuis le repo officiel de NGINX en exécutant les commandes suivantes :

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

Vérifie la version de NGINX :

sudo nginx -v
# nginx version: nginx/1.15.8

Active et démarre le service NGINX :

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

Exécutesudo vim /etc/nginx/conf.d/wiki.js.conf

sudo vim /etc/nginx/conf.d/wiki.js.conf

et configure NGINX comme un reverse proxy HTTPS.

server {
    
listen [::]:443 ssl http2;
listen 443 ssl http2; listen [::]:80; listen 80; server_name example.com; charset utf-8; client_max_body_size 50M;

ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_next_upstream error timeout http_502 http_503 http_504; } }

La seule chose que tu dois changer dans la configuration ci-dessus est la directiveserver_name, le nom de domaine dans les chemins du fichier ssl, et potentiellement la directiveproxy_passsi tu décides de configurer un autre port que3000. Wiki.js utilise le port3000par défaut.

Vérifie la configuration de NGINX :

sudo nginx -t

Enfin, pour que les changements prennent effet, nous devons recharger NGINX :

sudo systemctl reload nginx.service

Étape 5 - Installe et configure Wiki.js

Crée un répertoire racine de document dans lequel Wiki.js doit résider :

sudo mkdir -p /var/www/wiki.js

Accède au répertoire racine du document :

cd /var/www/wiki.js

Crée un utilisateur pour wikijs

sudo useradd -d /var/www/wiki.js wikijs

Change la propriété du/var/www/wiki.jsà l'utilisateur wikijs:

sudo chown -R wikijs:wikijs /var/www/wiki.js

Depuis le répertoire/var/www/wiki.js, exécute la commande suivante pour récupérer et installer la dernière application Wiki.js :

cd /var/www/wiki.js
sudo su wikijs
curl -sSo- https://wiki.js.org/install.sh | bash

Une fois l'installation terminée, tu peux exécuter la commande suivante afin d'afficher la version actuellement installée de Wiki.js :

node wiki --version
# 1.0.117

Une fois l'installation terminée, tu seras invité à lancer l'assistant de configuration.

Alors, lance l'assistant de configuration en exécutant :

node wiki configure

À l'aide de ton navigateur Web, navigue surhttp://example.comet suis les instructions à l'écran. Tous les paramètres saisis pendant l'assistant de configuration sont enregistrés dans le fichierconfig.yml. L'assistant de configuration démarre automatiquement Wiki.js pour toi.

Tu verras d'abord un message de bienvenue. Clique sur le bouton"Démarrer" :

Installation de Wiki.js

La page suivante "Vérification du système" s'affiche. Si toutes les conditions sont remplies, clique sur le bouton"Continuer".

Vérification du système

Saisis des informations générales sur ton wiki et clique sur le bouton"Continuer" :

Informations générales

Lis l'avis "Considération importante" et clique sur"Continuer" pour l'étape suivante :

Important à prendre en compte

Ensuite, connecte-toi à la base de données et continue :

Connexion à la base de données

Tu devrais voir un message indiquant que Wiki.js a été connectéavec succèsà la base de données. Clique sur le bouton"Continuer" :

Connexion à la base de données réussie

Définis les chemins et continue :

Définir le chemin

Configure le repo Git distant si tu veux ou saute cette étape. Cette étape est facultative mais fortement recommandée :

Configurer le repo GIT distant

Ensuite, clique sur le bouton "Continuer" :

Continue l'installation

Crée un compte administrateur et clique sur le bouton"Continuer" :

Et enfin, démarre le Wiki.js :

Lance Wiki.js

Attends environ 30 secondes et tu devrais être redirigé vers la page d'accueil de Wiki.js :

Page d'accueil de Wiki.js

L'installation est terminée. Tu devrais voir la page de bienvenue de Wiki :

Bienvenue sur Wiki.js

Étape 6 - Configurer le gestionnaire de processus PM2

Par défaut, Wiki.js ne démarre pas automatiquement après un redémarrage du système. Pour qu'il démarre au démarrage, nous devons configurer le gestionnaire de processus PM2. PM2 est fourni avec Wiki.js sous forme de module npm local, nous n'avons donc pas besoin d'installer PM2 globalement.

Dis à PM2 de se configurer comme un service de démarrage en exécutant :

/var/www/wiki.js/node_modules/pm2/bin/pm2 startup

Enfin, enregistre la configuration actuelle de PM2 en exécutant la commande :

/var/www/wiki.js/node_modules/pm2/bin/pm2 save

Ton Wiki.js fonctionne maintenant comme un processus d'arrière-plan, en utilisant PM2 comme gestionnaire de processus.

Liens

Vous aimerez aussi...