FR
Se connecter Crée ton compte

Comment installer Directus sur Saplo (headless CMS)

Contentful peut facturer des milliers d'euros par mois pour un projet avec du trafic réel, car vous payez pour chaque appel API, et non pour l'hébergement du contenu lui-même. Directus est un CMS headless open source qui génère un panneau d'administration directement à partir du schéma de votre base de données et expose des API REST et GraphQL sans écrire de backend, le tout hébergé sur votre propre Box sans limite de requêtes.

Grzegorz Kalmus ·

Une agence qui crée un site web ou une application sur mesure pour un client se pose tôt ou tard la question de savoir où stocker le contenu : textes, photos de produits, articles de blog, données affichées sur le front-end. Contentful résout ce problème, mais il facture en fonction du nombre d'appels API, de sorte que la facture augmente avec le trafic sur le site du client, même si le contenu lui-même ne change pas. Directus est un CMS headless open source qui fait la même chose sans compteur de requêtes : tu connectes une base de données, tu obtiens un panneau d'administration prêt à l'emploi, généré automatiquement à partir du schéma de cette base de données, ainsi que des API REST et GraphQL instantanément. Voici comment installer Directus sur Saplo, étape par étape.

Pourquoi choisir Directus plutôt que Contentful

Contentful et les autres CMS headless payants présentent deux inconvénients majeurs pour les agences qui travaillent avec plusieurs clients à la fois :

  • La facturation basée sur le nombre d'appels API - Plus le site d'un client génère du trafic, plus la facture mensuelle est élevée, et les coûts s'accumulent avec plusieurs projets sur le même compte.
  • Le modèle de contenu doit être entièrement créé manuellement dans le Panneau du fournisseur - Directus, en revanche, lit un schéma de base de données existant et génère automatiquement un Panneau d'administration à partir de celui-ci ; les collections correspondent aux tables et les champs aux colonnes.

Directus n'est pas une base de contenu séparée du reste du système, mais une couche sur ta propre base de données. Si une agence a déjà un modèle de données conçu pour un projet spécifique, Directus l'expose via une API au lieu de la forcer à réécrire la structure dans un format tiers.

Exigences

Pour installer Directus sur Saplo, tu as besoin :

  • D'une Box avec Docker en cours d'exécution (le moteur l'active automatiquement lors de l'installation depuis le catalogue, la virtualisation imbriquée est requise dans le conteneur, ce que Saplo propose par défaut),
  • D'un minimum de 1 Go de RAM libre sur la Box et de 3 Go d'espace disque, c'est-à-dire un plan Box M (65 € par an) ou supérieur,
  • D'un domaine ou sous-domaine *.saploapp.pl inclus dans le prix de chaque plan, sous lequel le panneau Directus sera accessible,
  • De ton propre conteneur PostgreSQL, le moteur Saplo n'ayant qu'une base de données partagée pour MySQL/MariaDB, Directus obtient un conteneur dédié postgres:16-alpine dans le même docker-compose, tu n'as pas besoin de configurer quoi que ce soit manuellement.

Installation étape par étape

  1. Dans le Panneau Saplo, accède au Catalogue d'applications et sélectionne Directus (catégorie "Données").
  2. Indique la Box avec au moins 1 Go de RAM disponible sur laquelle Directus doit être installé, ainsi que le domaine ou le sous-domaine sous lequel le panneau fonctionnera.
  3. Confirme l'installation. Le moteur installe un conteneur Postgres dédié et un conteneur Directus à partir de l'image officielle directus/directus, génère des valeurs aléatoires KEY et SECRET requises par l'application, expose le panneau uniquement sur le loopback de la Box et le connecte à Nginx, qui le sert sous le domaine spécifié avec un SSL gratuit. Seul le port 443 est exposé à l'extérieur, pas le port brut du conteneur.
  4. Le conteneur Directus ne démarre qu'après que Postgres a signalé sa disponibilité (healthcheck pg_isready), et le moteur vérifie en outre après docker compose up si le conteneur fonctionne réellement, car le succès de la commande ne signifie pas que le processus interne ne s'est pas arrêté un instant plus tard.
  5. Une fois l'installation terminée, le panneau Directus est accessible sous le domaine spécifié.

