⚠️ Attention ! ⚠️

Avant d'être prof, j'étais informaticien. Cet article décrit l'utilisation d'outils techniques, que je ne conseillerais pas aux débutants. Si vous ne savez pas utiliser la ligne de commande, que vous n'avez jamais entendu parler de git, que vous ne savez pas ce qu'est un serveur DNS, vous risquez d'avoir du mal à suivre cet article…

Mises à jour

Cet article ne constitue pas un tutoriel pour faire comme moi ; il explique seulement, dans les grandes lignes, quels sont les outils que j'utilise pour construire ce site web (ainsi que celui consacré à l'ICN ou à la SNT), et comment ils s'agencent les uns avec les autres.

Pourquoi ? L'indépendance

Des collègues publient leurs cours sur Google Drive, Pearltrees, OneDrive, les pages perso de Free, etc. J'utilise la méthode suivante (qui est, par certains aspects, plus contraignante) pour diverses raisons, la principale étant : l'indépendance.

  • Je reste maître de mes données. Si demain, Google abandonne Google Drive, les données stockées là-bas risquent d'être perdues. Mon site web est intégralement sur mon ordinateur : si Framagit (mon hébergeur) ferme, je pourrai le transférer ailleurs sans que les visiteurs se rendent compte de quoi que ce soit.
  • Je reste maître de mon URL. Si demain, un utilisateur des pages perso de Free n'en est plus satisfait, il devra prévenir la planète entière que son site web a déménagé. Si je ne suis plus satisfait d'un de mes outils, je peux en changer sans que les visiteurs s'en aperçoivent.

Notons que cette indépendance a un coût : si j'utilise gratuitement les logiciels libres décrits ici1, certains des services sont payants. Mais si c'est gratuit, c'est que je suis le produit.

Les outils utilisés

Logo de Lektor Un générateur de site web statique : Lektor

Mon site web est généré par Lektor, un générateur de sites web statiques. Ce logiciel convertit un ensemble de fichiers (du texte au format markdown, des images, et quelques autres fichiers) en un site web (des pages au format HTML, et d'autres fichiers). Mon site web est donc un répertoire de fichiers, et rien d'autre (pas de base de donnée par exemple), ce qui le rend plus simple à gérer, déplacer, déployer, etc.

J'utilise Lektor parce qu'il est écrit en Python (ce qui me permet de le bidouiller) et qu'il est très personnalisable, mais il existe des dizaines d'autres logiciels de ce genre, plus ou moins simples, plus ou moins puissants. Faites votre choix !

Logo de Git Un système de gestion de version : Git

Pour ne pas perdre la trace de ces fichiers, ils sont gérés avec git. Ce logiciel (utilisé au départ pour le développement logiciel) me permet de garder l'historique des modifications, de créer des branches (que j'utilise comme des brouillons), etc. Seules les sources sont gérées par git (principalement des fichiers au format markdown et des images), les fichiers compilés (des fichiers au format HTML) ne le sont pas.

Ainsi, la commande git clone https://forge.apps.education.fr/paternaultlouis/ababsurdo.git vous permet de télécharger l'intégralité des sources de mon site web, pour l'étudier ou le reconstruire vous même2 (mais il est aussi possible, à votre convenance, de garder les sources privées).

Git me permet aussi d'utiliser une forge logicielle…

