Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Documentation opérationnelle : structurer pour retrouver

Par mis à jour le

Améliorer cette page

Vous êtes-vous déjà retrouvé à 2 heures du matin face à un serveur en panne, à vous demander : « Qui a configuré ce truc ? Où sont les identifiants ? C'est quoi déjà la procédure de redémarrage ? » Si oui, vous avez vécu le cauchemar d'une documentation absente ou introuvable.

La documentation opérationnelle, c'est tout ce qui permet à une équipe de comprendre, maintenir et faire évoluer son infrastructure sans dépendre d'une seule personne. Cette leçon s'adresse à l'administrateur ou au devops qui doit organiser cette documentation : elle la range en cinq familles, chacune avec son usage, son format et son rythme de mise à jour.

  • Expliquer pourquoi une information connue d'une seule personne est une information fragile
  • Classer un document dans l'une des cinq familles : cartographie, architecture, procédures, référentiel, historique
  • Appliquer la règle « un document = une famille »
  • Mettre en place une documentation minimale en cinq étapes
  • Répartir les responsabilités avec une matrice RACI et un fichier CODEOWNERS

Pourquoi la documentation opérationnelle est-elle indispensable ?

Section intitulée « Pourquoi la documentation opérationnelle est-elle indispensable ? »

La documentation opérationnelle est indispensable parce qu'une équipe ne peut pas compter sur la mémoire de ses membres pour réparer, transmettre ou auditer son infrastructure. Ce qui n'est pas écrit disparaît au premier départ, et coûte cher au premier incident.

Connaissance tacite ou documentation : quelle différence ?

Section intitulée « Connaissance tacite ou documentation : quelle différence ? »

Il y a une différence fondamentale entre ce qui est documenté et ce qui est connu. La connaissance tacite, c'est le savoir qui reste dans la tête des experts sans jamais avoir été écrit : c'est Jean-Pierre qui sait que « le serveur de prod, faut le redémarrer dans cet ordre sinon ça plante », ou Marie qui connaît le mot de passe de l'ancien compte admin parce qu'elle l'a configuré il y a trois ans.

Le problème ? Jean-Pierre part en vacances. Marie change d'entreprise. Et soudain, plus personne ne sait. La documentation, c'est ce qui reste quand les experts ne sont pas là : c'est la différence entre une équipe résiliente et une équipe qui s'effondre au premier départ.

Vous pensez peut-être : « On est une petite équipe, on se parle tous les jours, pas besoin de tout écrire. » C'est une erreur classique, parce que les moments où la documentation sert sont justement ceux où personne n'est disponible : l'astreinte de nuit, l'arrivée d'un nouveau, le départ d'un expert. Le tableau compare ces situations avec et sans documentation.

BénéficeSans documentationAvec documentation
Temps de diagnosticOn commence par chercher « c'est quoi ce serveur ? »Ouvrir la page du service, voir le diagramme, suivre le runbook
Intégration des nouveauxDes semaines à solliciter les collèguesLecture autonome, puis questions ciblées
AstreinteAppeler l'expert à 3 h du matinSuivre le runbook, n'escalader que l'imprévu
Départ d'un expertPanique, perte de savoir critiqueTransition préparée, le savoir est écrit
Audit de sécurité« Euh... je crois que c'est configuré comme ça... »« Voici notre documentation des accès »

Que se passe-t-il quand elle est mal structurée ?

Section intitulée « Que se passe-t-il quand elle est mal structurée ? »

Une documentation mal structurée mélange des documents qui ne répondent pas au même besoin ni au même moment. Un runbook, la procédure pas à pas qu'on suit pour intervenir, se consulte en urgence, à 3 h du matin, quand une alerte tombe. Une note d'architecture se lit posément, en amont d'une décision. Les ranger au même endroit oblige le lecteur pressé à trier lui-même, exactement quand il n'en a pas le temps.

ProblèmeConséquence
Tout mélangé dans un wikiImpossible de trouver l'info en urgence
Runbook et architecture dans le même documentLe lecteur se perd et saute des sections
Pas de structure définieChacun documente à sa façon
Doublons partoutOn ne sait plus quelle version est à jour

