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.
Im Softaculous Installer lege ich auch den Ort, den Namen des Administrators und Backup-Einstellungen fest.
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 …
… und lande im GRAV Dashboard. Das Dashboard erinnert ein wenig an WordPress, ist aber „einfacher“ gestaltet.
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.
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.
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.
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-grav
- Github-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=%2Fdocs
- Github-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.
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.org
- GRAV Dokumentation: https://learn.getgrav.org/17
- Beispiel: Mehrsprachige Yunohost Website und Dokumentation mit GRAV https://yunohost.org/de?q=%2Fdocs
Schreibe einen Kommentar