Logo de Gitlab Une forge logicielle : Gitlab (hébergées par Framasoft et le ministère de l'Éducation nationale)

Dés que je veux publier une modification de mon site web (correction, nouvel article), je publie les modifications sur la Forge des communs numériques éducatifs, et ces modification sont immédiatiement répliquées sur Framagit, deux instances de Gitlab, un outil créé au départ pour partager des programmes informatiques. Si je diffusais un logiciel, cette forge permettrait à d'autres utilisateurs de voir les sources, de travailler de manière collaborative. Dans mon cas, elle me sert surtout de sauvegarde, et à déclencher la génération du site web.

Notons que le service de Framasoft n'est pas gratuit (il est à prix libre) et que celui du ministère n'est pas ouvert à tou·te·s (il est est réservé aux employés du ministère). Dans ce dernier cas, ce n'est pas moi — individuellement — qui suis indépendant, mais moi — en tant que professeur — qui suis indépendant d'outils extérieurs.

Logo de Docker Un logiciel d'automatisation : Docker

Quand des modifications sont publiées sur Framagit, seules les sources sont téléversées. Framagit lance alors un conteneur Docker (une sorte d'émulateur) sur lequel est installé Lektor, pour générer le site web (au format HTML, principalement) à partir des sources (au format markdown, principalement).

Le projet Gitlab Pages examples propose des exemples (des patrons) de configurations pour différents générateurs de sites web statiques. Dans le cas de Lektor, l'image Docker proposée est simplement Python (sur laquelle est installée Lektor à la volée) ; dans mon cas, j'utilise une image Docker personnalisée (sur laquelle est installée LaTeX, LibreOffice, Lektor, etc.).

Logo de Framasoft Un hébergeur : Framagit (avec les Gitlab pages)

Ces pages web (générées par Lektor à l'étape précédente) sont ensuite servies par Framagit. À ce stade, mon site web est accessible à l'adresse https://lpaternault.frama.io/ababsurdo, qui est gérée par Framasoft : si l'association met la clef sous la porte, cette URL ne pointera plus nulle part3. C'est pour cela que j'ai acheté mon propre nom de domaine.

Logo de Gandi Un nom de domaine : http://ababsurdo.fr

J'ai acheté auprès de Gandi4 le nom de domaine ababsurdo.fr. Cela me coûte 15€ par an, mais est une des garanties de mon indépendance.

Il me reste ensuite à configurer le serveur DNS de Gandi d'une part, et le dépot ababsurdo de Framagit d'autre part, pour faire en sorte que ce soit Framagit qui serve les requêtes visant http://ababsurdo.fr.

Et si un des outils cesse d'être disponible ?

Tout fonctionne. Mais je dépends de beaucoup d'outils et de services. Et s'ils mourraient ?

  • Si Lektor n'est plus maintenu, je peux continuer à utiliser la dernière version publiée, ou changer de générateur de sites web statiques (ceci demanderait pas mal de travail de ma part, mais c'est possible).

    Ce serait invisible pour les visiteurs.

  • Si Git n'est plus maintenu… Git sera toujours maintenu : il est utilisé par Linux, Google, Netflix, Microsoft, Facebook, et bien d'autres. Si un successeur de git, plus efficace, supplante git, des dizaines d'informaticiens plus doués que moi écriront des programmes de conversion de git vers le nouveau logiciel.

    Ce serait invisible pour les visiteurs.

  • Si la Forge des communs numériques éducatifs est fermée, je pourrai trouver une autre forge logicielle, ou héberger la mienne, ou m'en passer, générer le site web chez moi, et ne téléverser que le site web compilé.

    Ce serait invisible pour les visiteurs.

  • Si Docker disparaît, je pourrai utiliser un autre logiciel équivalent, ou m'en passer, générer le site web chez moi, et ne téléverser que le site web compilé.

    Ce serait invisible pour les visiteurs.

  • Si Framagit disparaît (l'hébergeur), je pourrai trouver un autre hébergeur (gratuit ou payant), ou héberger le site moi-même.

    Ce serait invisible pour les visiteurs.

  • Si Gandi disparaît, mon nom de domaine m'appartiendrait toujours, et pourrait être géré par un autre registrar.

    Ce serait invisible pour les visiteurs.

Bref, j'utilise beaucoup d'outils, mais je ne dépends d'aucun…


  1. Je donne parfois de l'argent, ou je contribue moi aussi pour faire vivre cet écosystème.

  2. Pourquoi feriez-vous une telle chose ? Je n'en ai aucune idée…

  3. Ou, plus probablement, sera rachetée pour en faire une ferme de liens, une pub pour du viagra, ou les deux.

  4. Mais il existe bien d'autres registrars, dont par exemple OVH.