La documentation opérationnelle se range en cinq familles : cartographie, architecture, procédures, référentiel et historique. Chacune répond à une question différente, a un format adapté et suit son propre cycle de mise à jour. Les deux onglets ci-dessous résument cette répartition, d'abord par question, puis par analogie avec une bibliothèque.

Les cinq familles de documentation : cartographie (inventaires, dépendances), architecture (diagrammes, flux), procédures (runbooks, checklists, playbooks), référentiel (annuaires, conventions, accès) et historique (ADR, postmortems, changelog).5 familles de docCartographiequ'est-ce qui existe ?Architecturecomment ça marche ?Procédurescomment agir ?Référentielqui ? quels accès ?Historiquepourquoi ce choix ?inventaires, listes,dépendancesdiagrammes, schémas,fluxrunbooks, checklists,playbooksannuaires, conventions,accèsADR, postmortems,changelog
Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %
FamilleQuestionQuand consulterFormat type
CartographieQu'est-ce qui existe ?Comprendre le paysageInventaires, listes
ArchitectureComment ça fonctionne ?Diagnostic, onboardingDiagrammes, schémas
ProcéduresComment agir ?Incident, opérationRunbooks, checklists
RéférentielQui ? Quels accès ? Quelles règles ?Organisation, droitsAnnuaires, conventions
HistoriquePourquoi ce choix ?Comprendre le passéADR, postmortems

Famille 1 : la cartographie, qu'est-ce qui existe ?

Section intitulée « Famille 1 : la cartographie, qu'est-ce qui existe ? »

La cartographie recense tout ce qui compose votre système : serveurs, services, bases de données, API, connexions entre composants. C'est l'inventaire complet de votre infrastructure, la première page qu'on ouvre pour savoir de quoi on parle.

Ce qu'elle contient :

  • Inventaire des serveurs (nom, rôle, IP, environnement)
  • Liste des services (nom, fonction, owner, criticité)
  • Registre des bases de données (type, version, connexions)
  • Catalogue des API (endpoints, authentification)
  • Matrice des dépendances (qui appelle qui)

Le format qui convient est le tableau structuré : une ligne par service, une colonne par information qu'on cherche en urgence, notamment le propriétaire (owner), la criticité et les dépendances.

| Service | Owner | Criticité | Dépendances | SLA |
|---------|-------|-----------|-------------|-----|
| auth-api | @team-identity | Tier 1 | PostgreSQL, Redis | 99.9% |
| payment-service | @team-payment | Tier 1 | auth-api, Stripe | 99.95% |
| notification | @team-comm | Tier 2 | auth-api, SendGrid | 99% |

Cycle de mise à jour : à chaque changement (nouveau service, migration, décommissionnement).

Famille 2 : l'architecture, comment ça fonctionne ?

Section intitulée « Famille 2 : l'architecture, comment ça fonctionne ? »

L'architecture explique comment les composants interagissent : les flux de données, les protocoles utilisés, les frontières réseau. C'est la vision technique de votre système, celle qu'on lit pour diagnostiquer une panne ou accueillir un nouveau collègue.

Ce qu'elle contient :

  • Diagrammes de composants (boîtes et flèches montrant les services)
  • Flux de données (utilisateur → API → base de données)
  • Diagrammes réseau (VLAN, pare-feu, répartiteurs de charge)
  • Schémas de déploiement (Kubernetes, VM, cloud)

Le format recommandé associe des diagrammes simples à un texte explicatif. Privilégiez les formats textuels comme Mermaid ou PlantUML, qui se versionnent avec le reste, ou des outils visuels faciles à maintenir.

Architecture 3-tiers : le trafic Internet arrive sur un load balancer HAProxy, qui répartit vers trois serveurs web, Web-01 à Web-03, tous reliés à une base PostgreSQL.InternetLoad BalancerHAProxyWeb-01Web-02Web-03PostgreSQL
Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

Pour choisir le niveau de détail, le modèle C4 de Simon Brown propose quatre niveaux de diagrammes, du plus large au plus fin. Chaque niveau vise un public différent : on documente presque toujours les deux premiers, rarement le dernier.

