Service auto-hébergé
strapi/strapi avatar
strapi/strapi

Strapi : un CMS headless open source en JavaScript/TypeScript

CMS headless auto-hébergé en JavaScript et TypeScript qui transforme des modèles de contenu définis visuellement en API REST et GraphQL, avec rôles, médiathèque et i18n intégrés.

73 165 étoiles9 869 forksTypeScriptLa licence varie

En bref

De quoi s’agit-il ?
Ce que propose le dépôt Strapi : modélisation de contenu, API générées et pipeline de requêtes en couches.
À qui s’adresse-t-il ?
Strapi est un CMS headless auto-hébergé avec un constructeur visuel de types de contenu, des API REST et GraphQL générées automatiquement, et une architecture backend qui achemine les requêtes à travers middlewares, contrôleurs et services. Le README renvoie à une documentation externe pour les options d'installation, les exigences et la migration.
Puis-je l’utiliser commercialement ?
À vérifier. La licence de ce dépôt n’entre pas dans les catégories que nous classons automatiquement : lisez son fichier LICENSE avant tout usage commercial.
Est-il encore maintenu ?
Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Ce qu'est Strapi et ce qu'il offre

Strapi est un CMS headless open source et auto-hébergé écrit en JavaScript et TypeScript. Selon le README, il permet aux développeurs de créer rapidement des API de contenu tout en offrant aux créateurs de contenu une interface d'édition conviviale. Les modèles de contenu sont conçus visuellement avec le Content-Type Builder, et pour chaque type de contenu, Strapi génère à la fois des API REST et GraphQL. L'ensemble de fonctionnalités par défaut comprend des rôles et permissions granulaires, une médiathèque, l'internationalisation et un workflow de brouillon et de publication. Le README mentionne également un support TypeScript de première classe et des options de base de données flexibles couvrant SQLite, PostgreSQL, MySQL et MariaDB. Un système de plugins extensible et un tableau de bord d'administration personnalisable complètent l'offre de base. Ce sont les fonctionnalités que le README nomme directement ; tout ce qui va au-delà, comme les benchmarks de performance ou l'utilisation en production, n'est pas établi dans le matériel source.

Comment les requêtes traversent le backend

Le README décrit une architecture backend en couches pour gérer les requêtes : Routes, Middlewares, Controllers et Services, dans cet ordre. Chaque requête entrante passe par ces couches. Le README inclut un diagramme issu de la documentation officielle et renvoie à une page de personnalisation du backend pour plus de détails. Le comportement exact de chaque couche n'est pas précisé dans le README lui-même ; il identifie uniquement la séquence et oriente les lecteurs vers la documentation. C'est la seule explication architecturale de la source, donc toute discussion plus approfondie sur le routage ou la logique des middlewares devrait être vérifiée par rapport à la documentation liée.

Créer un projet avec la commande de démarrage rapide

Pour créer un nouveau projet, le README fournit une seule commande de démarrage rapide : npx create-strapi@latest my-project. Il indique que cela génère un tout nouveau projet avec les fonctionnalités par défaut : authentification, permissions, gestion de contenu, constructeur de types de contenu et téléversement de fichiers. Pour les options d'installation complètes, y compris TypeScript et le drapeau --quickstart, le README renvoie à la documentation d'installation CLI. Le README indique également que les exigences matérielles et logicielles, telles que le système d'exploitation, Node.js et les bases de données, sont couvertes dans une page de documentation distincte sur les exigences. Ces exigences ne sont pas listées dans le dépôt lui-même, donc les environnements pris en charge restent une question de vérification pour la documentation.

Support Docker et outils communautaires

Le README indique explicitement que Strapi ne fournit pas d'images Docker officielles. Au lieu de cela, les utilisateurs construisent les leurs à partir de leur projet. La méthode recommandée est un outil CLI communautaire invoqué via npx @strapi-community/dockerize@latest, qui génère un Dockerfile et un docker-compose.yml adaptés au projet. Le README renvoie au dépôt strapi-tool-dockerize et à la documentation d'installation Docker pour les Dockerfiles, les exemples Compose et les builds de production. Il ne fournit aucun Dockerfile ou fichier compose officiel dans ce dépôt, donc le contenu exact de ces fichiers générés dépasse la portée du README.

Strapi Cloud, LaunchPad et la démo en direct

Pour l'hébergement en production, le README présente Strapi Cloud comme la plateforme gérée officielle, la décrivant comme ayant zéro DevOps, une base de données intégrée, une médiathèque et un CDN. Il dirige les utilisateurs vers cloud.strapi.io pour le déploiement. Le README décrit également LaunchPad comme un modèle de démo officiel combinant Strapi avec Next.js. Un projet Strapi hébergé avec des données d'exemple est disponible sur strapi.io/demo, et le dépôt LaunchPad peut être récupéré localement. Le README renvoie au dépôt GitHub LaunchPad mais n'explique pas comment exécuter le modèle ni ce qu'il contient au-delà de la combinaison avec Next.js.

Canaux communautaires, contribution et feuille de route

Le README énumère plusieurs canaux communautaires : Discord pour les discussions en direct, GitHub Discussions pour les questions et le partage de projets, GitHub pour les rapports de bogues et les contributions, un guide de contribution sur contributor.strapi.io, un dépôt de contenu communautaire pour les vitrines et tutoriels, un portail de retours pour la feuille de route et les demandes de fonctionnalités, ainsi que des comptes Twitter et YouTube. Il mentionne également un guide de migration dans la documentation et pointe vers une feuille de route sur feedback.strapi.io. Les instructions de contribution du README se limitent à ces liens ; aucun workflow de contribution détaillé n'est décrit dans le dépôt lui-même.

Licence : édition communautaire et édition entreprise

L'extrait de licence distingue deux éditions. Si vous accédez ou utilisez un logiciel sous un répertoire « ee/ », il s'agit de l'édition entreprise, et elle n'est pas sous licence MIT Expat ; elle est couverte par un fichier de licence séparé à strapi/packages/core/admin/ee/LICENSE, sauf si vous avez un accord alternatif signé ou un abonnement cloud. Pour l'édition communautaire, c'est-à-dire le logiciel en dehors du répertoire « ee/ », la licence accorde des droits sous la licence MIT Expat, permettant l'utilisation, la copie, la modification, la fusion, la publication, la distribution, la sous-licence et la vente de copies, sous réserve d'inclure l'avis de droit d'auteur et d'autorisation. La partie MIT Expat comprend l'avertissement standard selon lequel le logiciel est fourni « tel quel » sans garantie d'aucune sorte, et que les auteurs ou titulaires du droit d'auteur ne sont pas responsables des réclamations ou dommages. Le texte de licence ne traite pas du support de sécurité, des engagements de maintenance ou des garanties de compatibilité ; ces sujets ne sont pas couverts par l'extrait.

Conclusion éditoriale

Strapi est un CMS headless auto-hébergé avec un constructeur visuel de types de contenu, des API REST et GraphQL générées automatiquement, et une architecture backend qui achemine les requêtes à travers middlewares, contrôleurs et services. Le README renvoie à une documentation externe pour les options d'installation, les exigences et la migration. La licence distingue une édition communautaire sous licence MIT Expat d'une édition entreprise sous licence distincte, et l'édition communautaire comporte l'avertissement standard sans garantie.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté