CMSstash

Das Headless CMS Directus

Autor: Sebastian Schürmanns

Directus gehört zu den wenigen On-Premise Systemen unter den aufstrebenden Headless CMS. Damit bietet Directus eine sinnvolle Headless-Alternative für alle, die unabhängig von externen Diensten bleiben wollen und mit den Standard-Technologien PHP, JavaScript und MySQL arbeiten möchten. Ergänzend kann Directus auch als kostenpflichtiger SaaS-Dienst genutzt werden.

Screenshot Directus CMS

Wie alle Headless CMS ist auch Directus kein out-of-the-box CMS für Webseiten, sondern eine Plattform für die Ausgabe-neutrale Verwaltung und Auslieferung von Inhalten. Dazu bietet Directus eine Verwaltungs-Oberfläche an, mit der Inhalte über eine MySQL-Datenbank modelliert und von den Autoren bearbeitet werden können. Für die Auslieferung der Inhalte bietet Directus eine ausgereifte API und ein Berechtigungssystem an. Das klassische Anwendungs-Szenario für Directus sind Content-Services (CaaS), die Inhalte an verschiedene externe Applikationen wie Webseiten, mobile Apps oder auch Smart Devices ausliefern.

Directus wird seit ca. 2011 entwickelt. Gründer und Lead-Entwickler ist der in New York lebende Ben Haynes, die Marke Directus gehört den Ranger Studios von Haynes.

Directus für Autoren

Die Autoren-Oberfläche von Directus wird vom Administrator für den jeweiligen Anwendungsfall individuell zusammengestellt und passt im Idealfall immer exakt zum jeweiligen Content-Modell. Standardisierte Formular-Wüsten mit überflüssigen Eingabefeldern oder versteckte Formulare für spezielle Inhalte sollte es daher bei einer richtigen Konfiguration nicht geben.

Screenshot Director Author Interface

Dennoch setzt natürlich auch Directus für die Autoren-Oberfläche einen Rahmen:

Die Inhalte werden bei Directus immer unter individuellen Collections zusammengefasst, eine Unterscheidung zwischen eher statischen Inhaltsseiten und dynamischen News-Seiten findet nicht statt.

Wie bei Headless-Systemen üblich arbeitet der Autor bei Directus ausschließlich mit Formularen. Ein Incontent-Editing ist nicht möglich, der Entwickler kann jedoch bei Bedarf eine Seiten-Preview einrichten. Bei den Formularen herrscht große Vielfalt, angefangen von einfachen Text-Feldern über Kalender und Datums-Felder bis hin zu Bildern, Karten und vieles mehr. Für Fließtexte stehen ein Markdown-Editor, ein vollständiger WYSIWYG-Editor und ein konfigurierbarer WYSIWYG-Editor mit ausgewählten Formatierungs-Buttons zur Verfügung.

Für den Umgang mit Bildern bietet Directus mehrere Möglichkeiten:

Screenshot Directus Media Management

Das Autoren-Interface von Directus ist ausgesprochen übersichtlich und autorenfreundlich. Bei Bedarf kann der Entwickler das Layout und auch das Formular-Design auch individuell anpassen. Ob sich Directus für die Autoren eignet, hängt jedoch ganz wesentlich von deren Gewohnheiten und Anforderungen ab. In den letzten Jahren dominierten vor allem Page-Builder und Incontent-Editing-Konzepte den CMS-Markt, da sie große gestalterische Freiheiten und ein visuelles Arbeiten ermöglichen. Den neuen Headless-Systemen ist diese Herangehensweise fremd, da sie die Inhalte unabhängig von deren Verwendung und Darstellung verwalten. Ein visuelles Arbeiten ist zwar für einen Web-Auftritt bequem, macht jedoch beispielsweise bei einem Audio-Device keinen Sinn. Wenn sich Redakteure auf diesen Perspektiv-Wechsel einlassen, dann dürfte Directus bei den OnPremise-Lösungen zur ersten Wahl gehören.

Dienstleister

Wer sich für ein CMS entscheidet, der benötigt für die Einrichtung und Integration des Systems in der Regel Unterstützung von Web-Agenturen oder Freelancern. Wir stellen hier bis zu drei spezialisierte Dienstleister vor. Weitere Dienstleister finden Sie in unserer Datenbank.

Directus für Entwickler

Directus basiert auf dem PHP-Framework Slim und dem Frontend-Framework Vue.js. Offiziell wird lediglich der LAMP-Stack mit Linux, Apache, MySQL und PHP unterstützt, die Verwendung einer MariaDB sollte jedoch keine Probleme bereiten. Für Directus gibt es SDKs in verschiedenen Sprachen, wobei für die neueste Version von Directus nur noch die JavaScript SDK dokumentiert ist.

Directus ist in zwei getrennte Produkte unterteilt, die separat installiert werden können:

Beide Produkte sind in einer Suite zu einem vollständigen Headless CMS vereint, das mit einem einfachen Git-Befehl installiert werden kann:

git clone https://github.com/directus/directus.git

Um Directus aufzurufen, muss der DocumentRoot des Apache Servers auf den Ordner directus/public verweisen. In der Dokumentation von Directus findet man eine entsprechende Anleitung für Linux-Rechner.

Nach der Einrichtung von Directus kann man unter http://localhost/admin/#/install ein erstes Projekt anlegen.

Screenshot Directus Installations-Seite

Nach der Einrichtung gelangt man zur Administrations-Oberfläche. Der erste Schritt besteht für den Entwickler in der Konfiguration des Systems und vor allem in der Modellierung der Daten entsprechend der Requirements.

