Files
wiki/Catalogue-Self-Hosted/apps/app-directus.md
T
2026-06-09 18:40:21 +02:00

112 lines
3.7 KiB
Markdown

---
title: Directus
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, app, content-management, auto-hebergement]
confidence: high
contested: false
sources:
- https://selfh.st/apps/?search=directus
- https://github.com/directus/directus
---
# 📰 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](https://github.com/directus/directus) |
| **Site** | [directus.com](https://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
```yaml
# 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)
```yaml
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_PASSWORD` au 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
- [selfh.st/apps/?search=directus](https://selfh.st/apps/?search=directus)
- [GitHub](https://github.com/directus/directus)
- [Site officiel](https://directus.com)
## 🔗 Pages Liées
- [[cat-content-management]] — Catégorie content-management
- [[Catalogue-Self-Hosted]] — Hub principal