NiveauPublicDétail
ContexteTousLe système et ses interactions externes
ConteneursDéveloppeursApplications, bases, files d'attente
ComposantsÉquipe techniqueModules internes d'un service
CodeContributeursClasses, fonctions (rarement documenté)

Cycle de mise à jour : lors de changements structurels, avec une revue annuelle au minimum.

Les procédures décrivent les actions à effectuer pour des opérations courantes ou des incidents. C'est ce qu'on consulte à 3 h du matin : elles doivent donc se suivre sans réfléchir, étape par étape. La leçon consacrée aux runbooks détaille leur rédaction, celle sur les checklists la façon de ne rien oublier.

TypeUsageExemple
RunbooksIncidents, opérations techniquesRedémarrer le service auth
ChecklistsNe rien oublierChecklist de déploiement en prod
PlaybooksScénarios complexes multi-acteursGestion d'un incident majeur
TroubleshootingDiagnostic pas à pas« Erreur 500 sur /api/users »

Le format recommandé est une suite d'étapes numérotées, chacune suivie du résultat attendu, puis d'une rubrique « Si ça ne marche pas » qui donne les journaux à lire et le contact d'escalade.

## Redémarrer le service auth
### Prérequis
- Accès SSH au serveur auth-prod-01
- Droits sudo
### Étapes
1. Vérifier l'état actuel
```bash
systemctl status auth-service
```
**Attendu** : "active (running)" ou "failed"
2. Redémarrer le service
```bash
sudo systemctl restart auth-service
```
3. Vérifier le redémarrage
```bash
systemctl status auth-service
```
**Attendu** : "active (running)" depuis moins d'une minute
### Si ça ne marche pas
- Logs : `journalctl -u auth-service -n 100`
- Escalade : @oncall-platform

Cycle de mise à jour : après chaque incident où la procédure a échoué ou était incomplète.

Famille 4 : le référentiel, qui contacter et quelles règles ?

Section intitulée « Famille 4 : le référentiel, qui contacter et quelles règles ? »

Le référentiel centralise les informations organisationnelles : contacts, droits d'accès, conventions, politiques. Il répond aux questions « qui appeler ? » et « a-t-on le droit ? », qui reviennent dans presque chaque incident.

TypeContenuExemple
Annuaire équipesQui fait quoi, astreinte, escalade« L'équipe Platform gère Kubernetes »
Matrice des accèsQui a accès à quoi« Seuls les SRE ont accès à la prod »
ConventionsStandards de nommage, formats« Les services : {domaine}-{fonction} »
PolitiquesRègles d'entreprise« Tout changement en prod passe par une PR »
GlossaireDéfinition des termes métier« Un 'tenant' est un client B2B »

Le format recommandé reste le tableau et la liste structurée : un annuaire se parcourt d'un coup d'œil, une convention de nommage se vérifie ligne par ligne.

## Annuaire des équipes
| Équipe | Responsabilités | Contact Slack | Astreinte |
|--------|-----------------|---------------|-----------|
| Platform | Kubernetes, CI/CD, Observabilité | #team-platform | @oncall-platform |
| Identity | Auth, SSO, Permissions | #team-identity | @oncall-identity |
| Data | Bases de données, Analytics | #team-data | @oncall-data |
## Conventions de nommage
| Ressource | Format | Exemple |
|-----------|--------|---------|
| Serveur | {env}-{role}-{numero} | prod-web-01 |
| Service | {domaine}-{fonction} | payment-api |
| Base de données | {service}-{type}-{env} | auth-postgres-prod |

Chaque partie du référentiel vieillit à sa propre vitesse, d'où des rythmes différents :

  • Annuaire : à chaque arrivée ou départ
  • Accès : revue trimestrielle (audit sécurité)
  • Conventions : rarement (décision collective)

L'historique conserve la mémoire des décisions et des événements, pour éviter de répéter les erreurs et comprendre le contexte d'un choix ancien. On y trouve surtout les ADR (Architecture Decision Records, une fiche courte par décision technique) et les postmortems, l'analyse écrite d'un incident.

