Migration

Divulgâchage : Après quelques mois d’absences pour cause d’expertises judiciaires, nous avons migré le (merveilleux) site des arsouyes sur un nouveau CMS et, par la même occasion, remboursé la dette technique accumulée sur l’ancien. Nous sommes passés au CMS « grav » auxquel nous avons ajouté quelques plugins et patchs, ce qui nous permet de vous générer des pages de catégories et même des tags.

Depuis le réveil du site en 2017, nous utilisions notre propre CMS statique : Pandoc pour compiler du markdown en html, make pour orchestrer la compilation, gitlab pour le déploiement continu et docker pour isoler les étapes. Nous avions même intégré une étape de vérification des liens et tout marchait très bien.

Comme on pouvait s’en douter, au bout de quelques années, on a atteint les limites du système… maintenir tous les indexes à la main n’est déjà pas très amusant mais devoir attendre 15 à 20 minutes pour mettre un commit en production (dont 90% à vérifier des liens) ce n’est pas ce qu’on peut appeler « efficient ».

Bien sûr, nous aurions pu trouver des solutions pour rembourser cette dette technique et corriger ces problèmes mais après y avoir réfléchi, et surtout après ces derniers mois de travail qui nous ont empêché de publier ici, on a du regarder la vérité en face :

Notre temps est limité, il faut le consacrer aux choses les plus importantes.

Les arsouyes

schuetz-mediendesign @ pixabay

L’édition d’un CMS ne faisant pas partie de nos priorités, nous avons choisi d’en prendre un sur étagère. Après avoir testé quelques CMS pour voir lequel remplirait le mieux nos besoins, nous avons pris ces trois semaines de vacances scolaires de pâques pour effectuer la migration (et un peu de la semaine suivante).

Grav

Le choix d’un CMS sur étagère est à peu près aussi difficile que celui du jambon dans un supermarché. Qu’importe les critères que vous avez, il y a toujours plusieurs produits qui vont y correspondre sans qu’aucun ne se démarque des autres…

Pour le site des arsouyes, nous voulions un logiciel libre et sérieux utilisant des fichiers markdown dans des répertoires qui correspondent à la structure du site (pour migrer plus facilement). Un intégration facile avec git (et des branches) et, en cas d’interface d’administration, LDAPs serait un plus.

Dernier critère : qu’on puisse l’installer sur nos propres serveurs. Même si c’est plus contraignant qu’une solution qui fait tout, on préfère rester maître des données personnelles collectées par notre site (aucunes). Vous êtes ici chez nous et pas chez eux.

kasjanf @ pixabay

On est sûr que plein d’autres logiciels pourraient le faire très bien mais nous avons jeté notre dévolu sur grav, un CMS libre en PHP, utilisant des fichiers pour sa « base de donnée », un moteur de template (twig) pour produire les pages et qu’on peut installer sur ses serveurs.

Comme toujours, plein de plugins sont disponibles mais nous n’avons eu à en installer que 4 pour combler nos besoins :

  1. mathjax pour les équations mathématiques,
  2. highlight pour la coloration syntaxique,
  3. image-caption pour les légendes des images,
  4. antispam pour obfusquer les adresses mail.

Nous avions initialement utilisé login-ldap pour nous connecter via nos comptes Active Directory et git-sync pour synchroniser les fichiers du site avec notre gitlab. Ils marchaient très bien mais comme nous n’utilisions pas l’interface d’administration, nous l’avons enlevée, et ces plugins ont suivi.

Pour la CI/CD, on a décidé de versionner l’ensemble du site ; le contenu et le CMS. Pour chaque branche, on peut très facilement déployer et maintenir des environnement autonomes. La production est déployée vers l’hébergeur avec rsync (et un lien symbolique nous permet de changer de version de manière atomique).

Nouveau site

À côté de ces aspects purement technique, on en a aussi profité pour nettoyer et améliorer le site en lui-même. Entre autres petites choses :

Côté style, on était plutôt content du précédent mais depuis que le violet est devenu à la mode pour tous les sites qui se veulent un peu « technologiques », on est revenu sur quelque chose de plus bleu.

Et après ?

Globalement, la migration est terminée et on va (enfin) pouvoir se consacrer à la production du contenu mais il nous reste quelques détails à régler ; forcer TLS (done), améliorer le RSS (done) et autres petits détails.