Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 616 minDébutant

Wiki et docs as code : BookStack, Wiki.js, Zensical, Docusaurus

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • choisir entre un wiki et une documentation versionnée dans Git ;
  • comparer BookStack et Wiki.js ;
  • expliquer la chaîne docs as code, de la pull request au site publié ;
  • créer un site de documentation avec Zensical ou Docusaurus.

5 exercices corrigés1 schéma

Un wiki est un site où l'équipe écrit et range sa documentation directement dans le navigateur ; le docs as code consiste à écrire la documentation en Markdown dans un dépôt Git, à la relire comme du code et à la publier automatiquement en site web. Ce chapitre compare les deux approches, présente les outils (BookStack, Wiki.js, Zensical, MkDocs, Docusaurus) dans leur version de novembre 2026 et montre comment créer un site de documentation.

Où ranger la documentation ?

LieuPoints fortsLimitesPour
Fichiers de traitement de texte sur un partageTout le monde sait fairePas de recherche dans tout le contenu, copies qui divergent, versions procedure_v3_final2.docxUn document qui doit être signé ou envoyé tel quel
WikiÉcriture dans le navigateur, recherche, historique, droits par pageLe contenu vit loin du code ; sans organisation, le wiki devient un grenierProcédures d'exploitation, guides utilisateurs, base de connaissances interne
Dépôt Git (docs as code)Documentation versionnée avec le code, relue par pull request, publiée automatiquementIl faut savoir utiliser Git ; peu adapté à des auteurs non techniquesDocumentation d'une application, d'une API, de scripts ou d'une infrastructure décrite par du code
Base de connaissances de l'outil de ticketsReliée aux tickets, visible des utilisateurs (FAQ)Peu adaptée aux longues procéduresSolutions aux incidents fréquents (GLPI)

Le choix dépend des auteurs autant que des lecteurs. La documentation d'une application, écrite par les développeurs, vit naturellement dans son dépôt. Les procédures d'exploitation, écrites par des techniciens qui ne passent pas leurs journées dans Git, vivent bien dans un wiki. Ce qui compte : une seule source de vérité par document, et des liens entre les lieux.

Le wiki : écrire dans le navigateur

Un wiki d'équipe moderne offre un éditeur visuel (et souvent un éditeur Markdown), une recherche dans tout le contenu, l'historique des révisions de chaque page (qui a changé quoi, quand, avec retour possible à une version antérieure), des droits de lecture et d'écriture, des pièces jointes et des diagrammes.

Son défaut est connu : sans règles, il se remplit de pages en double, orphelines ou périmées. Trois règles le gardent utile :

  1. Une structure décidée avant d'écrire, alignée sur les lecteurs : un espace « Procédures du service informatique », un espace « Guides des salariés », un espace « Infrastructure ».
  2. Un propriétaire par page, nommé en tête, chargé de la tenir à jour.
  3. Une date de relecture : chaque procédure est relue au moins une fois par an, ou à chaque changement de l'outil qu'elle décrit.

BookStack

BookStack est un wiki libre (licence MIT), écrit en PHP avec le cadriciel Laravel, qui range le contenu comme une bibliothèque : des étagères regroupent des livres, divisés en chapitres, eux-mêmes faits de pages. Cette structure imposée est son atout : on sait toujours où ranger une page.

  • Version : la série 26.09, publiée en septembre 2026, suivie de correctifs de sécurité. Le projet publie plusieurs versions par an et des correctifs de sécurité fréquents : un wiki se met à jour comme n'importe quelle application.
  • Prérequis : PHP 8.2 ou plus récent, MySQL 8.0 ou plus récent ou MariaDB 10.6 ou plus récent, un serveur web. Des scripts d'installation existent pour Ubuntu, et des images Docker sont maintenues par des tiers (dont LinuxServer.io).
  • Édition : un éditeur visuel par défaut, ou un éditeur Markdown avec aperçu en direct ; un éditeur de diagrammes draw.io intégré aux pages.
  • Droits : des rôles, et des permissions réglables jusqu'à la page.
  • Authentification : comptes locaux, ou annuaire LDAP, SAML 2.0 et OpenID Connect pour se connecter avec les comptes de l'entreprise.

Wiki.js

