Installation & Configuration Wiki.JS sous CentOS 7

1 Star2 Stars3 Stars4 Stars5 Stars
5

Dans cet article nous allons voir comment l’installation et la configuration de Wiki JS sous CentoS 7. Wiki JS est un moteur de wiki moderne et simple. L’installation de Wiki JS est assez simple, mais avant, il faut mettre en place un serveur Web (LAMP/LEMP) sous CentOS.

👍Les points fort de ce wiki 

  • Installation simple
  • Édition au format Markdown
  • Moteur de recherche complet (historique et suggestion)
  • Compatible LDAP, Microsoft Account, Google ID, Facebook, Slack, Azure, Git
  • Consomme très peu de ressources
  • Organisation des médias par dossier et tags
  • Compatible avec toutes les distrib (ou presque)
  • Compatible avec Windows aussi
  • Se synchronise avec le repo GIT de votre choix
  • Et surtout, il est totalement open source

👎Les points faibles de ce wiki : Et bien, il est tout neuf, donc il faut faire preuve de patience pour certaines fonctionnalités, mais, ne vous inquiétez pas, il y a tout ce qu’il faut pour bosser vos documentations/notes.

Source Wiki.JS :

 UPDATE #1 : Syntax Highlighting  UPDATE #2 : Network

Machine virtuelle CentOS 7

Création d’une machine virtuelle pour CentOS 7. J’ai choisi la version “minimal” mais vous pouvez choisir la version avec interface graphique, on en aura besoin.

« Create a New Virtual Machine »

  • « Custom (Advanced) »
  • Hardware Compatibility : « Workstation 12.x »
  • Install From : « I will install the operating system later »
  • Select a Guest Operating System : « Linux  »
    • « CentOS 7 64-bit »
  • Virtual Machine Name : « centreon-wiki »
  • Processors :
    • Number of Processors : « 1 »
    • Number of Cores per Processor : « 1 »
  • Memory for this Virtual Machine : « 1024 MB »
  • Network Connection : « Use Bridged Networking »
  • SCSI Controller : « LSI Logic (Recommended) »
  • Virtual Disk Type : « SCSI »
    • Create a New Virtual Disk
    • Max Disk Size : « 10 GB » « Store Virtual Disk as a single file »

Facultatif 
Désactiver les ports inutiles dans le BIOS. Cliquez sur :
VM > Power > Power On to Firmware / Advanced > I/O Device Configuration
Serial Port A : « Disabled »
Serial Port B : « Disabled »
Parallel Port : « Disabled »
Floppy Disk   : « Disabled »
F10 pour sauvegarder et quitter

Votre VM s’affiche sur l’interface VMware, cliquez sur « Edit virtual machine setting », sélectionnez la ligne « CD/DVD (SATA) » puis cochez la case « Use ISO image File », cliquez sur « Browse… » et sélectionnez l’ISO de CentOS 7. Sélectionnez la ligne « Sound Card » et cliquez sur le bouton « Remove » en bas. Sélectionnez la ligne « Network Adapter » et cocher « LAN Segment » puis choisir le « LAN-Serveurs » (J’utilise toujours le firewall installation-configuration-pfsense-virtualbox). Démarrez la VM.

Install CentOS 7 Using VirtualBox

  • Install CentOS 7 <Entrée>
    • Français > Français (France)
    • Destination de l’installation
      • Sélectionnez le disque de 10 G
      • Cochez : Configurer automatiquement le partitionnement
    • Démarrer l’installation
    • Cliquez sur : Mot de passe administrateur
      • Mettez un mot de passe
      • Validez.
    • Attendez la fin d’installation.

Une fois terminé, redémarrez la machine et connectez-vous. [ user : root  | pwd : votre password ] Je vais commencer par configurer le réseau.

Configuration réseau

Éditez le fichier de configuration réseau :

nano /etc/sysconfig/network-scripts/ifcfg-ens160

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=none
IPV6_FAILURE_FATAL=no
NAME=ens160
UUID=63ca0ded-6e84-4dc1-ae24-7c94da33fa7d
DEVICE=ens160
ONBOOT=yes
IPADDR=172.16.1.7
NETMASK=255.255.0.0
GATEWAY=172.16.1.1
DNS1=172.16.1.1 // pfSense
DNS2=1.1.1.1 //cloudflare

DOMAIN=pixelabs.fr
SEARCH=pixelabs.fr

Relancez le réseau :

[root@centreon-wiki ~]# systemctl network restart

Mettez à jour le système :

[root@centreon-wiki ~]# yum update

Configuration Hostname

Je commence par installer quelques packages dont j’ai besoin, c’est ce que je fais toujours lors de l’installation d’un système Linux.

[root@centreon-wiki ~]# yum -y nano mlocate wget git htop

