Photo by Carlos Muza on Unsplash

Seit einigen Stunden ist dieser Blog wiederbelebt und benutzt nun die Blogging Software "Ghost". Dieses Mal benutze ich aber das offizielle Docker Image, habe ein Kommentarsoftware deployed und betreibe nun die Analyticssoftware Matomo. Das letzteres nicht mit dem Datenschutz im Konflikt steht, lest ihr ganz unten.

Nun erstmal zu Matomo. Diese Analyticssoftware hieß ehemals Piwik und war/ist recht bekannt. Es ist quasi ein Google Analytics zum selber hosten.

Quelle und Rechte bei matomo.org


Quelle und Rechte bei matomo.org

Man bekommt so also sehr gut heraus, woher die Nutzer kommen, welchen Weg sie genommen haben oder wo sie dann abgesprungen sind. Alles gute Anhaltspunkte um den Content dann zu optimieren.

Versteht mich da aber bitte nicht falsch: Ich möchte nicht komplett den Inhalt dieses Blogs an Euch ausrichten - Ich will nur nicht komplett am Leser vorbeischreiben. Und genau da hilft so ein Stück Software ungemein.

Deployment

Alles was auf meinem Root Server gehostet wird, läuft als Docker Container. So wird auch diese Lösung wieder mithilfe von Docker deployed. Da die Lösung von Bitnami recht einfach aussah, habe ich mich diesmal dafür entschieden.

version: '2'
services:
  mariadb:
    image: bitnami/mariadb:latest
    environment:
      MARIADB_ROOT_USER: root
      MARIADB_DATABASE: db
      MARIADB_USER: db_username
      MARIADB_ROOT_PASSWORD: db_password
      MARIADB_PASSWORD: db_password
    volumes:
    - ./matomo_db:/bitnami
    user: root
  matomo:
    image: bitnami/matomo:latest
    environment:
      MARIADB_HOST: mariadb
      MARIADB_PORT_NUMBER: '3306'
      MATOMO_DATABASE_NAME: db
      MATOMO_DATABASE_USER: db_username
      MATOMO_DATABASE_PASSWORD: db_password
      MATOMO_PASSWORD: password
      MATOMO_USERNAME: username
      MATOMO_EMAIL: mail@example.com
    volumes:
    - ./matomo:/bitnami

Die MariaDB stellt hier die Datenbank dar. Matomo verbindet sich dann über die interne ServiceUrl und initialisiert alles. Wichtig ist, das der Root User gleich am Anfang mitgegeben wird. Sonst wird das Umstellen später schwierig. Die SMTP Einstellungen werden später in der Oberfläche angepasst.

Wenn ihr euch dann das erste Mal einloggt, müsst ihr gleich ein neues Dashboard anlegen. Wenn ihr alle Schritte erfolgreich abgeschlossen habt, bekommt ihr dann einen ähnlichen Tracking Code generiert.

<!-- Matomo -->
<script type="text/javascript">
  var _paq = _paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//example.com/";
    _paq.push(['setTrackerUrl', u+'piwik.php']);
    _paq.push(['setSiteId', '1']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

Wechselt nun wieder in das Dashboard von Ghost und fügt dort den Code in der "Code Injection" im Header ein. Nun werden alle Aufrufe getrackt

Matomo und Proxy

Ich habe bei meiner Installation einen NGinx Proxy davor geschaltet. Besser gesagt diesen hier: adi90x/rancher-active-proxy

Das hatte zur Folge, das alle Besucher die IP 10.42.0.0 hatten. Sprich die IP des Proxies.

Das macht wenig Sinn und hilft nicht. Das heißt, ihr solltet euch nun auf euren Server verbinden und nun den Ordner "./matomo/matomo/config" aufsuchen. Dort liegt die Datei "config.ini.php".

In ihr befindet sich dann ein Abschnitt "General". Dort fügt ihr dann folgende Option hinzu:

proxy_client_headers[] = "HTTP_X_FORWARDED_FOR"

Danach solltet ihr den Docker Container neustarten.

Aber wwwwas ist mit der DSGVO?


Photo by Gem & Lauris RK / Unsplash

Alles ganz cool. Ihr müsst nur ein paar Sachen beachten:

Daten anonymisieren

Ihr solltet euch nun auf der Einstellungsseite von Matomo befinden. Dort gibt es den Unterpunkt "Daten anonymisieren". Die Tracking Daten sollten minimal auf 2 Bytes maskiert werden.

Hinweis: Standorterkennung wird ungefähr das gleiche Ergebnis haben, wenn 1 Byte anonymisiert ist. Bei 2 Bytes oder mehr wird Geolokalisierung sehr ungenau werden.

Das heißt, ihr bekommt keinen genauen Wert, aber es wird trotzdem für eine Analyse reichen.

Die nächste Option sollte auch auf "ja" gesetzt werden. Dann wird nämlich auch die anonymisierte IP für die Aufbereitung bei den GeoIP Anbietern benutzt.

Ich habe auch zusätzlich "Benutzer ID mit Pseudonym austauschen" ausgewählt. Folgendes wird dann dabei gemacht:

When you enable this option, the User ID will be replaced by a pseudonym to avoid directly storing and displaying personally identifiable information such as an email address. In technical terms: given your User ID, Matomo will process the User ID pseudonym using a salted hash function.Note: replacing with a pseudonym is not the same as anonymisation. In GDPR terms: the User ID pseudonym still counts as personal data. The original User ID could still be identified if certain additional information is available (which only Matomo and your data processor has access to).

Ihr solltet außerdem die alten archivierten Berichte aller paar Monate löschen lassen. Wie oft oder wie schnell das passieren soll, steht nicht so wirklich fest. Ich denke aber das 3 Monate ein guter Zeitrahmen ist.

Zusätzlich sollten auch die alten Besucher Logs nach einem festgesetzten Zeitraum gelöscht werden. Bei mir sind 60 Tage eingestellt.

Users opt-out

Ein Besucher sollte selber festlegen können, das sie nicht getrackt werden. Dieser Hinweis wird meistens auf der Datenschutz Seite angezeigt. Den Code dafür bekommt ihr unter dem Menüpunkt "Users opt-out". Außerdem solltet ihr die Option "Do not Track" anhaken. Dann respektiert ihr generell diese Einstellung des Nutzers.

Das ist wiederum der gegenteilige Ansatz. Der Nutzer wählt aus, das er getrackt werden möchte. Diese Option sollte also gleich als Meldung unten angezeigt werden. Ich habe es bislang bei mir nicht gesetzt.

GDPR Tools

Jeder Nutzer darf nun einen Auszug für seine Daten verlangen. Genau dafür ist diese Seite da.

Nun ist alles konfiguriert und eingestellt. Ab jetzt darf ich mich zurücklehnen und geduldig die Daten interpretieren.

Numbers
Tags