3.7 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Directus | 2026-06-08 | 2026-06-08 | app |
|
high | false |
|
📰 Directus
Headless CMS et backend open source qui s'installe par-dessus n'importe quelle base SQL existante et expose une API instantanée.
📊 Métadonnées
| Champ | Valeur |
|---|---|
| Nom | Directus |
| Slug | directus |
| Catégorie principale | cat-content-management |
| Langage | lang_id=8 |
| Stars | ⭐ 36003 |
| Dernière MAJ | 2026-06-05 |
| Repo | github.com/directus/directus |
| Site | directus.com |
📝 Description
Directus est un headless CMS et plateforme de données qui s'installe par-dessus une base SQL (PostgreSQL, MySQL, SQLite, etc.) et l'enveloppe avec une API REST + GraphQL automatique, un admin panel complet et un studio no-code pour les non-développeurs. C'est l'un des projets open source les plus actifs de sa catégorie, avec plus de 36 000 étoiles sur GitHub.
L'interface permet de modéliser des collections et champs, gérer des fichiers, définir des permissions fines par rôle, créer des flows d'automatisation et exposer des webhooks. L'extension via hooks JavaScript/TypeScript et apps custom permet de l'adapter à quasiment tous les cas d'usage : blog, intranet, back-office produit, headless commerce, dashboard BI, etc.
🐳 Installation Docker
# docker-compose.yml minimal
services:
directus:
image: directus/directus:latest
container_name: directus
restart: unless-stopped
ports:
- "8055:8055"
volumes:
- ./data:/directus/database
- ./uploads:/directus/uploads
- ./extensions:/directus/extensions
environment:
- KEY=replace-with-random-32-chars
- SECRET=replace-with-random-string
- DB_CLIENT=sqlite3
- DB_FILENAME=/directus/database/data.db
- ADMIN_EMAIL=admin@example.com
- ADMIN_PASSWORD=changeme
- WEBSOCKETS_ENABLED=true
⚠️ Adapte image/port/volumes selon le README officiel : https://github.com/directus/directus
🔀 Reverse Proxy (Traefik)
services:
directus:
image: directus/directus:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.directus.rule=Host(`directus.example.com`)"
- "traefik.http.routers.directus.entrypoints=websecure"
- "traefik.http.routers.directus.tls.certresolver=letsencrypt"
- "traefik.http.services.directus.loadbalancer.server.port=8055"
🔧 Configuration
- Connexion à la base SQL existante via variables d'environnement
DB_* - Création du premier admin via
ADMIN_EMAIL/ADMIN_PASSWORDau premier démarrage - Extensions : marketplace in-app pour installer dashboards, interfaces, hooks
🔀 Alternatives
Open source :
- Strapi (Node.js, headless CMS leader)
- Payload (Next.js, TypeScript-first)
- Pocketbase (Go, single binary, SQLite)
Propriétaires :
- Contentful (SaaS, leader enterprise)
- Sanity (SaaS, structure flexible)
🔒 Sécurité
- Authentification par email/mot de passe + SSO (OAuth2, LDAP, SAML) via extensions
- Permissions granulaires par rôle, champ et item
- Rate-limiting intégré, support 2FA
- À servir derrière HTTPS ; KEY et SECRET doivent être générés aléatoirement
📚 Ressources
🔗 Pages Liées
- cat-content-management — Catégorie content-management
- Catalogue-Self-Hosted — Hub principal