Changez le nom de votre machine :

[root@centreon-wiki ~]# hostnamectl set-hostname centreon-wiki

Installation des VMtools

Il est conseillé d’installer les VMtools, dans mon cas, c’est fait via vSphere Web Client. La procédure est ici : Install VMtools sous CentOS 7 

la procédure est la même si vous êtes sous Virtualbox.

Configuration Firewall

Dans mon le firewall est désactivé. Vous pouvez le laisser mais, plus loin, n’oubliez pas d’autoriser la connexion sur les protocoles http/https.

Le désactiver :

[root@centreon-wiki ~]#  systemctl stop firewalld
[root@centreon-wiki ~]#  systemctl disable firewalld

Autoriser les protocoles web :

[root@centreon-wiki ~]#  firewall-cmd --permanent --zone=public --add-service=http
[root@centreon-wiki ~]#  firewall-cmd --permanent --zone=public --add-service=https
[root@centreon-wiki ~]#  firewall-cmd --reload

Désactiver SELinux

Désactivez SELINUX :

[root@centreon-wiki ~]# nano /etc/selinux/config

#  This file controls the state of SELinux on the system.
#  SELINUX= can take one of these three values:
#          enforcing – SELinux security policy is enforced.
#          permissive – SELinux prints warnings instead of enforcing.
#          disabled – No SELinux policy is loaded.
SELINUX=disabled
#  SELINUXTYPE= can take one of three two values:
#          targeted – Targeted processes are protected,
#          minimum – Modification of targeted policy. Only selected processes are protected.
#          mls – Multi Level Security protection.
SELINUXTYPE=targeted

Redémarrez la machine pour prendre en compte la conf.

[root@centreon-wiki ~]# reboot

Installation Serveur Web

Lancez la commande ci-dessous pour installer le serveur web :

[root@centreon-wiki ~]# yum -y install httpd

Relancez :

[root@centreon-wiki ~]# systemctl restart httpd

PHP, Gcc, make, Perl, curl…

Très courant sous linux l’installation des packages requises :

[root@centreon-wiki ~]#  yum install perl

[root@centreon-wiki ~]#  yum install php php-mysql php-xml

[root@centreon-wiki ~]#  yum install gcc-c++ make

[root@centreon-wiki ~]#  yum install autoconf cpio curl-devel expat-devel gcc gettext-devel openssl-devel perl-ExtUtils-MakeMaker zlib-devel

Interface graphique CentOS 7

Installons l’interface graphique pour facilité la configuration de Wiki.js.

Exécutez la commande suivante pour lister les groupes de packages disponibles pour CentOS 7

[root@centreon-wiki ~]# yum group list

Modules complémentaires chargés : fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: centos.quelquesmots.fr
* extras: centos.quelquesmots.fr
* updates: ftp.rezopole.net
Available Environment Groups:
Installation minimale
Compute Node
Serveur d’infrastructure
Serveur de fichiers et d’impression
Serveur web de base
Hôte de virtualisation
Serveur avec GUI
Bureau GNOME

KDE Plasma Workspaces
Station de travail développement et création
Outils d’administration graphique
Bibliothèques de compatibilité
Compatibilité héritée UNIX
Gestion du système
Outils d’administration système
Outils de développement
Outils de sécurité
Outils internet de la console
Prise en charge Scientific
Prise en charge Smart Card
Effectué
[root@centreon-wiki wiki]#

[root@centreon-wiki ~]# yum groupinstall “GNOME Desktop” “Graphical Administration Tools”

Activez l’interface graphique au démarrage du système.

[root@centreon-wiki ~]# ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

[root@centreon-wiki ~]# reboot

Au redémarrage, il faut accepter la licence puis cliquez terminer la configuration. Suivez simplement le wizard de CentOS.

Installation de Wiki JS

Préparons le terrain pour le Wiki JS.

Installation de Node.js

Installer la fameuse plateforme node.js :

[root@centreon-wiki ~]#  curl --silent --location https://rpm.nodesource.com/setup_9.x | sudo bash -
[root@centreon-wiki ~]#  yum -y install nodejs npm

Aucun package trouvé ? Installez Epel Release 7

Source : nodejs.org

Installation de MongoDB

MongoDB est une base de données libre et open-source multi-plateforme orienté document. Classé comme un programme de base de données NoSQL. MongoDB utilise des documents de type JSON avec des schémas.

Nous allons ajouter la repo de MongoDB pour pouvoir l’installer facilement :

Création du fichier dans /etc/yum.repos.d/

[root@centreon-wiki ~]#  nano /etc/yum.repos.d/mongodb-org-3.6.repo

Ajoutez-y :

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

Enregistrez et quitter : ctrl+octrl+x

