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.
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
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.
Une fois installé, le plugin expose des commandes très simples dans package.json :
# Exporter la configuration actuelle vers le dossiernpm run cs export
# Importer la configuration dans la base de donnéesnpm run cs import
# Afficher les différences entre la config locale et la BDDnpm run cs diff
Ces commandes sont essentielles pour garantir que la configuration est homogène entre les environnements.
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.
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.