Die meisten Headless-CMS-Lösungen verwalten Inhalte in einem proprietären Datenbankschema. Das bedeutet: Man ist an das Datenmodell des Herstellers gebunden, und Migrationen sind aufwendig. Directus verfolgt hier einen grundlegend anderen Ansatz. Das System legt sich als transparente API-Schicht über eine beliebige bestehende SQL-Datenbank – das Datenbankschema gehört vollständig dem Nutzer und kann auch ohne Directus direkt genutzt werden. Kein proprietäres Format, kein Vendor-Lock-in.
Was macht Directus einzigartig?
Directus bezeichnet sich selbst als Data Engine – ein System, das sich über eine bestehende Datenbank legt und daraus automatisch eine vollständige API mit grafischer Verwaltungsoberfläche erzeugt. Die Tabellen in der Datenbank sind genau das: echte SQL-Tabellen. Directus speichert Inhalte nicht in einem verkapselten Format – es gibt keine JSON-Blobs, keine proprietären ID-Systeme. Wenn man Directus eines Tages entfernt, bleiben die Daten in der Datenbank unverändert zurück.
Dieser Ansatz hat mehrere Vorteile: Datenbankadministratoren können direkt mit den Tabellen arbeiten. Bestehende Applikationen, die dieselbe Datenbank nutzen, können parallel betrieben werden. Und das Datenbankschema kann außerhalb von Directus verwaltet und migriert werden – zum Beispiel mit Flyway oder Liquibase.
Unterstützte Datenbanken
Directus unterstützt alle gängigen SQL-Datenbanken: PostgreSQL (empfohlen), MySQL / MariaDB, SQLite, Microsoft SQL Server, Oracle und CockroachDB. Das System nutzt den Query-Builder Knex.js als Abstraktionsschicht, was die Portabilität zwischen Datenbanken ermöglicht. Für Produktionsumgebungen mit hohen Anforderungen ist PostgreSQL die bevorzugte Wahl.
Data Studio: Die Verwaltungsoberfläche
Das Directus Data Studio ist eine Vue-3-Anwendung, die das System ausliefert. Es gibt mehrere Ansichts-Module: Content für die Datenverwaltung, Files für die Medienverwaltung, Users für das Nutzer-Management und Settings für die Konfiguration von Datenmodellen, Flows und Berechtigungen. Tabellen und Felder können direkt im Studio erstellt und verwaltet werden – Directus übersetzt diese Aktionen in echte SQL-DDL-Befehle auf der Datenbank.
REST, GraphQL und WebSockets
Für jede Collection (Tabelle) generiert Directus automatisch vollständige CRUD-Endpunkte über die REST API. Filterung, Sortierung, Pagination, tiefe Relationen und Aggregationen sind als Query-Parameter verfügbar. Das Filter-System ist mächtig: verschachtelte Bedingungen, Vergleiche, Suche in verknüpften Tabellen – alles über eine konsistente JSON-Filterstruktur.
Zusätzlich stellt Directus eine automatisch generierte GraphQL-API bereit, ohne dass weitere Konfiguration nötig ist. Besonders relevant für interaktive Anwendungen ist die WebSocket-API, die Echtzeit-Abonnements auf Collections erlaubt: Clients können auf Änderungen in bestimmten Tabellen reagieren, ohne Polling betreiben zu müssen.
@directus/sdk für typsichere API-Zugriffe. Mit dem eingebauten TypeScript-Support generiert die SDK vollständige Typen aus deinem Datenbankschema – keine manuellen Interface-Definitionen nötig.
Flows: Automation ohne Code
Directus Flows sind ein visueller Workflow-Builder für Automatisierungen. Ereignisse wie das Erstellen eines neuen Datensatzes, ein eingehender Webhook oder ein Cron-Zeitplan können Flows auslösen. Einzelne Schritte (Operations) umfassen HTTP-Anfragen, E-Mail-Versand, Transformationen, bedingte Verzweigungen und direkten Datenbankzugriff. Für viele Anwendungsfälle ersetzen Flows externe Automatisierungstools wie Zapier oder n8n.
Rollen und Berechtigungen
Das Berechtigungssystem von Directus ist sehr granular. Pro Rolle kann für jede Collection und jede Operation (create, read, update, delete) eine individuelle Regel definiert werden. Berechtigungen können auch Feldebene-Restriktionen enthalten: Eine Rolle kann lesend auf eine Collection zugreifen, aber bestimmte Spalten wie Passwörter oder interne Notizen sind ausgeblendet. Dynamische Berechtigungen über $CURRENT_USER-Variablen ermöglichen zeilenbasierte Zugriffskontrolle.
Kein Vendor-Lock-in durch offenes Datenbankschema
Der entscheidende Unterschied zu anderen CMS-Lösungen ist der fehlende Vendor-Lock-in. Da Directus das Datenbankschema nicht verändert und keine proprietären Felder hinzufügt, bleibt die Portabilität erhalten. Ein Wechsel von Directus zu einer anderen Lösung oder eine direkte Datenbankanbindung ist jederzeit möglich. Das ist besonders für Unternehmen mit strengen Datenhaltungsanforderungen oder bestehenden Datenbankinfrastrukturen ein entscheidender Vorteil.
Vergleich: Directus vs. Strapi vs. Hasura vs. Supabase
| Merkmal | Directus | Strapi | Hasura | Supabase |
|---|---|---|---|---|
| DB-agnostisch | Ja (PostgreSQL, MySQL, SQLite, MSSQL) | Teilweise (PostgreSQL, MySQL, SQLite) | Primär PostgreSQL | Primär PostgreSQL |
| Bestehende DB wrappen | Ja (Kernfeature) | Nein | Ja | Nein |
| Echtzeit / WebSockets | Ja (Subscriptions) | Nein | Ja (GraphQL Subscriptions) | Ja (Realtime) |
| Self-Hosting | Ja (Docker) | Ja | Ja | Ja (aufwendig) |
| API-Typen | REST + GraphQL + WebSockets | REST + GraphQL | GraphQL | REST + GraphQL + Realtime |
| Lizenz | BSL 1.1 | SEE (v5) | Apache 2.0 | Apache 2.0 |
| Redaktions-UI | Ja (Data Studio) | Ja (Admin Panel) | Nein (reine API) | Ja (Studio) |
Typischer Einsatz mit Docker
Directus wird am häufigsten über Docker oder Docker Compose betrieben. Ein minimales docker-compose.yml enthält den Directus-Service und einen PostgreSQL-Container. Umgebungsvariablen konfigurieren die Datenbankverbindung, den Admin-Account und den Secret-Schlüssel. Das offizielle Docker-Deployment-Guide führt durch den gesamten Prozess. Für Produktionsumgebungen empfiehlt sich ein Reverse Proxy wie Traefik oder Nginx mit automatischem SSL.
FAQ
- Kann ich Directus auf eine bestehende Datenbank aufsetzen?
- Ja, das ist eines der Kernfeatures von Directus. Das System liest das bestehende Datenbankschema aus und erstellt daraus automatisch Collections und die zugehörigen APIs. Bestehende Tabellen werden nicht verändert – Directus fügt lediglich eigene Systemtabellen mit dem Präfix
directus_hinzu. - Kostet Directus etwas?
- Nein, Directus ist für Self-Hosting vollständig kostenlos – auch in der Produktion. Die BSL-1.1-Lizenz schränkt lediglich den Weiterverkauf als Managed-Service ein. Directus Cloud ist ein optionaler verwalteter Hosting-Dienst mit kostenlosem Community-Tier.
- Wie verhält sich Directus gegenüber Hasura?
- Hasura ist primär ein GraphQL-Engine für PostgreSQL ohne eigene Redaktionsoberfläche. Directus bietet zusätzlich zur API ein vollständiges Data Studio für Nicht-Techniker, REST- und WebSocket-APIs und unterstützt mehr Datenbanksysteme. Für Teams mit gemischten technischen Kenntnissen ist Directus umfassender.
- Unterstützt Directus Mehrsprachigkeit?
- Ja, Directus hat eine eingebaute Translations-API. Felder können als übersetzbar markiert werden, und pro Sprache wird eine eigene Zeile in einer verknüpften Übersetzungstabelle gespeichert. Das Data Studio zeigt Übersetzungen übersichtlich nebeneinander an.