[root@centreon-wiki ~]# yum repolist

Installez MongoDB :

[root@centreon-wiki ~]# yum install -y mongodb-org

Activer au démarrage :

[root@centreon-wiki ~]# chkconfig mongod on

Démarrez la base de données mongod

[root@centreon-wiki ~]# service mongod start

Source : docs.mongodb.com

Installation de Git 2.7.4 +

Il faut absolument la version 2.7.4 et plus sinon, on ne peut pas installer Wiki.js. Voici la procédure :

Les versions Git se trouvent ici : kernel.org

J’ai pris la version : git-2.9.0.tar.gz

[root@centreon-wiki ~]# cd /usr/src
[root@centreon-wiki ~]# wget https://www.kernel.org/pub/software/scm/git/git-2.9.0.tar.gz
[root@centreon-wiki ~]# tar xzf git-2.9.0.tar.gz
[root@centreon-wiki ~]# cd git-2.9.0

Lancez la compilation :

[root@centreon-wiki ~]# make prefix=/usr/local/git all
[root@centreon-wiki ~]# make prefix=/usr/local/git install
[root@centreon-wiki ~]# echo “export PATH=/usr/local/git/bin:$PATH” >> /etc/bashrc
[root@centreon-wiki ~]# source /etc/bashrc

Vérifiez la version :

[root@centreon-wiki ~]# git --version
git version 2.9.0

Installation de Wiki JS

On est bon. Passons à l’installation du moteur Wiki.js. Commencez par choisir un répertoire d’installation. Je l’ai installé dans /etc/wiki/ mais vous pouvez choisir un autre répertoire.

[root@centreon-wiki ~]# mkdir /etc/wiki

Lancez l’installation à l’aide de la commande suivante :

[root@centreon-wiki wiki ~]# cd /etc/wiki
[root@centreon-wiki wiki ~]# curl -sSo– https://wiki.js.org/install.sh | bash

Installation Wiki JS

Lancez la configuration web de Wiki.js. Il faut être dans le répertoire ou le wiki est installé pour lancer les commandes ci-dessous.

[root@centreon-wiki wiki ~]# node wiki configure

Remarque : après “configure” vous pouvez mettre un port personnaliser si vous le souhaiter. Par défaut, le port est 3000.

Exemple avec un port personnaliser :

[root@centreon-wiki wiki ~]# node wiki configure 80

Mais n’oubliez pas de le définir dans l’adresse web : http://localhost:80 ou http://ip_serveur:80 Dans mon cas, j’ai utilisé le port 80. Une fois <Entrée>, la configuration est active. (CTRL + C pour arrêter) Laissez la conf active et connectez-vous à l’interface web : http://localhost:80

Wiki JS configure

  • Cliquez sur le bouton : START
    • Si tout est bien installé, le message s’affiche en bas : Looks Good! No issues so far.
    • Cliquez sur : CONTINUE
    • Donnez un nom à votre Wiki : Centreon Wiki
    • Définir l’url : https ou http://localhost:80 – J’ai utilisé http
    • Définir le port : 80
    • Choisir la langue : Français
    • Cliquez sur : CONTINUE
  • Cliquez sur : CONTINUE
    • MongoDB Connection String : Laissez par défaut
    • En cliquant sur CONNECT, il va se connecter à la base de données MongoDB
    • Le message s’affiche : Conneted successfully!
    • Local Data Path : Laissez par défaut
    • Local Repository Path : Laissez par défaut
  • Cliquez sur : CONTINUE
    • Cette page permet à votre wiki de se synchroniser avec un GIT de votre choix.
    • Dans mon cas, je n’ai pas eu besoin, cliquez sur le bouton en bas : PASSER CETTE ETAPE (SKIP THIS STEP)
    • Un bref check se fait rapidement.
    • Le message s’affiche : Git setting are correct!
  • Cliquez sur : CONTINUE
    • Administor Email : pixelabs@pixelabs.fr (c’est le compte pour se connecter à votre wiki)
    • Mot de passe : mettez un mot de passe
    • Confirmer le mot de passe : répétez.
  • Cliquez sur : CONTINUE
    • Le message s’affiche : Wiki.js was configured successfully and is now ready for use.
    • Cliquez sur : START

Le wizard démarre automatiquement le service wiki. Sinon, placez-vous dans le répertoire d’installation de wiki.js :

[root@centreon-wiki wiki]# node wiki restart
Wiki.js has stopped successfully.
Wiki.js has started successfully.

 

Interface Web

Et voilà l’interface web de Wiki.JS. C’est beau hein ! les images de fond sont personnalisables. Elles sont dans le dossier /etc/wiki/assets/images/ résolution : 1620 x 1080. J’ai opté pour l’espace moi 🙂

