Statamic und Git: Inhalte versionieren wie Code

Veröffentlicht am 4 Min. Lesezeit
Kurzantwort

Statamic speichert Inhalte standardmäßig als Dateien, deshalb lassen sie sich wie Code mit Git versionieren. Statamic Pro committet und pusht Änderungen aus dem Control Panel auf Wunsch automatisch, mit Autor und Zeitpunkt. So ist jede Änderung nachvollziehbar und lässt sich zurückholen, ohne Datenbank-Backup.

Inhalte als Dateien statt in einer Datenbank

Statamic arbeitet laut Dokumentation standardmäßig im Flat-File-Modus: Seiten, Artikel und Einstellungen liegen als Textdateien (YAML und Markdown) im Projektordner, eine Datenbank ist dafür nicht nötig. Damit gehören Inhalte zum selben Repository wie der Code. Git (das verbreitete Werkzeug zur Versionsverwaltung) kann jede Änderung an einer Seite genauso nachvollziehen wie eine Änderung am Template.

In datenbankbasierten Systemen liegen Inhalte dagegen getrennt vom Code. Wer dort den Zustand von gestern sehen oder zurückholen will, braucht Datenbank-Backups oder eine eigene Versionierungsfunktion des Systems.

Was die Git-Automatisierung in Statamic macht

Statamic Pro bringt eine eingebaute Git-Integration mit. Sie wird mit einer Zeile in der Umgebungsdatei .env aktiviert: STATAMIC_GIT_ENABLED=true. Danach gilt laut Dokumentation:

  • Automatische Commits: Statamic reagiert auf das Speichern und Löschen von Inhalten und committet die Änderung selbstständig. Ein Commit ist ein gespeicherter Versionsstand mit Zeitpunkt und Autor.

  • Autor nachvollziehbar: Standardmäßig verwendet Statamic Name und E-Mail-Adresse der angemeldeten Person im Control Panel. Sie sehen also im Verlauf, wer was geändert hat.

  • Automatisches Pushen: Auf Wunsch überträgt Statamic die Commits direkt in Ihr zentrales Repository, zum Beispiel bei GitHub oder GitLab.

  • Manuell statt automatisch: Alternativ lösen Redakteure den Commit über das Git-Werkzeug im Control Panel aus, oder Entwickler nutzen den Befehl php please git:commit.

Erfasst werden laut Dokumentation unter anderem die Ordner für Inhalte, Benutzer, Blueprints (die Feldstruktur Ihrer Inhaltstypen), Formulare und Assets. Die Liste ist in config/statamic/git.php anpassbar.

Was Ihnen das im Alltag bringt

  • Jede Änderung ist dokumentiert: Wann wurde der Preis auf der Leistungsseite geändert, und von wem? Der Git-Verlauf beantwortet das.

  • Fehler lassen sich rückgängig machen: Wurde ein Abschnitt versehentlich gelöscht, lässt sich der frühere Stand aus der Historie wiederherstellen.

  • Lokale Entwicklung mit echten Inhalten: Entwickler holen sich mit einem git pull den aktuellen Inhaltsstand und testen neue Funktionen mit echten Daten, ohne eine Datenbank zu kopieren.

  • Das Repository ist zugleich Sicherung: Inhalte liegen nicht nur auf dem Server, sondern auch im zentralen Repository.

Worauf Sie bei der Einrichtung achten sollten

Commits im Hintergrund ausführen

Standardmäßig läuft der Commit direkt beim Speichern. Wird das Speichern dadurch spürbar langsamer, empfiehlt die Dokumentation eine Queue, also eine Warteschlange, die den Commit im Hintergrund abarbeitet, etwa mit Redis und Laravel Horizon. Mit einer Verzögerung (STATAMIC_GIT_DISPATCH_DELAY) lassen sich mehrere Änderungen zu einem Commit bündeln. Alternativ können Commits zeitgesteuert per Laravel-Scheduler laufen. In beiden Fällen gibt es keine angemeldete Person, Statamic verwendet dann den in der Konfiguration hinterlegten Git-Benutzer.

Deployments nicht doppelt auslösen

Wenn jeder Push ein Deployment startet, würde auch jede Redaktionsänderung eines auslösen. Die Dokumentation zeigt dafür, wie Sie Commit-Nachrichten mit einem Präfix wie [BOT] versehen und dieses im Deploy-Skript von Forge, Ploi oder Cleavr abfragen.

Revisionen bewusst ablegen

Die Revisionen von Statamic Pro (Entwürfe und frühere Stände direkt im Control Panel) liegen standardmäßig in storage/statamic/revisions und werden von Git ignoriert. Sollen sie mitversioniert werden, lässt sich der Speicherort in den Inhaltsordner verlegen.

Statamic, Laravel oder TYPO3: Was passt wann?

  • Statamic ist unsere Standardempfehlung für Unternehmenswebsites, Magazine und Landingpages, auch mit mehreren Sprachen und Redaktionsteams. Inhalte in Git sind dort ohne Zusatzsoftware möglich.

  • Laravel kommt dazu, wenn Sie neben der Website eigene Funktionen brauchen, etwa ein Kundenportal oder eine Schnittstelle. Weil Statamic auf Laravel aufbaut, liegen Website, Inhalte und Anwendung in einer Codebasis und einem Repository.

  • TYPO3 empfehlen wir nur, wenn das Projekt es wirklich verlangt: bestehende TYPO3-Installation, sehr große Portale mit vielen Websites und komplexen Rechtestrukturen oder eine Vorgabe Ihrer Organisation. Für die meisten Projekte ist es mehr System, als nötig ist.

Fazit

Mit Statamic werden Inhalte zu Dateien, und Dateien lassen sich mit Git versionieren. Die eingebaute Git-Automatisierung von Statamic Pro committet Änderungen automatisch mit Autor und Zeitpunkt. Wichtig sind eine Queue oder ein Zeitplan für die Commits und ein Deploy-Skript, das Redaktions-Commits erkennt. Mehr zu unserer Arbeit mit dem CMS finden Sie auf der Seite Statamic-Webagentur. Sie möchten Ihre Website so aufsetzen oder umstellen? Schreiben Sie uns, wir besprechen den passenden Workflow für Ihr Team.

Häufige Fragen

Fragen und Antworten

  • Ja, die eingebaute Git-Automatisierung ist laut Dokumentation eine Pro-Funktion. Die Inhaltsdateien selbst können Sie auch mit Statamic Core von Hand mit Git versionieren.

  • Nein. Sie arbeiten wie gewohnt im Control Panel. Statamic committet automatisch oder über einen Button im Git-Werkzeug des Control Panels.

  • Revisionen sind Entwürfe und frühere Stände einzelner Einträge direkt im Control Panel. Git versioniert alle erfassten Dateien des Projekts. Beide Funktionen lassen sich kombinieren.

  • Ja. Wir richten Remote, Queue oder Zeitplan und das Deploy-Skript so ein, dass Redaktions-Commits kein unnötiges Deployment auslösen. Schreiben Sie uns über das Kontaktformular.

Quellen
  1. Statamic Docs: Git Automation
  2. Statamic Docs: Core Concepts
  3. Statamic Docs: Revisions
  4. Statamic Docs: Licensing
Schlagworte

Sie planen ein Projekt?

Wir beraten Sie gern zu Website, Web-Anwendung und dem passenden System – persönlich und unverbindlich.