Développements

Tout ce que j’écris et que je peux publier est publié, sous licence libre, sur github.com/lemathou et github.com/iprospective. Il n’y a pas d’un côté mes développements et de l’autre mes contributions open source : c’est la même chose.

Vous pouvez donc lire le code avant de me confier un projet, et le reprendre si nous cessons de travailler ensemble. C’est la contrepartie de ce que je vends : pas de licence à racheter, pas de prestataire obligé.

Ce que vous trouvez ici, ce sont des outils : du code qui existe indépendamment du client chez qui il a été écrit, qui se réinstalle ailleurs et qui tourne souvent chez plusieurs. Ce qui a été livré à quelqu’un — une boutique, une reprise d’ERP, une infrastructure — est sur Réalisations. Le même travail s’y lit sous l’autre angle : la réalisation dit chez qui et pourquoi, l’outil dit quoi et comment.

  • siteadm-webhostingEn productionOutil de gestion et d’administration de serveur Linux complet : comptes, hôtes virtuels, pools PHP isolés par site, certificats, quotas. C’est ce qui rend tenable l’hébergement de plusieurs dizaines de sites sans que l’un puisse gêner l’autre.Déployé chez — toute ma plateforme d’hébergement, et donc la quasi-totalité des sites clients.Codesiteadm-webhostingOutillage d’hébergement — le détail
  • zfs-snap-clean, zfs-lxcEn productionGestion de backups Linux : instantanés ZFS et conteneurs LXC : rétention, purge, création et clonage de conteneurs. Une sauvegarde qu’on ne purge pas finit par remplir le disque qu’elle protège.Déployé chez — ma plateforme — voir Sauvegardes.Codezfs-snap-clean zfs-lxcOutillage d’hébergement — le détail
  • opensvc-zfs-resyncEn productionRéplication de config serveur entre une machine de production et son failover, sous OpenSVC. La bascule ne vaut que si la configuration des deux côtés est réellement identique ; ce script le vérifie et le rétablit.Déployé chez — ma plateforme.Codeopensvc-zfs-resyncOutillage d’hébergement — le détail
  • mysql-sync-replicEn production(Re)synchronisation d’une réplication MySQL/MariaDB. Quand un esclave décroche, la réponse habituelle est de tout redumper ; cet outil resynchronise ce qui diverge, sans interrompre le service.Déployé chez — ma plateforme — voir Bases de données.Codemysql-sync-replicOutillage d’hébergement — le détail
  • Outillage diversEn productionLes petits scripts qui font tourner le reste : création de pools PHP-FPM par site, tunnels SSH persistants.Déployé chez — ma plateforme.Codephp-fpm-pool-84 ssh-tunnel
  • 26 modules DolibarrEn productionProduits, stocks, entrepôts, expéditions, paiements, projets, GED, CRM, SAV, statistiques, comptabilité, filtres, sécurité. Le module est le bon niveau d’intervention : assez petit pour être maintenu, assez isolé pour ne pas empêcher les mises à jour de l’ERP.Déployé chez — Calicote, Pisceen / Dercya, Villa Cactus, Code42.Codedolibarr-mmi-modules, et un fork de Dolibarr qui ajoute les points d’accroche manquants.Détail des modules : Intégration Dolibarr et Paiement en ligne.Modules Dolibarr — le détail
  • Synchronisation Dolibarr ↔ PrestaShopEn productionProduits, déclinaisons, prix, stocks, commandes, clients : une seule source pour le catalogue. C’est ce qui évite le double catalogue, vraie cause des ruptures et des ventes de produits absents.
    L’ensemble tient en trois pièces : l’intergiciel doli-presta-sync, qui porte la logique de correspondance et l’ordonnancement ; le module Dolibarr mmiprestasync, qui expose côté ERP les données et les réglages de la synchronisation ; et côté boutique le module PrestaShop customers-tools, qui reprend les comptes clients et les paniers que la synchronisation fait remonter.
    Déployé chez — trois installations : Calicote, Pisceen / Dercya, Villa Cactus.Codedoli-presta-sync dolibarr-module-mmiprestasync prestashop-module-customers-toolsModules Dolibarr — le détail
  • mmi-listsEn productionOutil de création de liste de naissance — et bientôt d’autres types de listes. Publié sous AGPL : une structure qui l’installe chez elle en garde la maîtrise, y compris si elle le modifie.Codemmi-lists
  • mmi-pollsEn productionAstreinte par relais : sondage de disponibilités, attribution des créneaux principal et suppléant, notifications avec confirmation, demandes de remplacement entre participants ou orchestrées par le manager. Écrit pour un besoin associatif que rien ne couvrait sans abonnement par utilisateur — voir Associations & syndicats.Codemmi-polls
  • FAD — framework PHP complexeHistorique, en serviceFramework PHP complet, avec son ORM de première génération — ORM PHP v1, datamodel. Écrit à une époque où il fallait tout construire, il a porté des applications marchandes réelles.Déployé chezOpium Racing : site marchand de réservation de roulage moto sur circuits, en 8 langues, pour une agence opérant en Europe de l’Est.Codefad-framework-phpFrameworks PHP — le détail
  • Tiny Framework — framework/CMS PHP simpleHistorique, en serviceL’inverse du précédent : le strict nécessaire pour bâtir un site vite, avec l’ORM PHP v2, db_object. Une version améliorée en a été développée pour MatNat.Déployé chez — MatNat, et plusieurs sites vitrines.Codeframework-tiny-phpFrameworks PHP — le détail
  • worm — ORM PHP v3En coursLa génération actuelle. Le sujet qui m’occupe le plus : un typage fort dans la couche de données rend impossibles des classes entières d’erreurs, très en amont du code applicatif — et rend une reprise de données supportable dix ans plus tard.CodewormORM PHP — le détail
  • Synchronisation GraphQL ↔ DoctrineEn coursFaire correspondre un schéma GraphQL distant et un modèle Doctrine local sans réécrire l’un pour l’autre. Développé dans le cadre d’un connecteur pour l’ERP Digiforma.Déployé chez — un organisme de formation — voir Organismes de formation.Code — pas encore publié.
  • Surcouche de templates SymfonyEn productionMise en cache fine des gabarits : le grain descend au fragment plutôt qu’à la page. Sur un catalogue, la différence entre les deux se compte en secondes de rendu.Déployé chez — MatNat.Code — pas encore publié.
  • Outillage d’auditEn productionMéthodologie, reconnaissance scriptée, référentiel de vulnérabilités par produit, gabarits de livrables et correctifs prêts à poser. Surtout : le retest avec différentiel, seule preuve qu’un audit a servi à quelque chose. La méthode est mutualisée, les données d’audit ne le sont jamais.Déployé chez — mes audits de sécurité et d’infrastructure.Code — non publié à ce jour.Outillage d’audit — le détail
  • Atlas — diagnostic systèmeEn coursObserver l’infrastructure, corréler les relevés avec la supervision, remonter de l’alerte à la cause. La supervision dit qu’il y a un problème ; elle ne dit pas lequel, et c’est ce travail d’enquête qu’Atlas outille. Découpé de sorte que « demander un diagnostic » ne puisse pas devenir « exécuter n’importe quoi ».Où il tourne — dans ma propre infrastructure ; il travaille sur les infrastructures que j’administre.Code — non publié à ce jour.Atlas — le détail
  • Karl — gestion de projet assistée par IAEn coursNoyau de gestion de projet assisté par intelligence artificielle : tickets, états, journaux et rapports tenus par des agents, avec Redmine comme référentiel. L’enjeu n’est pas de faire écrire du code à une machine, mais de garder une trace vérifiable de ce qu’elle a fait.Déployé chez — mon propre atelier, sur mes projets clients.Codekarl-ai-project-managerKarl — le détail
  • AtomBox — plateforme d’hébergement de messagerieEn coursLe cœur d’une plateforme d’hébergement de messagerie : le webmail d’entreprise, et l’administration des domaines, boîtes, alias et filtres qui va avec. La pile Postfix/Dovecot existe depuis longtemps ; ce qui manque, c’est tout ce qui permet au client de s’en servir sans passer par son prestataire.CodeAtomBoxAtomBox — le détail
  • crypt-dbEn coursBase de données chiffrée partagée, avec une clé maîtresse par dossier. Le même principe que le coffre-fort de mots de passe, appliqué à des données structurées.Codecrypt-db
  • Plateforme de cours en ligneEn coursPensée d’abord pour les mathématiques dans le supérieur. Le sujet est plus difficile qu’il n’en a l’air : écrire des mathématiques sur le web demande de traiter le contenu comme une structure et non comme une image — d’où MathML.Code — pas encore publié.Plateforme de cours — le détail

Également en cours, sans dépôt public à ce jour

  • ERP

L’inventaire complet des dépôts

Les cartes ci-dessus racontent les gros morceaux. La liste ci-dessous est exhaustive : elle est reconstruite chaque jour depuis GitHub, sans intervention de ma part.

44 dépôts publics, maintenus depuis 2012. Les 19 détaillés plus haut ne sont pas répétés ici ; voici les autres.

Écosystème Dolibarr 25

Suite de modules métier pour l'ERP Dolibarr : CRM, projets, stocks, expéditions, comptabilité, paiements, GED.

Mis à jour le 8 septembre 2026.

Les structures chez qui tout cela tourne sont sur Clients et employeurs ; le détail technique sur Compétences techniques.