Wiki.js est un wiki libre (licence AGPL-3.0) écrit en Node.js, dont l'arborescence est libre : tu crées tes dossiers et tes pages comme tu veux.

  • Versions : la branche 2.5, la plus déployée, a été la version stable pendant des années. La version 3.0 est sortie en version stable au début de novembre 2026, après une longue période de développement ; la 3.2.0 a suivi quelques jours plus tard.
  • Prérequis de la version 3 : Node.js 26, et une base PostgreSQL (versions 17 et 18) : c'est la seule base prise en charge. L'installation par Docker est fortement recommandée.
  • Migration : on ne met pas une 2.x à jour sur place. On met d'abord la 2.x à jour vers sa dernière version, on exporte le contenu, puis on l'importe dans une nouvelle installation 3.x.
CritèreBookStackWiki.js 3
OrganisationImposée : étagères, livres, chapitres, pagesLibre : arborescence de pages
Langage, basePHP et Laravel ; MySQL ou MariaDBNode.js ; PostgreSQL uniquement
ÉditeursVisuel ou MarkdownVisuel ou Markdown
LicenceMITAGPL-3.0
Points fortsSimple à prendre en main, structure claire pour des non-spécialistesSouple, riche en fonctions
À surveillerCorrectifs de sécurité fréquents à appliquerVersion 3 toute récente : vérifier la maturité avant une production

Le choix de Sorbier. Antoine Mercier retient BookStack : l'équipe maîtrise déjà MariaDB, la structure en livres convient aux salariés comme aux techniciens, et la connexion LDAP permet d'utiliser les comptes de l'Active Directory. La note de choix de Moussa, avec sa grille de comparaison, est au chapitre 3. Le wiki est installé sur srv-wiki, dans le VLAN 21 (procédure du même chapitre). Trois étagères : Service informatique (lecture et écriture pour les trois membres du service informatique), Guides des salariés (lecture pour tous, écriture pour le service informatique), Direction (lecture pour la direction).

Docs as code : la documentation traitée comme du code

Le docs as code applique à la documentation les outils et les habitudes du développement : elle est écrite en Markdown, rangée dans un dépôt Git (souvent dans un dossier docs/ à côté du code), relue par pull request, vérifiée automatiquement, puis publiée en site web à chaque fusion.

1. Écrirebranche Git, Markdown dans docs/, aperçu local2. Proposerune pull request montre les lignes modifiées3. Vérifier (intégration continue)construction du site, liens, syntaxe Markdown4. Relire et fusionnerun collègue approuve, fusion dans main5. Publiersite déployé : GitHub Pages ou serveur interneéchec : on corrigeCe que la chaîne apporte• la doc suit le code,dans la même branche• chaque changement est relu• l'historique dit qui achangé quoi, et quand• un lien mort bloque la fusion
Docs as code : la documentation suit le même chemin que le code, de la branche au site publié

Ce qu'on y gagne :

  • La documentation suit les versions du code : la branche qui ajoute une route à l'API ajoute aussi sa documentation, dans la même pull request. Le relecteur refuse la fusion si l'une manque.
  • Chaque changement est relu, comme le code.
  • L'historique dit qui a changé quoi, et permet de retrouver la documentation de n'importe quelle version livrée.
  • Des vérifications automatiques : liens cassés, syntaxe Markdown, orthographe, construction du site. Un lien mort bloque la fusion au lieu de frustrer un lecteur.

Ce qu'il faut accepter : les auteurs doivent connaître Git, et le contenu est moins facile à modifier « en deux clics ». Beaucoup d'équipes combinent les deux : docs as code pour l'application, wiki pour l'exploitation et les utilisateurs.

Les générateurs de sites de documentation en 2026

Un générateur transforme un dossier de fichiers Markdown en site web statique : navigation, recherche, thème clair et sombre, coloration du code. Le paysage a beaucoup bougé en 2025 et 2026 ; voici où il en est en novembre 2026.

OutilLangageSituation en novembre 2026Pour
MkDocsPythonLa version 1.6.1, sortie en 2024, n'est plus maintenueLes sites existants, à faire migrer
Material for MkDocsPython (thème de MkDocs)En maintenance depuis novembre 2025 : plus de nouvelles fonctions, correctifs critiques et de sécurité jusqu'au 5 mai 2027Les sites existants, très nombreux
ZensicalPythonSuccesseur créé par l'équipe de Material for MkDocs, licence MIT, en version bêta (0.1.0 publiée le 5 novembre 2026) ; lit le fichier mkdocs.yml d'un projet existantUn nouveau site de documentation en Markdown, ou la migration d'un site MkDocs
DocusaurusJavaScript (React)Version 3.10, maintenue par Meta ; la version 4 est en préparationUne équipe JavaScript, une documentation avec des composants interactifs