Syntaxe markdown en action :

 

Résultat après sauvegarde :

Sélectionnez un langage de prog pour la syntaxe Highlighter (code block) :

Choisissez votre thème :

 

User guide : docs.requarks.io

Connexion LDAP

Je vous montre le fichier de configuration pour connecter votre Wiki à votre serveur LDAP. Comme je suis le seul à bosser sur le wiki, je n’en ai pas besoin.

Éditez le fichier :

[root@centreon-wiki ~]# nano /etc/wiki/config.yml

title: Centreon Wiki
host: ‘http://centreon-wiki’
port: 80
…// un peu plus bas
local:
enabled: true
google:
enabled: false
clientId: GOOGLE_CLIENT_ID
clientSecret: GOOGLE_CLIENT_SECRET
microsoft:
enabled: false
clientId: MS_APP_ID
clientSecret: MS_APP_SECRET
facebook:
enabled: false
clientId: FACEBOOK_APP_ID
clientSecret: FACEBOOK_APP_SECRET
github:
enabled: false
clientId: GITHUB_CLIENT_ID
clientSecret: GITHUB_CLIENT_SECRET
slack:
enabled: false
clientId: SLACK_CLIENT_ID
clientSecret: SLACK_CLIENT_SECRET
ldap:
enabled: false
url: ‘ldap://serverhost:389’
bindDn: cn=‘root’
bindCredentials: BIND_PASSWORD
searchBase: ‘o=users,o=example.com’
searchFilter: ‘(uid={{username}})’
tlsEnabled: false // Activez pour une connexion SSL
tlsCertPath: ‘C:\example\root_ca_cert.crt// Chemin du certificat SSL
azure:
enabled: false
clientId: APP_ID
clientSecret: APP_SECRET_KEY
resource: 00000002-0000-0000-c000-000000000000
tenant: YOUR_TENANT.onmicrosoft.com
oauth2:
enabled: false
clientId: OAUTH2_CLIENT_ID
clientSecret: OAUTH2_CLIENT_SECRET
authorizationURL: OAUTH2_AUTH_URL
tokenURL: OAUTH2_TOKEN_URL
sessionSecret: b562a9cf694a3598de88c3206dd6a69aa4a1885a6366f579e94415e468007fc5
db: ‘mongodb://localhost:27017/wiki’
git: false

Bon, je vous laisse découvrir ce magnifique Wiki. certaines fonctionnalités ne sont pas encore disponible. Coming soon !

Sources :

Site Web : wiki.js.org
Documentation : docs.requarks.io
Github : github.com
User guide : docs.requarks.io

En cas de problème n’hésitez pas à me le signaler en commentaire. A bientôt ✌

La rédaction de cette documentation demande beaucoup de temps, de motivation, mais surtout beaucoup de café 🙂
Vous aimez pixelabs ?
Offrez moi un petit café en cliquant sur la tasse ci-dessous.
pixelans_donation
Merci !

5 réponses

  1. Ludovic dit :

    Bonjour Pixel,

    J’ai effectué l’installation de ce Wiki il y a un mois maintenant et pour une utilisation personnelle c’est parfait!
    Mais par contre je me suis retrouvé avec une problématique qui était de se connecter mon wiki via le compte AD (en local).
    J’ai pu avoir les certificats de l’AD via “openssl”. Mais lorsque je me connecte sur le Wiki je ne vois pas la liste des utilisateurs…
    Est-ce que tu as pu tester cette fonctionnalité?

    Ludovic

    • sysadmin sysadmin dit :

      Bonjour Ludovic,

      Et non, je n’ai pas testé malheureusement. C’est quoi ton serveur AD, linux ou Windows ? je vais essayer de mon côté quand j’aurais un peu de temps.
      Dans le fichier de configuration de Wiki, la partie LDAP peut être configuré de deux manières. (Par défaut, linux syntaxe)
      Syntaxe pour Windows (Active Directory)

        ldap:
          enabled: true
          url: 'ldap://SERVER-AD:389'
          bindDn: 'cn=ADMIN,dc=pixelabs,dc=fr'
          bindCredentials: PASSWRD_ADMIN
          searchBase: 'ou=users,dc=pixelabs,dc=fr'
          searchFilter: (samaccountname={{username}})

      -Pixel

      • Ludovic dit :

        Mon serveur AD est Windows, le wiki je l’ai installé sur un serveur Ubuntu 16.04.
        Lorsque j’active la configuration de AD même avec ta version ou même la mienne avec ajout de certificat rien ne se passe normalement je devrais avoir la liste des utilisateurs.
        Pour l’instant je vais rester en local.

        Merci encore.

        Ludovic

  2. Ragnar dit :

    Super merci pour ce tuto très clair 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *