GRAV CMS

GRAV 1.1 CMS – einfach, schnell, komfortabel, elegant

Im Februar letzten Jahres habe ich hier im Blog die Version 0.9 des Open Source Content Management Systems GRAV vorgestellt (GRAV – Ein schnelles, dateibasiertes, einfaches CMS). Letzte Woche ist die Version 1.1 erschienen und es hat sich eine Menge getan.

Eine gute Gelegenheit mal wieder einen Blick auf das Projekt zu werfen.

GRAV Core oder GRAV Core + Admin Plugin

GRAV bietet nun ein Admin Plugin an, das es dir unter anderem erlaubt, deine Seiten im Browser anzulegen und zu verändern. Um die Installation zu erleichtern, wird das populäre Admin Plugin gleich bei der Installation mit angeboten (https://getgrav.org/downloads).

GRAV Download
GRAV Download

Installation

Da es sich bei GRAV um ein dateibasiertes CMS handelt, das keine Datenbank benötigt, gestaltet sich die Installation sehr einfach. Du lädst einfach das gewünschte Paket herunter und entpackst es im Webserver Dokumentenverzeichnis. Das kann lokal beispielsweise das MAMP oder XAMPP /htdocs Verzeichnis sein oder in deinem Webhosting bei Novatrend das /public_html Verzeichnis.

Nach dem Entpacken des Dateipakets, in meinem Fall grav-admin.zip, kannst du das System sofort unter deinem Domainnamen aufrufen. Das Admin Plugin fragt nach Namen, E-Mail und Passwort eines Administrators.

GRAV - Admin - Benutzerkonto anlegen
GRAV – Admin – Benutzerkonto anlegen

Nach diesem „Installationsschritt“ ist GRAV einsatzbereit und du landest im GRAV Dashboard http://domainname/admin.

GRAV - Admin - Dashboard
GRAV – Admin – Dashboard

Um die Administrationsberfläche in einer anderen Sprache zu haben, kannst du in deinem Benutzerprofil einfach die gewünschte Sprache einstellen. Wenn zu deiner E-Mail Adresse auf gravatar.com ein Benutzerbild zugeordnet ist, wird es automatisch angezeigt.

GRAV - Benutzerprofil
GRAV – Benutzerprofil

Inhalte verwalten

Im Bereich Seiten ist bereits eine Seite vordefiniert. Sie enthält Hilfetext im Markdown Format. Der Editor ist umschaltbar zwischen einer Vorschau und dem Markup Text. Bilddateien können einfach in das Formular gezogen werden.

GRAV - Editor
GRAV – Editor

Mehrsprachigkeit

GRAV ist von Haus aus mehrsprachig. Die gewünschten Sprachen können in den Einstellungen mit dem gewünschten Sprachkürzel angegeben werden.

GRAV - Sprachen
GRAV – Sprachen

Nach dieser Einstellung lassen sich Seiten in diesen Sprachen erstellen. Alle Seiten hängen unter einem „Ursprung“. In meinem Fall Deutsch in https://domainname/de, English in /en und Französisch in /fr. Hier habe ich für jede Sprache eine Ursprungsseite angelegt.

GRAV - Seiten
GRAV – Seiten

Im Ergebnis erhalte ich dann automatisch eine Navigation mit Links zu den entsprechenden Sprachen.

08-GRAV-Menu

So in dieser Art kannst du dir Stück für Stück deine Website zusammenstellen.

GRAV Features

Aus der wirklich beeindruckenden Menge an Features hier ein paar Beispiele.

Alles ist dateibasiert

Alle Inhalte liegen in Dateien, auch die Parameter der Benutzer. Hier beispielsweise meine Benutzerdaten in der Datei /grav-admin/user/accounts/hagengraf.yaml

email: hagen@novatrend.ch
fullname: 'Hagen Graf'
title: Administrator
state: enabled
access:
admin:
login: 'true'
super: 'true'
site:
login: 'true'
hashed_password: $2y$10$g24b8JM48YapGjA7JCCQs.8TyKYoFz13h59P9XVCYdQy5LBZs/zH6
language: de

oder die Inhalte der Seiten in /user/pages, hier die französische Seite:

GRAV - Dateibaum
GRAV – Dateibaum

Backup/Restore

Durch das Fehlen einer Datenbank werden das Erstellen von Backups und der Restore Vorgang erheblich vereinfacht. Die Dateien müssen einfach nur kopiert werden!

CLI-Tools

GRAV ist komplett über die Konsole steuerbar. Der Befehl bin/grav list erzeugt eine Liste der verfügbaren Befehle.

$ bin/grav list
Grav CLI Application version 1.1.1
Usage:
command [options] [arguments]
Options:
...
Available commands:
backup Creates a backup of the Grav instance
clean Handles cleaning chores for Grav distribution
clear-cache Clears Grav cache
clearcache Clears Grav cache
composer Updates the composer vendor dependencies needed by Grav.
help Displays help for a command
install Installs the dependencies needed by Grav. Optionally can create symbolic links
list Lists commands
new-project Creates a new Grav project with all the dependencies installed
newproject Creates a new Grav project with all the dependencies installed
sandbox Setup of a base Grav system in your webroot, good for development, playing around or starting fresh

Package Manager

Mit dem CLI Paketmanager lassen sich alle verfügbaren Themes und Plugins installieren, aktualisieren und deinstallieren.

Je nach Vorliebe entweder über die Kommandozeile

$ bin/gpm list

oder über das Dashboard im Browser

GRAV - verfügbare Plugins
GRAV – verfügbare Plugins

Es gibt momentan 62 Themes und 118 Plugins!

Schnell und ohne grosse Ansprüche

Um GRAV zu betreiben, brauchst du

  • einen Webserver (Apache, Nginx, LiteSpeed, IIS, Lighly, etc)
  • PHP 5.5.9 oder neuer

… und es ist sehr schnell!

Inhalte

Bei der Inhaltserstellung und Verwaltung sind die folgenden Features bemerkenswert

  • Du kannst in Markdown und/oder HTML schreiben
  • Modulare Seiten sind Seiten, die aus anderen existierenden Seiten erstellt werden. Das ist praktisch für One-Page Formate.
  • Du kannst Custom Fields erstellen
  • Bilddateien werden dynamisch angepasst (Grösse verändern, Formate schneiden, Effekte)
  • Responsive Bilder für hohe Auflösungen, beispielsweise Retina Bildschirme werden unterstützt

Themes

Es gibt viele interessante Ansätze bei den Themes, hier beispielsweise das Card Stack Theme (Demo).

GRAV - Cardstack Theme
GRAV – Cardstack Theme

Fazit

GRAV blüht, wächst und gedeiht und alles, was vor einem Jahr nur über einen Dateieditor möglich war, lässt sich jetzt auch bequem im Browser erledigen. Die hervorragende Dokumentation unter https://learn.getgrav.org lässt kaum Fragen offen.

Links:


tl;dr: GRAV ist ein schnelles, einfach zu bedienendes und erweiterbares Open Source CMSSave


Beitrag veröffentlicht

in

, , ,

von

Schlagwörter:

Kommentare

2 Antworten zu „GRAV 1.1 CMS – einfach, schnell, komfortabel, elegant“

  1. Avatar von Alex L

    Hallo Hagen,
    ich mag das GRAV CMS ja auch, konnte letztens aber weniger gute Erfahrungen sammeln. Da meine Pages unter /admin/pages nicht mehr erreichbar waren und mir der Support nicht auf die Schnelle helfen konnte, musste ich eine komplette Neuinstallation vom CMS machen. Alte Blogposts konnte ich nicht mehr nutzen, weil irgendetwas mit dem Zeitstempel war und die Posts nicht mehr aufgerufen werden konnten.

    Auch bei der Neuinstallation ganz gleich, welche Daten ich beim Admin-Account-Erstellen eingab, wollte es nicht klappen. Ich probierte einfache und schwere Passwörter, doch ohne Erfolg. Den neuen User habe ich dann im Terminal erstellt, sprich via SSH. Das klappte sofort.

    Ja, wie ich sichten konnte, war es für mich keine perfekte Zeit, dennoch arbeite ich mit dem GRAV-CMS sehr gerne und es macht Spass. Die Neuinstallation funktioniert übrigens ganz gut. Probleme hatte ich sofort nach dem Updaten auf die neueste Version bekommen. Ab dann gingen die Pages auch nicht, warum auch immer.

  2. Avatar von GRAV Flat File CMS mit Git Synchronisierung

    Das dateibasierte Content Management System GRAV habe ich im Blog bisher zweimal erwähnt (hier und hier). Das letzte Mal im Jahr 2016.

    Als ich mich mit Yunohost etwas eingehender beschäftigte, ist mir aufgefallen, dass deren Website (yunohost.org) ebenfalls mit dem CMS GRAV erstellt wurde. Besonders gut gefiel mir die Dokumentation mit Suchfunktion und der Möglichkeit über Github Inhalte und Änderungen zu Inhalten vorschlagen zu können.

    Als ich den Artikel über WordPress HTML Archive schrieb, musste ich wieder an GRAV denken. Das System kommt ohne Datenbank aus und baut die einzelnen Seiten daher extrem schnell auf. Es ist etwas wartungsaufwendiger als reine HTML Seiten, da es noch PHP benötigt. Es ist allerdings nicht so wartungsintensiv wie beispielsweise WordPress, liegt also ein wenig „zwischen den Stühlen“.

    Grund genug mal wieder bei GRAV vorbeizuschauen. Mittlerweile ist das System bei der Versionsnummer 1.7. angekommen und bietet ein Menge interessanter Features.

    Installation bei Novatrend

    Bei Novatrend lässt sich GRAV entweder über SFTP, die Kommandozeile oder über unser Installations-Tool Softaculous installieren. In der GRAV Doku sind weitere Methoden beschrieben https://learn.getgrav.org/17/basics/installation. Ich nutze im weiteren Verlauf die Softaculous Installations-Variante. Die Art der Installation ist nur „Geschmacksache“. Das Ergebnis ist immer das gleiche.

    Vor der Installation sollte klar sein, unter welcher Subdomain GRAV installiert werden soll. Ich lege mir im cPanel eine Subdomain an und erstelle ein Let’s Encrypt Zertifikat.

    cPanel -> Unterdomain

    cPanel -> Let’s Encrypt™ SSL

    Im Softaculous Installer lege ich auch den Ort, den Namen des Administrators und Backup-Einstellungen fest.

    cPanel -> Softaculous -> GRAV

    Einstellungen zur Installation

    Wenn ich nun den entsprechenden URL aufrufe sehe ich die GRAV Startseite mit einer Erfolgsmeldung.

    Der Administrationsbereich von GRAV liegt unter /admin. Mit den bei der Installation vergebenen Daten kann ich mich anmelden …

    Anmeldung zum Administrationsbereich

    … und lande im GRAV Dashboard. Das Dashboard erinnert ein wenig an WordPress, ist aber „einfacher“ gestaltet.

    GRAV Dashboard

    Auch wenn es keine Datenbank gibt, so gibt es doch die Möglichkeit das System über das Dashboard im Browser zu administrieren, Accounts anzulegen und Inhalte zu erzeugen. GRAV kommt mit einem Account, zwei Beispielseiten, acht installierten Plugins und einem Theme. In den Einstellungen einzelner Seite gibt es einen Normal und einen Expert Modus.

    Normal-Ansicht einer Seite mit Wysiwyg Editor

    Im Expert Modus erscheint ein sogenannter „Frontmatter“ oder Header Block über dem Editor. Hier kann man Optionen eintragen, die ausführlich in der GRAV Doku beschrieben sind https://learn.getgrav.org/17/content/headers.

    Expert Ansicht einer Seite

    Die Oberfläche ist weitestgehend selbsterklärend. Wenn man mal nicht weiter weiss, hilft garantiert die sehr gute GRAV Doku.

    Git-Anbindung

    Was mich bei der Yunohost.org Website faszinierte, war die Möglichkeit, einzelne Seiten der Dokumentation editieren zu können.

    Die Herausforderung bei solchen „Edit“-Buttons ist ja immer die Authentifizierung. Auf der einen Seite möchte man, dass jeder mitarbeiten kann, auf der anderen Seite hat man schnell ein SPAM Problem, wenn es zu offen gehandhabt wird.

    Die zweite Herausforderung bei jeder Website ist die Versionsverwaltung. Änderungen sollten dokumentiert werden und müssen manchmal auch wieder rückgängig gemacht werden.

    Das GRAV Git Sync Plugin und das GRAV GitHub Plugin lösen dieses Dilemma auf sehr elegante Weise.

    Plugins im GRAV Dashboard

    Nach der Installation und Konfiguration lassen sich die Seiten bei entsprechenden Zugriffsberechtigungen entweder über das GRAV Dashboard und die Terminal Kommandozeile editieren. Das ist gut und komfortabel für die bekannten Teilnehmer:innen am jeweiligen Projekt.

    Darüberhinaus sind die Seiten aber auch offen für Änderungsvorschläge von jedem GitHub Account. Das Charmante an dieser Konstruktion ist, dass die Änderungen in GitHub bereits durch die zu ändernde Person erfolgt ist und „nur“ noch von einer berechtigten Person des Projekts freigegeben werden muss. Das spart unglaublich viel Zeit. Diskussionen über Änderungen sind auf GitHub ebenfalls möglich.

    Ich nehme hier GitHub nur als ein Beispiel, die Verbindung klappt auch mit GitLab oder jedem anderen Git Service mit Webhooks.

    Ein weiterer Vorteil der Git-Anbindung ist eine komplette Versionierung der Website. Jede Änderung, auch die über das GRAV Dashboard lässt sich auf diesem Weg nachvollziehen und natürlich auch rückgängig machen.

    Beispiel GRAV Dokumentation

    In der GRAV Dokumentation wird dieses Feature ebenfalls benutzt.

    Website: https://learn.getgrav.org/17/basics/what-is-gravGithub-Version: https://github.com/getgrav/grav-learn/blob/develop/pages/01.basics/01.what-is-grav/docs.md

    Beispiel Yunohost

    Bei Yunohost wird die Mehrsprachigkeit von GRAV und die Git-Synchronisierung genutzt.

    Webseite: https://yunohost.org/en?q=%2FdocsGithub-Version: https://github.com/yunohost/doc/blob/master/pages/00.home/docs.md

    GitHub Anbindung einrichten

    Die GitHub Anbindung besteht aus zwei GRAV Plugins, die über das Dashboard oder die Kommandozeile installiert werden können.

    Plugin Bereich mit Git Sync und GitHub Plugin

    Das Git-Sync Plugin muss mit deinem GitHub Account verbunden werden. Das geht über deinen Account-Namen und dein Git-Passwort oder ein Token (das Token ist die bessere Wahl, denn es ist einfach widerrufbar). Die Vorgehensweise ist in diesem Blog Post gut beschrieben https://learn.hibbittsdesign.org/learn2withgitsync/git-sync-plugin-config.

    Fazit

    Allein durch die oben beschriebene Funktionalität ist GRAV ein sehr interessantes System für Dokumentationen und Projekt-Websites aller Art. Da GRAV auch Mehrsprachigkeit unterstützt, lassen sich auch Übersetzungen von existierenden Dokumentationen sehr elegant, dezentral und unabhängig von den „offiziell“ in das Projekt involvierten Personen erstellen. Wenn das Projekt interessant genug ist, werden sich Personen finden, die helfen!

    Links

    GRAV Project Website: https://getgrav.orgGRAV Dokumentation: https://learn.getgrav.org/17Beispiel: Mehrsprachige Yunohost Website und Dokumentation mit GRAV https://yunohost.org/de?q=%2Fdocs

    Mentions

  • 💬 GRAV Flat File CMS mit Git Synchronisierung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert