Ghost source-Theme in Docker DSGVO-konform machen
Ich habe vor einiger Zeit schon mal gezeigt, wie man das Ghost CMS DSGVO-konform hinbekommt (keine rechtliche Beratung, ich übernehme keine Verantwortung für Rechtskonformität! 😉). Da ich Ghost mittlerweile in Docker betreibe und sich das alles etwas anders gestaltet, wollte ich das Thema, passend zur Jahreszeit nochmal aufgreifen.
Hier ist der alte Beitrag:

Vorwort
Ich nutze das source-Theme in der i8n Variante:
https://github.com/SourceTheme-i18n/Source
Hier wird kein jQuery geladen. Sollte das bei deinem Theme der Fall sein sind leider Anpassungen im Theme selber notwendig. Das ist in Docker allerdings nicht ganz so einfach und wird hier nicht behandelt.
Analytics
Für Analytics habe ich mich für Plausible entschieden. Die Community Edition kann lokal in Docker gehostet werden, nutzt keine Cookies und ist sehr einfach einzubinden. Dazu habe ich auch gerade einen eigenen Artikel geschrieben:

CDN JS und CSS Dateien
Damit CSS und JS Dateien nicht von jsDelivr CDN abgerufen werden müssen, müssen wir diese lokal bereitstellen.
Das machen wir über die Docker Compose Datei und ein lokales Verzeichnis, welches wir in den Ghost Container bzw. den Theme-Ordner mounten.
Dazu erstellen wir das Verzeichnis, gehen rein, suchen aus unserem Quellcode alle Stellen, wo externe Dateien geladen werden und laden sie in das entsprechende Verzeichnis:
mkdir assets && cd asstets
wget https://cdn.jsdelivr.net/ghost/portal@~2.54/umd/portal.min.js
wget https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/sodo-search.min.js
wget https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/main.cssEine große Hilfe dabei war mir der DSGVO-Checker (unbezahlte Werbung)

Das Verzeichnis mounten wir nun in das entsprechende Theme (passe die Pfade entsprechend an. $PWD ist relativ zu der docker-compose.yml zu verstehen):
volumes:
- ${PWD}/assets:/var/lib/ghost/content/themes/source-i18n/assets/external
Ich habe hier einen neuen Ordner "external" im Theme Ordner erstellt, da ich den Asset-Ordner nicht überschreiben wollte
Nun müssen wir die config.production.json anpassen und die Pfade entsprechend anpassen:
"sodoSearch": {
"url": "/assets/external/sodo-search-1.1.min.js",
"styles": "/assets/external/sodo-search.css"
},
"portal": {
"url": "/assets/external/portal-2.12.min.js"
}
Nun werden alle Dateien von deinem lokalen Server genommen, ohne CDN!
Denke daran, dass Du diese Dateien ggf. updaten musst!
Wie auch beim vorherigen Post gilt: Dies ist keine rechtliche Beratung sondern nur ein Leitfaden. Ich übernehme keine Verantwortung für die rechtliche Konformität!

