Aller au contenu

SP 2 - Mission 1 - Mise en place MkDocs

SP 2 : Gestion parc informatique

Mission 1 : Création d'une documentation avec MkDocs et GitHub Pages

Contexte : MILLENUITS

Logo MilleNuits


Informations générales

  • Date de crĂ©ation : 05/02/2026
  • Dernière modification : 05/02/2026
  • Auteur : MEDO Louis

Sommaire

  • A. Installation et utilisation locale de MkDocs
  • B. Automatisation du dĂ©ploiement (CI/CD)
  • C. Fonctionnement du dĂ©pĂ´t

Objectif

Cette procédure permet d'installer le générateur de site statique MkDocs sur un environnement Windows, de le configurer avec le thème "Material", et d'automatiser son déploiement sur GitHub Pages via les GitHub Actions.


Prérequis

  • Python 3.x installĂ© sur la machine.
  • Git installĂ© et configurĂ©.
  • Un compte GitHub et un dĂ©pĂ´t créé.
  • VS Code (ou autre Ă©diteur de texte).

A. Installation et utilisation locale de MkDocs

1. Installation des dépendances

  1. Mise Ă  jour de pip. Mise Ă  jour du gestionnaire de paquets Python.

    python.exe -m pip install --upgrade pip
    

  2. python.exe -m pip : Exécute le module pip via l'interpréteur Python (évite les soucis de PATH).

  3. install : Commande pour installer un paquet.
  4. --upgrade : Option forçant la mise à jour si le paquet existe déjà.

  5. Installation de MkDocs Material. Installation du framework MkDocs avec le thème visuel Material.

    pip install mkdocs-material
    

  6. Vérification. Contrôle de la bonne installation.

    python -m mkdocs --version
    

  7. --version : Affiche le numéro de version installé.

2. Initialisation du projet

  1. Création de la structure. Création du dossier qui contiendra la documentation (selon l'arborescence du projet docs_millenuits).

    python -m mkdocs new docs_millenuits
    

  2. new : Commande pour générer l'échafaudage de base (fichier yaml et dossier docs).

  3. docs_millenuits : Nom du dossier racine de la documentation.

  4. Configuration. Modification du fichier docs_millenuits/mkdocs.yaml.

    site_name: Documentation - Millenuits
    theme:
      name: material            # Définition du thème visuel
      language: fr              # Langue de l'interface
    
    plugins:
      - search                  # Active la barre de recherche interne
    

3. Utilisation courante

  1. Prévisualisation locale. Lancement d'un serveur web local pour voir le rendu en direct.

    python -m mkdocs serve
    

  2. serve : Démarre un serveur de développement (généralement sur localhost:8000) avec rechargement automatique à chaque modification de fichier.

  3. Compilation manuelle (Optionnel). Génération des fichiers HTML statiques.

    python -m mkdocs build
    

  4. build : Convertit les fichiers Markdown en HTML dans le dossier site/.


B. Automatisation du déploiement (CI/CD)

1. Configuration du Workflow

  1. Création du dossier. Créer l'arborescence .github/workflows à la racine du dépôt.
  2. Création du fichier de pipeline. Créer le fichier publish.yaml avec le contenu suivant :

    name: Deploy MkDocs
    on:
      push:
        branches:
          - main                # Déclencheur : push sur la branche main
    
    permissions:
      contents: write           # Nécessaire pour que le bot puisse écrire sur la branche gh-pages
    
    jobs:
      deploy:
        runs-on: ubuntu-latest  # Environnement virtuel Linux
        steps:
          - uses: actions/checkout@v4
            # Récupère le code source du dépôt
    
          - uses: actions/setup-python@v5
            with:
              python-version: 3.11
            # Installe Python dans l'environnement virtuel
    
          - run: pip install mkdocs-material
            # Installe les dépendances nécessaires à la compilation
    
          - run: mkdocs gh-deploy --config-file docs_millenuits/mkdocs.yaml --force
            # Compile et déploie le site
    

  3. on: push: Définit l'événement qui lance l'action.

  4. runs-on: Spécifie le système d'exploitation du conteneur (runner).
  5. actions/checkout: Action officielle permettant au script d'accéder aux fichiers du dépôt.
  6. mkdocs gh-deploy: Commande spécifique à MkDocs pour compiler et pousser le résultat sur la branche gh-pages.
  7. --config-file: Indique le chemin spécifique du fichier de configuration (car il n'est pas à la racine).
  8. --force: Force l'écrasement de l'historique de la branche de déploiement si nécessaire.

2. Mise en production

  1. Envoi sur GitHub. Pousser les fichiers de configuration et le workflow.

    git add .
    git commit -m "Ajout pipeline CI/CD MkDocs"
    git push -u origin main
    

  2. add . : Ajoute tous les fichiers modifiés à l'index (staging area).

  3. commit -m : Enregistre les modifications avec un message descriptif.
  4. push : Envoie les commits locaux vers le serveur distant (GitHub).

3. Activation GitHub Pages

  1. Aller dans l'onglet Settings du dépôt GitHub.
  2. Menu Pages (barre latérale gauche).
  3. Dans Build and deployment > Branch, sélectionner gh-pages et / (root).
  4. Cliquer sur Save.

4. Vérification finale

Accéder à l'URL fournie par GitHub (ex: https://ap-bts-sio-louis.github.io/millenuits/).


C. Fonctionnement du dépôt

ap-bts-sio-louis.github.io/millenuits/

Organisation de l'arborescence

Le dépôt est structuré pour séparer la configuration technique, l'automatisation et la documentation métier.

Dossier / Fichier Description
.github/workflows/ Contient les scripts d'automatisation (CI/CD). Ici, publish.yaml gère la compilation et la publication automatique du site lors d'une modification.
config/ Contient les fichiers de configuration technique des équipements réseau (Switchs, Routeurs) et les données VLAN (vlan.dat). Ce dossier est séparé de la documentation pour être exploitable directement par des scripts ou des techniciens.
docs_millenuits/ Dossier racine du projet MkDocs. Il isole l'environnement de documentation du reste du dépôt.
↳ mkdocs.yaml Fichier de configuration principal du site (nom, thème, plugins, structure de navigation).
↳ docs/ Contient les fichiers sources en Markdown (.md). C'est le contenu brut qui sera transformé en page HTML.
    ↳ index.md Page d'accueil du site de documentation.
    ↳ 01-situation... Dossier regroupant les missions liées à l'infrastructure réseau.
    ↳ 02-situation... Dossier regroupant les missions liées à la gestion du parc informatique (dont cette procédure).
images/ Stockage des ressources statiques globales (logos, schémas d'architecture) utilisées à la fois dans le readme.md racine et dans les pages de documentation.
readme.md Fichier d'accueil du dépôt GitHub, présentant le projet globalement (avant même d'aller sur le site de documentation).

Notes importantes

  • Chemins d'images : Dans les fichiers Markdown situĂ©s dans docs_millenuits/docs/, pour utiliser une image du dossier racine images, il faut utiliser le chemin relatif ../../images/nom_image.png ou l'URL absolue GitHub (moins recommandĂ© pour le hors-ligne).
  • Indentation YAML : Le fichier publish.yaml est très sensible Ă  l'indentation (espaces). Ne pas utiliser de tabulations.

Bibliographie