Blogging mit Statischem Website Generator

Statische Website Generatoren sind auf den ersten Blick mal das, was der Name sagt: statisch. Mit etwas Jenkins CI/CD und z.B. Bitbucket oder einem anderen GIT-hoster, wird das Ganze aber doch recht beweglich …

Ich halte immer einige VMs im Internet vor … für Experimente. Diese Tage habe ich mich einmal dem Thema CI/CD gewidmet und mir einen Jenkins aufgesetzt. Als erstes Projekt habe ich diese Website, die ich mit Hugo baue, dort integriert. Das Ergebnis war beeindruckend. Eigentlich übe ich nun sogar viel mehr Kontrolle aus, als ich das mit einer dynamischen Software-Lösung könnte.

DSGVO vs. SWG

Solange man nicht irgendetwas Externes anflanscht, ist ein SWG auch ein totaler DSGVO Killer. Es werden keine persönlichen Daten, ausser der IP-Adresse des Besuchers, gespeichert. Die ist natürlich immer im Web-Server-Log, aber nur temporär aus weithin sichtbarem berechtigten Interesse.

Die DSGVO Erklärung wird also kurz und übersichtlich. Wenn man sich dann bei einer Vorhaltezeit der Logs von 7 Tagen einfach 7 Tage für die Bearbeitung von Lösch-Anfragen vorbehält, dann ist die DSGVO mit der Erklärung, die auf der Homepage zu verlinken ist, wohl hinreichend bedient.

Es braucht eigentlich nicht einmal HTTPS, weil ein SWG keine Cookies setzt oder Daten überträgt.

Die Sache ändert sich wenn man:

  • Javascript einsetzt, welches Daten abfragt
  • externe Fonts einbindet und damit Tracking Informationen bei Drittanbietern hinterläßt
  • CDNs einsetzt (die sind dann zu kommentieren)

Kommentare adé, zumindest vorerst

Im Post über SWGs habe ich ja schon geschrieben: Kommentare sind derzeit ein ungelöstes Problem. Aber da läßt sich bestimmt was dran machen. Ich komme mal später darauf zurück.

Bisher hat man einen Service wie disqus.com eingebunden. Hatte immer etwas Beigeschmack, weil diese Services - alle zumindest, die mir bekannt sind - Datenkraken sind und jegliche Metadaten schürfen die über den Service gehen. Nun haben wir die DSGVO und müssen dokumentieren wo die Daten hingehen und müssen Einfluß darauf ausüben können, z.B. bei Löschanträgen. Das geht mit diesen Services nicht … gar nicht … überhaupt nicht. Also kann man die in Europa nicht mehr einsetzen. Mancher sieht das etwas entspannter, aber solange es keine rein persönliche, private Webseite im Sinne der DSGVO ist, geht’s eben nicht! Irgendwann wird jemand einen Service für Kommentare einrichten, der sich sinnvoll nutzen lässt und ohne rechtliches Risiko.

Etwas Futter zum Thema Kommentar-Services vs. DSGVO:

  • Der DSGVO Hinweis von des Paleosophie-Blogs (weiss auch nicht was das ist, aber klingt gut) erläutert die Thematik oberflächlich und deutet Lösungswege an. Allerdings habe ich so meine Zweifel ob das rechtlich vollständig ist. Zumindest ist die informationelle Selbstbestimmung des Besuchers augenscheinlich gewahrt: die Webseiten sind getrennt, was das Sprachenproblem löst.
  • So sieht das ein anderer Blogger von gastauftritt.net

Disqus hat zwar eine Erklärung formuliert, die theoretisch die DSGVO erfüllen könnte. Diese läßt aber die Frage der Auftragsdatenverarbeitung und der dazu gehörigen Dokumentation irgendwie offen. Zudem existiert sie nicht in Deutsch. Dann ist da auch der Posten “Lösch-Anträge” vollends tabu, zumindest hab ich da nichts zu gefunden. Damit kann man Disqus in Deutschland getrost vergessen und was Besseres suchen gehen. Die DSGVO-Erklärung muss zwingend in der Sprache der zugehörigen Webseite vorliegen. Ob das im Fall einer deutschen Webseite in Verbindung mit einem englischen Cloud-Service nun Deutsch oder Englisch ist … kann ich als nicht-Jurist nicht beantworten und ich vermute selbst Juristen hätten dazu 3-4 verschiedene Meinungen.

Deshalb … besser … Finger weg. Die Sache ist zu unsicher und selbst ein Abmahnverfahren, das man gewinnt, ist im Endeffekt verschwendete Zeit und Ärger.

Eine Zwischenlösung

Wer bis dahin was braucht, muss bereit sein, sich Arbeit zu machen: was nicht verboten ist ist ein mailto Link. Das ist uraltes klassisches HTML und schon fast vergessen. Folgt jemand einem solchen Links wird schlussendlich sein eigener Mail-Client aufgerufen und die Nachricht per email versand. Für email gibt es keine DSGVO. Und wer seine emails nicht signiert oder verschlüsselt … selbst schuld, die Webseite hat darauf keinen Einfluss.