TypeUsageExemple
ADRDocumenter une décision technique« Pourquoi PostgreSQL plutôt que MySQL »
PostmortemsAnalyser un incident« Panne du 15 mars 2024 »
ChangelogHistorique des changements« v2.3.0 : ajout cache Redis »
Journal migrationsSuivi des migrations« Migration Oracle → PostgreSQL »

Le modèle d'ADR popularisé par Michael Nygard tient en cinq rubriques : titre, contexte, décision, statut et conséquences. L'exemple ci-dessous y ajoute les options écartées, utiles pour ne pas rouvrir le débat ; la leçon ADR en détaille l'écriture.

# ADR-003 : Adoption de PostgreSQL pour les sessions
**Date** : 2024-01-15
**Statut** : Accepté
**Décideurs** : @alice, @bob, @charlie
## Contexte
Nous devons stocker les sessions utilisateurs avec haute disponibilité
et transactions ACID.
## Options considérées
| Option | Avantages | Inconvénients |
|--------|-----------|---------------|
| Redis | Rapide, simple | Durabilité et transactions limitées |
| PostgreSQL | ACID, SQL, réplication native | Plus lent |
| DynamoDB | Serverless, scalable | Dépendance à un fournisseur |
## Décision
PostgreSQL : ACID obligatoire, équipe familière.
## Conséquences
- [+] Cohérence des données garantie
- [-] Latence légèrement supérieure
- [Action] Mettre en place PgBouncer

Chaque type de document historique a sa propre règle de vie. Un ADR n'est jamais réécrit : quand une décision est renversée, on garde l'ancien en le marquant remplacé (superseded) et on en écrit un nouveau.

  • ADR : immuables (nouvelle décision = nouvel ADR)
  • Postmortems : rédigés dans un délai court fixé par l'équipe, tant que les faits sont frais
  • Changelog : à chaque release

Pourquoi un document ne doit-il couvrir qu'une seule famille ?

Section intitulée « Pourquoi un document ne doit-il couvrir qu'une seule famille ? »

Un document ne couvre qu'une seule famille parce que chaque famille a son public, son moment de lecture et son cycle de mise à jour. Le piège le plus courant est de mélanger les familles dans un même document : le runbook noyé dans une page d'architecture n'est plus trouvé en urgence.

À éviterBonne pratique
Service Overview avec runbooks intégrésService Overview + liens vers des runbooks séparés
ADR avec procédure de migrationADR (décision) + runbook (procédure)
Annuaire avec architecture réseauPage Équipes + page Architecture réseau
Postmortem avec checklist intégréePostmortem + action « créer la checklist »

Trois raisons justifient cette séparation, et chacune suffit à elle seule :

  • Cycle de mise à jour différent : un annuaire change souvent, une architecture rarement
  • Public différent : la personne d'astreinte veut la procédure, pas l'historique des décisions
  • Recherche facilitée : on sait où chercher selon le besoin

Comment mettre en place sa documentation, pas à pas ?

Section intitulée « Comment mettre en place sa documentation, pas à pas ? »

Mettre en place une documentation opérationnelle se fait en cinq étapes : inventorier l'existant, choisir un outil central, définir une structure, écrire les pages essentielles des services critiques, puis organiser leur maintenance. Inutile de tout couvrir d'emblée : on commence par ce qui sert en incident.

  1. Faire l'inventaire de l'existant

    Où se trouve la documentation actuelle ? Wiki ? Notion ? README ? Post-its ? Qu'est-ce qui est à jour ? Qu'est-ce qui manque cruellement ?

    Exercice : listez toutes les fois où vous avez dû « demander à quelqu'un » ces dernières semaines. Chaque question récurrente est un candidat à documenter.

  2. Choisir un outil central

    CritèrePourquoi c'est important
    Recherche efficaceSi on ne trouve pas, ça n'existe pas
    VersioningSavoir ce qui a changé et quand
    CollaborationPlusieurs contributeurs
    AccessibilitéDisponible même en cas d'incident

    Options : wiki (Confluence, Notion), docs-as-code (MkDocs, Docusaurus), README dans Git.

  3. Définir une structure claire

    • RépertoireServices/
      • Répertoireservice-paiement/
        • overview.md
        • architecture.md
        • Répertoirerunbooks/
          • …
    • RépertoireInfrastructure/
      • reseau.md
      • serveurs.md
    • RépertoireProcedures-transverses/
      • gestion-incidents.md
      • deploiement.md
    • RépertoireDecisions-ADR/
      • 001-choix-postgresql.md
    • RépertoireContacts-et-acces/
      • equipe.md
      • acces.md
  4. Créer les pages essentielles

    Pour chaque service critique :

    PagePourquoi c'est prioritaire
    Vue d'ensemblePoint d'entrée, criticité
    ArchitectureComprendre comment ça marche
    DépendancesÉvaluer l'impact d'une panne
    RunbooksCe qu'on consulte à 3 h du matin
    ContactsQui appeler en cas d'urgence

    Commencez par les services les plus critiques. La page d'entrée d'un service suit le modèle Service Overview.

  5. Maintenir à jour

    Règle 1 : à chaque changement, la documentation se met à jour dans le même geste, pas « quand on aura le temps ».

    Règle 2 : revue trimestrielle des pages clés.

    Règle 3 : chaque page a un propriétaire (owner).