Première configuration

L'image de Directus configure automatiquement un compte administrateur lors du premier démarrage sur une base de données vide. Ainsi, comme pour Listmonk ou Paperless-ngx, tu n'as pas besoin de passer par un assistant d'inscription séparé.

  1. Accède à l'adresse du domaine, par exemple cms.saploapp.pl. Tu trouveras les informations de connexion (e-mail et mot de passe généré aléatoirement) dans le fichier DIRECTUS-SETUP.txt dans le répertoire de l'application sur la Box.
  2. Change le mot de passe de l'administrateur immédiatement après la première connexion dans Paramètres -> Utilisateurs. Ne conserve les données du fichier d'installation que jusqu'à ce changement.
  3. Dans Paramètres des données, crée ta première Collection. Directus propose immédiatement des champs pour les cas d'utilisation courants, tels que texte, nombre, image, relation avec une autre collection, et chaque collection correspond à une table dans la base de données Postgres.
  4. Ouvre l'onglet Paramètres -> Rôles et autorisations et configure le rôle Public. Si le frontend doit lire le contenu de l'API sans connexion, c'est ici que tu lui accordes un accès en lecture seule aux collections sélectionnées.
  5. Vérifie les endpoints générés sur https://cms.saploapp.pl/items/<collection_name> (REST) et https://cms.saploapp.pl/graphql (GraphQL) ; les deux fonctionnent immédiatement, sans configuration supplémentaire.

Directus sur Saplo vs. Contentful

Contentful Directus sur Saplo
Modèle tarifaire Le coût augmente avec le nombre d'appels API et d'enregistrements Coût fixe du Box, nombre de requêtes illimité
Modèle de contenu Tu le construis manuellement de zéro dans le panneau du fournisseur Généré automatiquement à partir du schéma de ta base de données
Base de données Fermée, accès uniquement via l'API du fournisseur Ton propre Postgres, tu y as un accès complet
API REST et GraphQL, limite de requêtes dépendante du plan REST et GraphQL sans compteur d'appels
Où sont les données L'infrastructure de Contentful Ton Box

Questions fréquentes

Directus convient-il à un projet qui a déjà une base de données conçue ? Oui, c'est sa force. Le panneau d'administration et l'API sont générés automatiquement à partir du schéma de la base de données existante. Il n'est donc pas nécessaire de réécrire le modèle de données au format imposé par le fournisseur de CMS.

Faut-il installer soi-même la base de données Postgres avant l'installation ? Non, le moteur Saplo installe un conteneur Postgres dédié avec Directus dans le même docker-compose et injecte lui-même les données de connexion. Aucune configuration externe n'est nécessaire pour l'installation elle-même.

L'API Directus a-t-elle une limite sur le nombre d'appels ? Non, contrairement à Contentful ou à des services payants similaires, le nombre de requêtes REST et GraphQL est limité uniquement par les ressources de la Box, et non par un compteur dans la liste de prix.

Est-il possible de connecter Directus à un frontend Next.js ou à une application mobile ? Oui, c'est à cela que sert Directus. Le frontend ou l'application mobile récupère le contenu via l'API REST ou GraphQL générée, et la rédaction du client l'édite dans un panneau séparé, sans accès au code.

Pourquoi les premières données de connexion doivent-elles être recherchées dans un fichier sur la Box, et non dans un e-mail ? Directus crée automatiquement un compte administrateur lors du premier démarrage du conteneur. Le moteur Saplo enregistre le mot de passe généré dans le fichier DIRECTUS-SETUP.txt dans le répertoire de l'application au lieu de l'envoyer par e-mail, selon le même modèle que pour les autres applications avec un compte de démarrage automatique.

Si tu construis un projet avec un frontend séparé et que tu as besoin d'un backend de contenu sans facture pour chaque appel API, écris-nous, nous t'aiderons à choisir la Box adaptée à l'échelle de ton projet.

  • #Agences
  • #API
  • #Directus
  • #Headless CMS
  • #Guide