Screenshot Directus Administration

Zur Modellierung der Daten stehen unter "Collections & Fields" umfangreiche Eingabe-Felder zur Verfügung, angefangen von einfachen Text-Feldern bis hin zu Karten, Relationen und Repeatern. Die Herausforderung für den Entwickler besteht darin, die Daten so zu modellieren, dass am Ende eine möglichst intuitive Autoren-Oberfläche entsteht. Die Autorenoberfläche wird aus den Collections und den zugehörigen Feld-Typen automatisch generiert.

Screenshot Feld-Auswahl bei Directus CMS

Unter dem Menu-Punkt "Roles & Permission" kann der Administrator abschließend Rollen definieren und die Berechtigungen für jede Collection festlegen.

Screenshot Directus CMS Roles and Permissions

Will der Entwickler die Daten aus dem Headless-System für eine Applikation oder Webseite verwenden, dann kann er dafür die API von Directus in Kombination mit der JavaScript SDK nutzen. Directus bietet dazu eine ausführliche Anleitung zur JavaScript SDK in der Dokumentation an.

Für den einfachen Start kann die JS-Bibliothek auch extern eingebunden werden:

<script src="https://unpkg.com/@directus/sdk-js@5.3.4/dist/directus-sdk.umd.min.js"></script>
<script>
  const client = new DirectusSDK();
</script>

Directus arbeitet bei der Authentifizierung mit JSON Web Tokens (JWT). Der Entwickler hat dabei die Wahl zwischen einer einmaligen Authentifizierung, einer persistenten Authentifizierung mit dynamischen Token oder einer Authentifizierung mit einem statischen Token.

Wenn für eine externe Applikation die Daten einer Collection mit dem Namen events abgerufen werden sollen, dann kann das Script in etwa so aussehen:

const client = new DirectusSDK();
client.login({
  url: "url-to-your-directus-app",
  project: "name-of-your-project",
  email: "your-auth@email.nature",
  password: "your secret password"
}).then(data => {
     client.getItems("events").then(events => {
        events.data.forEach(function(event){
           // do something with the event-data here
        });
    });
});

Als Methoden stehen in der SDK unter anderem getItems, setItems und removeItems zur Verfügung. Die zahlreichen Endpunkte der API sind in der API-Dokumentation von Directus ausführlich beschrieben.

Wem die Standard-Funktionalitäten von Directus nicht reichen, der kann zahlreiche Erweiterungen und Anpassungen vornehmen. Dazu gehören die Individualisierung der Autoren-Oberfläche durch Interfaces und Layouts und die Funktions-Erweiterungen durch Module (Vue.js) und Hooks (Event-System). Daneben besteht die Möglichkeit, eigene API-Endpunkte zu definieren, Storage-Adapter z.B. für AWS anzubinden oder Single Sign On (SSO) Dienste zu integrieren.

Directus für Nicht-Entwickler

Directus kann als Datenbank-Verwaltungs-Tool von jedem Anwender genutzt werden, der etwas technisches Verständnis mitbringt. Allerdings kann man die Inhalte ohne Entwickler-Kenntnisse nur verwalten, nicht jedoch verwenden. Für die Verwendung der Inhalte muss ein Entwickler die API ansprechen und eine eigene Webseite oder Applikation entwickeln bzw. eine bestehende Lösung an die API von Directus anbinden.

Preise

Directus ist Open Source und kann kostenfrei heruntergeladen und genutzt werden. Der gehostete Service von Directus ist dagegen kostenpflichtig mit folgender Preisstaffel:

Was über die Preisstaffeln hinausgeht, fällt unter die Enterprise-Kategorie mit einer individuellen Preis-Gestaltung.

Empfehlung: Wann lohnt der Einsatz?

Directus bzw. allgemein ein Headless CMS macht immer dann Sinn, wenn der Content unabhängig von seiner Verwendung erstellt und verwaltet werden soll. In diesem Fall kann mit Directus ein "Content as a Service" (CaaS) aufgesetzt werden, der die Inhalte an verschiedene Kanäle wie Mobile-Apps, Webseiten oder auch an neue Voice-Geräte ausspielt. Ideal sind beispielsweise professionelle News-Redaktionen, bei denen sich die Journalisten vornehmlich um Inhalte und weniger um die Seitengestaltung kümmern. Auch einzelne Content-Services wie Veranstaltungs-Datenbanken sind ein gutes Einsatz-Szenario für ein Headless-CMS wie Directus.

Aufgrund der technischen Architektur eignen sich Headless-Systeme weniger, wenn Autoren das CMS wie einen Page-Builder nutzen möchten, die Seitengestaltung stark beeinflussen wollen und gerne im Incontent-Editing-Modus arbeiten. Gerade wenn Multichannel-Auslieferungen keine Rolle spielen und es lediglich um eine klassische Webseite geht, sollte man den Gestaltungsspielraum der Redakteure nicht durch die Wahl eines Headless-CMS unnötig einschränken, denn traditionelle Content Management Systeme unterstützen die visuelle Arbeit von Redakteuren deutlich besser. Viele klassische Content Management Systeme bieten heutzutage auch eine Content-API an, mit der externe Applikationen bedient werden können. Allerdings muss man bei traditionellen CMS mit einer weniger klaren Trennung zwischen Content-Speicherung, Content-Verwaltung und Content-Nutzung leben.

Regelmäßige Neuigkeiten über Content-Management-Systeme und Website-Publishing gibt es von CMSstash auf Twitter.

Zuletzt aktualisert: 03.02.2020