Nun möchte man dem Besucher erklären was da passiert. Also nimmt man etwas Javascript, ruft eine präparierte Seite auf, die einen Parameter für den Betreff übernimmt. Dort bekommt der User dann erklärt was email ist und kann dann mit einem weiteren Klick seinen Mail-Client öffnen.

HTML bietet so viel Komfort, sogar subject und CC, und einen Body übergeben zu können. Damit kann man - in Grenzen - sogar ein Formular darstellen.

Mit etwas Skripting hinter dem Mail-Account kann man eingehende Nachrichten die das Formular enthalten, dann automatisch in Kommentare umstricken. Alles noch etwas science fiction aber ich werde mal etwas dran arbeiten.

Aspekte der Idee:

  • für meine Webseite habe ich ein wrapper-Shell-Script
  • neu angelegte Seiten erhalten eine response-id
  • die response-id wird in das Mail-Formular geschickt (als Teil eines Links)
  • in der Mail kann man also mit einem Click sicherstellen, das der Kommentar zugeordnet werden kann
  • Die Mail kopiert man mit Cut&Paste in ein Kommando des Scripts, welches die Mail parsed und eine Markdown Seite an geeigneter Stelle einfügt, mit allen Meta-Daten, was Lösch-Anträge einfacher abwickeln läßt
  • Ein Feld in der 1. (und nur der) Mail erlaubt die Angabe eines Nick-Names. Dieser wird dann durchgehalten. Sollte der Nick mal geändert werden, kann er durchgehend geändert werden.

Theoretisch müsste das gehen, bleibt der Nachteil, dass der Admin so quasi jeden Kommentar von Hand umsetzen muss. Aber irgendetwas ist ja immer. Hat man es erstmal so weit, kann man später die Mails auch automatisch umsetzen lassen. Dazu muss man dann nur einen Mail-Filter scripten. Man könnte die Kommentar dann als draft markieren und damit ein Review einfordern.

Editor im Internet

Ich nutze eine VM als Arbeitsplattform. Das ist aber nicht in Stein gemeißelt. Wer will kann auch einfach Bitbucket als IDE für sein blog verwenden. Sexy wird es aber erst wenn man einen guten Editor und entweder dort entsprechende Module oder eigene Skripte verwendet.

Später baue ich mal ein Tutorial dazu.

Jenkins!

Der Clou ist in diesem Workflow aber Jenkins. Während der Editor, was auch immer man da benutzt nur dazu da ist den Text anzupassen und via GIT auf einen GIT-Server zu laden, erfasst Jenkins die Änderung und stösst dann die Aktualisierung der Webseite an. Jenkins lungert also auf einem Server im Internet rum und wartet auf eine Nachricht vom GIT-Server, dass ich eine Änderung hochgeladen habe (git commit ; git push). Da startet Jenkins automatisch das Build-Script:

  • Repository auschecken
  • hugo starten
  • generierte Webseite per rsync zum Webserver laden

Dabei verwende ich nur die einfachsten und grundlegensten Features von Jenkins: das bit bucket plugin und ein einfaches freeestyle-projekt. Die Tage werde ich mal schauen was passiert wenn ich mehr von Jenkins nutze. Ich bin gespannt was noch aus dem Experiment herauspurzelt.

Oder doch lieber gleich ein Full-Service?

Hugo gibt es auch fertig auf services wie Netlify oder Forrestry. Das sind nur zwei von vielen Services, die einem schlüsselfertige CI/CD kombiniert mit einem SWG anbieten. Zudem kann man hier auch den SWG aus einer Reihe von verschiedenen Lösungen wählen.

Achtung! Ich habe keine Analyse gemacht inwiefern Webseiten, die man über diese Services aufsetzt, schlußendlich noch DSGVO-konform sind. Es muss davon ausgegangen werden, das Tracker im Spiel sind und Inhalt sowie Nutzung der Seite von irgendwelchen Services gesammelt und analysiert werden. Forrestry schreibt die klar und offen in deren Privacy Policy, aber ohne die jeweils involvierten Services explizit zu listen. Das wird generell mal nicht DSGVO fähig sein. Gleiches gilt anzunehmend wohl für Netlify. Wichtig zu wissen: ist so ein Anbieter in den USA, dann hat wenigstens einer sein Auge auf Eurer Webseite: Uncle Sam!

So ein Full-Service aus den USA, ohne DSGVO-Konformität ist also nur für Webseiten verwendbar, die persönlich und privat sind, also Hobby und Familie. Ob man seinen Besuchern aber den Verlust an Privat-Sphäre zumuten will, der Bequemlichkeit wegen, bleibt jedem selbst überlassen.

Nochmal vergleichen

Also für mich sieht das eindeutig so aus, als ob der SWG weit vorne liegt. Sobald Kommentare und sonstige Interaktive Features gehandhabt werden können geht das dann ganz anders aus. Klar ist eines: mit Services wie AWS-Lambda wird es sicherlich bald geeignete Plattformen geben. Abwarten, Tee trinken und bis dahin via Mail kommentieren!

Featured Articles
Featured posts