Dans une organisation à plusieurs équipes, la documentation devient un terrain vague si personne n'en est clairement responsable. Le modèle RACI répartit les rôles autour de chaque document, et le fichier CODEOWNERS permet d'en automatiser une partie dans Git.

Workflow RACI : le rédacteur (Responsible) rédige, le relecteur (Consulted) relit, l'owner (Accountable) valide, puis le document est publié et l'équipe (Informed) est prévenue.rédigerelitvalideRédacteurR, ResponsibleRelecteurC, ConsultedOwnerA, AccountablePubliéÉquipeI, Informed
Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

Le sigle RACI désigne quatre rôles. Le Responsible fait le travail, l'Accountable valide et répond du résultat, le Consulted donne son avis avant publication, l'Informed est prévenu après coup.

LettreRôleCe que ça veut dire
RResponsibleFait le travail (rédige, met à jour)
AAccountableValide et répond du résultat final
CConsultedConsulté avant de finaliser (expert, relecteur)
IInformedInformé après (ne participe pas, doit savoir)

Une matrice RACI croise les activités (en lignes) et les rôles (en colonnes). Lisez-la ligne par ligne : chaque activité porte exactement un A, ici toujours le Tech Lead propriétaire de la page, et au moins un R.

ActivitéOwner (Tech Lead)Dev (service)ArchiÉquipe
Créer la page serviceARCI
Mettre à jour après changementARCI
Valider la publicationA-C-
Revue trimestrielleARC-
Signaler une erreurAR-R

Comment automatiser la relecture avec CODEOWNERS ?

Section intitulée « Comment automatiser la relecture avec CODEOWNERS ? »

En docs-as-code, le fichier CODEOWNERS désigne, par chemin, les propriétaires dont la revue est demandée automatiquement sur chaque pull request. Sur GitHub, une équipe s'écrit @organisation/equipe et doit avoir un accès en écriture au dépôt ; GitLab propose un fichier du même nom.

# Documentation infrastructure : l'équipe ops doit valider
/docs/infrastructure/ @mon-org/ops-team
# Documentation API : l'équipe backend doit valider
/docs/api/ @mon-org/backend-team
# Documentation sécurité : l'équipe sécu doit valider
/docs/security/ @mon-org/security-team

Attention au piège : sur GitHub, CODEOWNERS demande la revue mais ne bloque pas la fusion à lui seul. Il faut activer l'option Require review from Code Owners dans la règle de protection de la branche pour que la PR ne puisse pas être fusionnée sans l'approbation du propriétaire. C'est alors du RACI automatisé.

Les conflits se règlent avec les rôles déjà posés : l'Accountable tranche, un désaccord technique s'escalade et sa conclusion s'écrit dans un ADR, un doublon se fusionne sous un seul propriétaire.

SituationSolution
Deux équipes veulent modifier le même documentL'Accountable tranche
Désaccord sur le contenu techniqueEscalade à l'architecte, décision documentée (ADR)
Documentation en doublonFusionner, désigner un seul owner, supprimer le doublon
Personne ne veut maintenir un documentAssigner un owner explicitement, ou archiver

