• Passer à la navigation principale
  • Passer au contenu principal
Lois Dutour

Lois Dutour

  • Accueil
  • Expériences professionnelles
    • DiSI Nord : Cellule Informatique Départementale
    • McDonald’s
  • Formations
    • BTS SIO SISR
      • Veille technologique
      • Tableau de compétences
  • Projets
  • Contact
  • A propos

Mise en place d’un outil de wiki : WikiJS

13 décembre 2024 by Lois Dutour

Sommaire

Toggle
  • Prérequis
  • Installation et configuration des éléments nécessaire pour assurer la qualité de service
  • Mise en place du serveur AD
  • Authentification sur le WikiJS avec l’AD
  • Test de connexion avec 2 utilisateurs différents

Prérequis

Pour suivre la documentation suivante concernant l’installation et la mise en place d’un serveur hébergeant Wiki.js, un deuxième serveur Nextcloud et un troisième serveur AD. Le serveur AD servira de d’annuaire pour que les utilisateurs des serveurs Nextcloud et Wiki.js puissent se connecter avec les droits attribués à chacun. Voici la liste des machines nécessaires :

  • 2 machines virtuelles sous Rocky Linux (ici version 9.4)
  • 1 machine virtuelle sous Windows Server Standard (ici Windows Server 2022)

Installation et configuration des éléments nécessaire pour assurer la qualité de service

• Création d’un groupe ainsi que d’un utilisateur

sudo groupadd --system wiki

• Activation et installation de packages packages nécessaires

sudo useradd -s /sbin/nologin --system -g wiki wiki
sudo yum install git nano wget curl unzip tar socat mariadb-server nodejs nginx redis -y
  • Installation de wiki-js
    • Création d’un dossier wiki à la racine
sudo mkdir /wiki
    • Récupération du fichier d’installation
sudo wget <https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz>
    • Extraction du fichier
sudo tar xzf wiki-js.tar.gz -C /wiki cd /wiki ls -la
  • Démarrage de mysql
sudo systemctl start mariadb
sudo systemctl status mariadb
  • Configuration de mysql par défaut en exécutant le script
sudo mysql_secure_installation
  • Connexion à mysql avec le mot de passe défini plus tôt
mysql -u root -p
  • Création d’un utilisateur wiki avec un mot de passe
CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'P@ssword59!';
  • Création d’une base de données pour le wiki
CREATE DATABASE wiki_database;
  • Affectation et application des droits privilèges à l’utilisateur créé plus tôt
GRANT ALL PRIVILEGES ON wiki_database.* TO 'wiki'@'localhost';
FLUSH PRIVILEGES;
  • Vérification de la base de données
SHOW DATABASES;
  • Vérification des droits de l’utilisateur wiki :
SHOW GRANTS FOR 'wiki'@'localhost';
  • L’installation de redis a été effectuée plus tôt, nous allons rendre redis enable :
sudo systemctl enable --now redis
  • Vérification du status de redis :
sudo systemctl status redis
  • On copie le fichier exemple de configuration pour effectuer une configuration préalablement :
ls -la
sudo cp config.sample.yml config.yml
sudo nano config.yml
  • Modification du fichier de configuration pour faire correspondre les informations :
db:
  type: mariadb

  # PostgreSQL / MySQL / MariaDB / MS SQL Server only:
  host: localhost
  port: 3306
  user: wiki
  pass: P@ssword59!
  db: wiki_database
  ssl: false
  • Test de la configuration grâce à la commande sudo node server :
sudo node server
  • Ouverture du port dans le pare-feu, puis recharger le pare-feu
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
  • Faire tourner le service en tant que service :
sudo nano /etc/systemd/system/wiki.service
[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/srv/wiki

[Install]
WantedBy=multi-user.target
  • On déplace le fichier wiki dans la bonne racine :
sudo cp -r /wiki /srv/
  • Attribution des droits
sudo chown -R wiki:wiki /srv/wiki
  • On recharge
sudo systemctl daemon-reload
sudo systemctl enable --now
sudo systemctl enable --now wiki.service
  • Vérification si le service est opérationnel :
sudo systemctl status wiki
  • Ajout d’entrée SeLinux :
sudo semanage port -a -t http_port_t -p tcp 3000
sudo setsebool -P httpd_can_network_connect 1
  • Il est possible depuis un navigateur web de se rendre sur la page d’installation de la solution :
http://*adresse_ip*:3000
  • Après s’être connecté, on a la possibilité de créer une page :
  • Après avoir créée une page, il faut aller sur l’Administration en haut à droite de la page pour personnaliser :
  • Possibilité d’ajouter des groupes et des utilisateurs
  • Possibilité de mettre en place des stratégies d’authentification (Par exemple grâce à l’AD que nous mettrons en place plus tard) :
  • Possibilité d’ajout des extensions
  • Possibilité de changer la langue
  • Possibilité de personnalisation de l’entreprise

Mise en place du serveur AD

Voir la documentation Mise en place d’un serveur AD, DNS, DHCP

Nous nous baserons sur l’arborescence AD suivante :

Authentification sur le WikiJS avec l’AD

  • Aller dans le portail d’administration de WikiJS
    • Comme expliqué dans le grand II. Installation de Wiki.js :
  • Ajout d’une stratégie de type « Active Drectory »
  • Renseignement des paramètres du serveur AD
    • Adresse serveur AD avec port 389 (LDAP)
    • Login utilisateur permettant de lire l’AD en utilisant le distinguished name (DN)
    • Mot de passe
    • Emplacements des utilisateurs autorisés pour l’authentification dans l’AD
    • Utilisation du filtre SAMAccountName (Attribut pour le nom de l’objet)

⚠️Pour s’aider, il est possible de trouver l’ensemble des informations dans l’éditeur d’attribut de l’AD de votre objet⚠️

DN (Distinguished Name) : Représente le chemin LDPA qui permet de trouver l’objet dans l’annuaire AD

  • Application des paramètres (comme ceux ci-dessous)
    • Par défaut, un utilisateur disposera uniquement des droits « guests »
    • Pour des raisons de sécurité, si un utilisateur doit avoir les droits administrateurs sur le Wiki, il faudra faire l’action manuellement
  • Création d’un nouveau groupe pour les utilisateurs de l’Active Directory
  • Modification des paramètres du groupe pour définir les autorisations sur le wiki
    • Selon la matrice de droits, il faudra attribuer des groupes avec des droits spécifiques aux utilisateurs

Test de connexion avec 2 utilisateurs différents

⚠️TIPS : Si vous ouvrez une fenêtre en navigation privée, vous pouvez être authentifier avec 2 utilisateurs différents⚠️

Test avec le compte demo-it dans OU=UTILISATEURS,OU=IT,OU=SERVICES,CN=LAB,CN=LOCAL

En tant qu’administrateur de Wiki.JS, il y a possibilité de voir quels utilisateurs se sont connectés à WIKI.JS.

De plus, lorsque les utilisateurs se connectent, ceux-ci sont placés dans le groupe « Guest ».

CR – DocumentationsDownload

Classé sous :Réalisations académiques

Copyright © 2025 · Se connecter

Gérer le consentement
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel Toujours activé
L’accès ou le stockage technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
L’accès ou le stockage technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’internaute.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques. Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
L’accès ou le stockage technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.
Gérer les options Gérer les services Gérer {vendor_count} fournisseurs En savoir plus sur ces finalités
Voir les préférences
{title} {title} {title}