D'autres outils existent selon l'écosystème : Sphinx pour les projets Python (il génère aussi la documentation à partir des docstrings), VitePress dans l'écosystème Vue, mdBook dans l'écosystème Rust.

Créer un site de documentation avec Zensical

Zensical s'installe avec pip dans un environnement virtuel Python (Python 3.11 ou plus récent) :

bash
mkdir doc-api-parc && cd doc-api-parc
python3 -m venv .venv
source .venv/bin/activate        # sous Windows : .venv\Scripts\activate
pip install zensical
zensical new .
zensical serve

zensical new . crée le squelette du projet : le fichier de configuration zensical.toml (avec des commentaires qui décrivent les réglages), une page d'accueil docs/index.md, une page d'exemple de la syntaxe et un workflow GitHub Actions .github/workflows/docs.yml qui publie le site. zensical serve lance un aperçu sur http://localhost:8000, reconstruit à chaque enregistrement : tu écris dans VS Code, le navigateur se met à jour.

Il reste à :

  1. écrire tes pages dans docs/ (une page par sujet, des noms de fichiers en minuscules avec des tirets) ;
  2. générer le site final avec zensical build, ou laisser le workflow le faire à chaque push sur la branche principale ;
  3. sur GitHub, activer la publication dans Settings > Pages, avec GitHub Actions comme source.

Pour un projet MkDocs existant, Zensical sait construire le site à partir du mkdocs.yml ; une partie seulement des extensions de MkDocs est prise en charge, donc teste avant de migrer.

Avec Docusaurus, la démarche est la même avec les outils de Node.js (Node.js 20 au minimum ; installe une version LTS maintenue, 24 ou 26) :

bash
npx create-docusaurus@latest doc-api-parc classic
cd doc-api-parc
npm run start

Le site s'ouvre sur http://localhost:3000, les pages s'écrivent dans docs/, et npm run build produit le site statique dans le dossier build/.

Exercices

Exercice 1 sur 5 Quel outil ? Réussi À revoir

Choisis où ranger chaque documentation et justifie en une phrase.

  1. Le guide « Réserver une salle » destiné aux 14 salariés de Sorbier.
  2. La documentation de l'API du parc, développée par Chloé avec Git.
  3. Les procédures d'exploitation des serveurs, écrites par les trois membres du service informatique.
  4. La solution à l'erreur d'impression la plus fréquente, que les salariés pourraient appliquer seuls.
  5. La documentation publique d'une bibliothèque libre que tu publies sur GitHub.
Voir la réponseMasquer la réponse de l'exercice 1
  1. Le wiki, étagère Guides des salariés : lecteurs non techniques, lecture dans le navigateur, mise à jour par le service informatique.
  2. Le dépôt Git de l'API (docs as code) : la documentation suit le code, relue dans la même pull request.
  3. Le wiki, étagère Service informatique : auteurs techniciens, droits restreints, historique des révisions.
  4. La FAQ de l'outil de tickets (GLPI), visible des salariés au moment où ils veulent ouvrir un ticket.
  5. Docs as code avec un site public, généré par Zensical ou Docusaurus et publié sur GitHub Pages : la documentation est versionnée avec le code et les contributeurs proposent des corrections par pull request.

Tu avais trouvé ?

Exercice 2 sur 5 Remettre la chaîne dans l'ordre Réussi À revoir

Remets dans l'ordre les étapes de l'ajout d'une page de documentation dans un projet docs as code : (a) la pull request est fusionnée ; (b) l'intégration continue construit le site et vérifie les liens ; (c) tu crées une branche et écris la page en Markdown ; (d) le site est publié ; (e) tu ouvres une pull request ; (f) un collègue relit et demande une correction ; (g) tu corriges et pousses un nouveau commit.

Voir la réponseMasquer la réponse de l'exercice 2

c, e, b, f, g, b, a, d. L'intégration continue tourne une première fois à l'ouverture de la pull request, puis à nouveau après le commit de correction : c'est pourquoi b apparaît deux fois. La fusion n'intervient qu'une fois la relecture approuvée et les vérifications réussies ; la publication suit la fusion, automatiquement.

Tu avais trouvé ?

Exercice 3 sur 5 Le mot de passe du wiki Réussi À revoir

En relisant le wiki de Sorbier, Chloé trouve dans la page « Sauvegarde nocturne » le mot de passe du compte svc-sauvegarde, écrit en clair il y a huit mois. Que doit-elle faire, dans l'ordre ?