Les erreurs les plus fréquentes viennent d'un outil éclaté, d'une mise à jour laissée hors du workflow, ou d'un propriétaire absent ou flou. Le tableau associe chaque anti-pattern à son symptôme et à sa parade.

Anti-patternCe qui se passeComment l'éviter
Documentation fantômeExiste mais personne ne sait oùUn seul outil, structure claire
Documentation obsolèteSchéma de 2019, infra changée trois foisMise à jour intégrée au workflow
Trop de détails50 pages que personne ne litAller à l'essentiel
Pas assez de détails« Voir avec Jean-Pierre »Si c'est critique, c'est documenté
Silos documentairesChaque équipe son wikiUn outil commun ou des liens croisés
Pas de rechercheImpossible de trouverRecherche plein texte, bons titres
Pas de propriétaire« Doc de personne = doc de tout le monde »Un owner explicite par section
Ownership flou« Équipes X et Y responsables »Un seul Accountable
Validation sans finCinq approbateurs, trois semaines pour une coquilleSimplifier le workflow

Par quoi commencer : les checklists récapitulatives

Section intitulée « Par quoi commencer : les checklists récapitulatives »

Ces trois listes servent d'auto-diagnostic. La première fixe le minimum viable quand on part de zéro, la deuxième décrit une organisation mature, la troisième se relit avant chaque nouveau document.

Si vous partez de zéro, commencez par ces éléments : ils couvrent les services critiques, les incidents courants et l'annuaire, soit ce dont l'astreinte a besoin dès la première nuit.

  • Outil de documentation choisi et accessible à tous
  • Cartographie des services (liste avec criticité)
  • Schéma réseau (comment les machines sont connectées)
  • Runbooks pour les incidents les plus courants
  • Annuaire (qui appeler en cas de problème)
  • Recherche fonctionnelle
  • Chaque service critique a au moins une page
  • Owners identifiés pour chaque section

Une fois les bases en place, cette liste décrit une cible : documentation versionnée, revues planifiées, gouvernance écrite. Chaque case vide désigne un chantier, pas un échec.

  • ADR pour les décisions techniques importantes
  • Versioning (Git ou historique du wiki)
  • Revues trimestrielles planifiées
  • Modèles pour créer de nouvelles pages
  • Boucle de retour (signaler une doc obsolète)
  • Accès en incident (doc accessible si l'infra est en panne)
  • CI/CD de la documentation (build et déploiement automatiques)
  • Matrice RACI documentée
  • CODEOWNERS configuré et revue obligatoire activée (si docs-as-code)
  • Onboarding des contributeurs documenté

Avant d'écrire une nouvelle page, cinq questions de contrôle évitent le doublon et le document orphelin : chacune renvoie à une règle vue plus haut, la famille, l'emplacement, le propriétaire et le rythme de mise à jour.

  • Quelle famille ? (Cartographie / Architecture / Procédures / Référentiel / Historique)
  • Où le ranger ? (dossier correspondant)
  • Existe-t-il déjà ? (éviter les doublons)
  • Qui va le maintenir ? (owner défini)
  • Quel cycle de mise à jour ?
  1. Une info non documentée n'existe pas : si elle n'est que dans la tête de Jean-Pierre, elle disparaît avec lui.

  2. Cinq familles distinctes : cartographie, architecture, procédures, référentiel, historique. Ne les mélangez pas.

  3. Un document = une famille : cycles de mise à jour et publics différents.

  4. Un ADR ne se réécrit pas : une décision renversée donne un nouvel ADR, l'ancien est marqué remplacé.

  5. Un seul Accountable par document : « tout le monde responsable » revient à personne.

  6. Mise à jour intégrée au workflow : pas de merge sans doc à jour, et CODEOWNERS ne bloque la fusion que si la revue obligatoire est activée.

  7. Commencez petit : services critiques, runbooks des incidents courants, annuaire. Le reste se construit ensuite.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Les références ci-dessous fondent les méthodes de cette leçon : le cadre de classement Diátaxis, le format ADR de Michael Nygard, le modèle C4, le RACI et la documentation officielle de CODEOWNERS.

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn