Retour

Synchroniser la configuration de Strapi avec le plugin Config Sync

Synchroniser la configuration de Strapi avec le plugin Config Sync

En vue de moderniser le site web d'un client, comme par exemple notre projet ADEME Pacte industrie, nous avons exploré cet été les possibilités offertes par Strapi ! Les technologies web évoluent constamment, et dans cette dynamique, cet outil se positionne comme une solution technique robuste pour la gestion de contenu, avec son approche CMS Headless.

Strapi offre :

·        Une liberté totale dans la structure de données,

·        Une flexibilité côté frontend,

·        Une API REST/GraphQL puissante,

·        Et une communauté active avec de nombreux plugins.

Cependant, bien qu'il permette d'exporter les types de contenu, certains éléments importants de configuration stockés en base de données peuvent être laissés de côté : rôles d'administration, préférences utilisateur, paramètres du CMS, etc.

Pourquoi utiliser Config Sync ?

C'est ici que le plugin Config Sync prend tout son sens. Il permet d'étendre les fonctionnalités de synchronisation en incluant les éléments de configuration à travers des fichiers JSON, exportables depuis l'interface ou via la ligne de commande.

Avec Config Sync,on peut :

·        Exporter les données de configuration vers un répertoire versionné,

·        Les ajouter au dépôt Git du projet,

·        Et synchroniser facilement les environnements entre développement, préproduction et production.

Ce plugin offre aussi une prévisualisation des différences entre le répertoire de config et la base de données.

👉 Pour plus d'infos, rendez-vous sur la page officielle du plugin.

Source : https://market.strapi.io/plugins/strapi-plugin-config-sync

 

Mise en place de Config Sync

1. Activation dans config/plugins.ts

Voici un exemple de configuration possible :

export default ({ env }) => ({ 
  // ...
  'config-sync': { 
    enabled: true, 
    config: { 
      syncDir: "config/sync/", 
      minify: false, 
      soft: false, 
      importOnBootstrap: false, 
      customTypes: [], 
      excludedTypes: [], 
      excludedConfig: [ 
        "core-store.plugin_users-permissions_grant", 
        "core-store.plugin_upload_metrics", 
        "core-store.strapi_content_types_schema", 
        "core-store.ee_information", 
      ], 
    }, 
  }, 
});

Cette configuration permet de cibler précisément ce qu'on souhaite exclure du processus de synchronisation, tout en gardant une structure claire et maintenable dans Git.

2. Utilisation via la CLI

Une fois installé, le plugin expose des commandes très simples dans package.json :

# Exporter la configuration actuelle vers le dossier
npm run cs export

# Importer la configuration dans la base de données
npm run cs import

# Afficher les différences entre la config locale et la BDD
npm run cs diff

Ces commandes sont essentielles pour garantir que la configuration est homogène entre les environnements.

Points positifs et négatifs

Avantages

·        📁 Configuration versionnable : facilité de travail en équipe.

·        🔁 Synchronisation claire entre les environnements.

·        🔍 Vue différentielle pratique pour la relecture.

·        🧱 Plugin officiel et bien documenté.

Inconvénients

·        🛠 Prise en main nécessite un peu de configuration.

·        ⚠️ Attention aux exclusions : certains types sensibles peuvent être oubliés.

Conclusion

Le plugin ConfigSync est une solution idéale pour gérer proprement et efficacement la configuration dans un projet Strapi. Il s'intègre naturellement au workflow Git et permet de synchroniser les configurations aisément.

Si vous souhaitez en savoir plus, n’hésitez pas à nous contacter ou découvrir nos expertises techniques.

D’autres projets à découvrir