Voir la réponseMasquer la réponse de l'exercice 3
  1. Considérer le mot de passe comme compromis : il a été lisible par tous ceux qui avaient accès à la page, et il reste dans l'historique des révisions, les exports et les sauvegardes du wiki.
  2. Le changer sur le compte svc-sauvegarde, puis mettre à jour la tâche de sauvegarde qui l'utilise, et vérifier que la sauvegarde suivante réussit.
  3. Ranger le nouveau mot de passe dans le gestionnaire de mots de passe de l'équipe.
  4. Corriger la page : remplacer le mot de passe par l'endroit où le trouver ; supprimer, si l'outil le permet, les anciennes révisions qui le contiennent.
  5. Vérifier les journaux du compte pour repérer un usage anormal, et signaler l'événement au responsable, Antoine.
  6. Prévenir la récidive : ajouter la règle « jamais de secret dans le wiki » à la page d'accueil de l'étagère, et la rappeler à l'équipe.

Tu avais trouvé ?

Exercice 4 sur 5 BookStack ou Wiki.js ? Réussi À revoir

Une association de 30 bénévoles veut un wiki pour ses procédures. Son seul serveur est un petit hébergement mutualisé qui fournit PHP 8.3 et MariaDB 10.11, sans Docker ni Node.js. Les bénévoles ne sont pas informaticiens. Que lui conseilles-tu ?

Voir la réponseMasquer la réponse de l'exercice 4

BookStack : il tourne sur PHP 8.2 ou plus récent avec MariaDB 10.6 ou plus récent, ce que fournit l'hébergement ; Wiki.js 3 exige Node.js 26 et PostgreSQL, absents. La structure imposée en étagères, livres, chapitres et pages convient à des non-spécialistes. Il faudra prévoir qui applique les mises à jour de sécurité, fréquentes, et vérifier que l'hébergement autorise l'installation (Composer, tâches planifiées) : un wiki non mis à jour exposé sur Internet est une porte d'entrée.

Tu avais trouvé ?

Exercice 5 sur 5 Une grille de choix à terminer Réussi À revoir

Chloé doit choisir le générateur du site de documentation de l'API du parc, écrite en JavaScript avec Node.js. Elle suit la méthode de la note de choix (chapitre 3). Avec Antoine, elle a fixé les critères et leurs coefficients, puis noté les deux outils sur 5 :

CritèreCoef.ZensicalDocusaurus
Maturité : version stable, maintenance assurée325
Cohérence avec le projet (même langage que l'API)225
Simplicité d'écriture et de configuration253
Sobriété : poids des pages publiées143
  1. Calcule le total pondéré de chaque outil, et dis sur combien de points.
  2. Rédige la recommandation en une phrase.
  3. Son premier jet disait seulement : « On prend Docusaurus, c'est le plus connu. » Qu'est-ce qui ne va pas ?
  4. Antoine demande : « Et si Zensical sort une version stable dans six mois ? » Recalcule son total avec 5 en maturité. Que faut-il écrire dans la rubrique « Risques et suites » ?
Voir la réponseMasquer la réponse de l'exercice 5
  1. Zensical : 3 × 2 + 2 × 2 + 2 × 5 + 1 × 4 = 6 + 4 + 10 + 4 = 24. Docusaurus : 3 × 5 + 2 × 5 + 2 × 3 + 1 × 3 = 15 + 10 + 6 + 3 = 34. Le maximum est 5 × (3 + 2 + 2 + 1) = 40 points.
  2. « Je recommande Docusaurus (34 points sur 40, contre 24) : il est stable et maintenu, et il utilise le même langage que l'API, ce qui compense une configuration un peu plus lourde. »
  3. Ni besoin, ni critères, ni comparaison, ni source : la phrase ne se vérifie pas et ne se discute pas. « Le plus connu » n'est pas un critère tiré du besoin de Sorbier ; la note doit montrer pourquoi l'outil y répond.
  4. Avec 5 en maturité, Zensical obtiendrait 3 × 5 + 2 × 2 + 2 × 5 + 1 × 4 = 15 + 4 + 10 + 4 = 33 points : Docusaurus resterait devant, d'un point. Une note de choix vaut pour l'état des outils à sa date ; on écrit donc dans « Risques et suites » : « Zensical est en version bêta au 08/11/2026 : réévaluer le choix à la sortie de sa version stable, ou avant tout changement majeur du site. »

Tu avais trouvé ?

Chapitre terminé !

Fais les 5 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Documenter son code : docstring Python, JSDoc et commentaires XML en C#Revoir le sommaire du cours