Plausible Analytics

Ähnlich wie Google Analytics, aber zum selber hosten, Open Source und kostenlos in der Community Edition. Diverse Webseiten Informationen über Seitenbesuche, Herkunft der Besucher usw. Das Tool erfasst die Daten über ein in die Webseiten einzubauendes Skript, bereitet diese auf und präsentiert sie als Dashboard. Zusätzlich wird auch ein Cloud Dienst angeboten, welcher kostenpflichtig ist.

Installation

Die Installation kann ganz einfach mit einem Docker Image vom Hersteller vorgenommen werden. Hierzu gibt es eine Anleitung in der offiziellen Dokumentation: Plausible GitHub

Im folgenden wird auf Basis dieser Anleitung die Docker Compose Datei zusammengestellt.

Basis Konfiguration

Zuerst erstellen wir einen Ordner, in den wir dann die benötigten Konfigurationsdateien laden. Diese werden freundlicherweise vom Hersteller über das GitHub Repository bereitgestellt. Außerdem löschen wir einige Dateien und Ordner, die wir für die Bereitstellung nicht benötigen.

# Neues Verzeichnis im aktuellen Ordner erstellen
mkdir plausible-analytics
# In den neuen Ordner wechseln
cd plausible-analytics
# GitHub Repository in das akteuelle Verzeichnis klonen
git clone https://github.com/plausible/community-edition .
# Einige der Dateien und Ordner sind nicht notwendig, also löschen
sudo rm -R README.md reverse-proxy/ upgrade/ .git/ .github/ images/

Nun wird die Datei plausible-conf.env bearbeitet. In dieser werden einige wichtige Einstellungen vorgenommen. Die Datei sieht zur Zeit wie folgt aus.

BASE_URL=replace-me
SECRET_KEY_BASE=replace-me

Beide Zeilen müssen angepasst werden.

BASE_URL: Dies ist der Link, unter dem die Seite von Plausible erreichbar sein wird. Beispiel: http://beispiel.de

SECRET_KEY_BASE: Dies ist ein Base64 String, welcher für einige Sicherheitsfunktionen benötigt wird. Dieser lässt sich mit openssl rand -base64 48 generieren. Die so erzeugte Zeichenkette wird eingetragen.

Nachdem die Werte angepasst wurden, könnte die Datei z. B. wie folgt aussehen.

BASE_URL=http://beispiel.de/
SECRET_KEY_BASE=r3vcAJI/8Dv6IA7/MziKPxEP851eO4n03CHsdhqBtymVVCOrztHP83GSMWmmEzAd

Im Prinzip ist die Einrichtung damit abgeschlossen, jedoch wäre die Seite so nicht ausreichend geschützt, da sie keine Verschlüsselung hat. Hier empfiehlt sich der Einsatz eines Reverse Proxy.

Anpassung für Reverse Proxy

In diesem Beispiel wird die Anpassung der Docker Konfiguration für den Reverse Proxy Traefik gezeigt. Um Plausible bei Traefik bekannt zu machen und damit dieser als Dienst angeboten wird, müssen lediglich die folgenden Label beim Container plausible in der originalen Konfiguration ergänzt werden. Zusätzlich muss ggf. das Netzwerk von Traefik angegeben werden, damit die Container miteinander über das Docker Netzwerk kommunizieren können.

services:
  plausible:
    labels:
      traefik.enable: "true"
      traefik.http.routers.plausible.rule: "Host(`beispiel.de`)" # Link anpassen, unter dem Plausible erreichbar sein soll
      traefik.http.routers.plausible.entrypoints: "websecure" # Ebenfalls an die eigene Umgebung anpassen
      traefik.http.services.plausible.loadbalancer.server.port: "8000"
# Wenn Traefik ein eigenes Netzwerk hat, dieses hier angeben, damit der Dienst auch erreichbar ist
    networks:
      traefik
networks:
  traefik:
    external: true

Wenn der Dienst plausible in das Netzwerk von Traefik gepackt wird, muss zusätzlich ein eigenes Netzwerk für das Backend erstellt werden, damit plausible weiterhin mit den anderen Containern kommunizieren kann.

Die angepasste Compose Konfiguration sieht dann wie folgt aus.

services:
  mail:
    image: bytemark/smtp
    restart: always
    networks:
      - backend

  plausible_db:
    # Plausible v2.0.0 was tested against PostgreSQL versions 12, 13, and 14
    # https://github.com/plausible/analytics/blob/v2.0.0/.github/workflows/elixir.yml#L16
    image: postgres:14-alpine
    restart: always
    volumes:
      - ./db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=postgres
    networks:
      - backend

  plausible_events_db:
    image: clickhouse/clickhouse-server:23.3.7.5-alpine
    restart: always
    volumes:
      - ./event-data:/var/lib/clickhouse
      - ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
      - ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    networks:
      - backend

  plausible:
    image: plausible/analytics:v2.0
    restart: always
    command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
    depends_on:
      - plausible_db
      - plausible_events_db
      - mail
    env_file:
      - plausible-conf.env
    labels:
      traefik.enable: "true"
      traefik.http.routers.plausible.rule: "Host(`beispiel.de`)" # Link anpassen, unter dem Plausible erreichbar sein soll
      traefik.http.routers.plausible.entrypoints: "websecure" # Ebenfalls an die eigene Umgebung anpassen
      traefik.http.services.plausible.loadbalancer.server.port: "8000"
# Wenn Traefik ein eigenes Netzwerk hat, dieses hier angeben, damit der Dienst auch erreichbar ist
    networks:
      - backend
      - traefik
      
networks:
  backend:
    driver: bridge
  traefik:
    external: true

Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d oder sudo docker compose up -d (keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.

Webseiten überwachen

In diesem Kapitel werden die Grundlagen erklärt, um eine Webseite mit Plausible zu überwachen und einige Beispiele gezeigt, z. B. die Überwachung für eine Bookstack Instanz und Wordpress eingerichtet werden.

Webseiten überwachen

Grundlagen

Um eine Seite mit Plausible überwachen zu lassen, wird im Dashboard einfach eine neue Webseite hinzugefügt. Daraufhin erklärt ein kurzer Dialog, was auf der zu überwachenden Seite angepasst werden muss, um die Daten zu sammeln.

Zunächst wird das Dashboard geöffnet und auf "+ Add a website" geklickt.

grafik.png

Es öffnet sich ein Dialog, welcher die URL der zu überwachenden Seite abfragt. Hier wird die eigentliche URL eingetragen, unter der die Webseite erreichbar ist. Dabei wird entweder die eigentliche Domäne oder Subdomäne eingetragen, jedoch nicht www.beispiel.de.

grafik.png

Wenn die Domäne und Zeitzone ausgewählt wurden, einfach auf Add snippet klicken und es wird der Javascript Code angezeigt, der in die Zielseite eingefügt werden muss. Die Code Referenz sollte in den <head></head> Bereich der Webseite eingefügt werden.

grafik.png

Sobald auf Start collecting data geklickt wird, erstellt Plausible das neue Projekt für die Seite und überwacht die Seitenaufrufe.

Plausible wartet nun auf den ersten Besuch. Zusätzlich werden noch einige mögliche Hilfe-Links angezeigt, sollte es Probleme geben. Am besten von einem anderen Gerät aus oder in einem privaten Browser Tab die Zielseite öffnen.

grafik.png

Sobald der 1. Besuch erfolgreich erfasst wurde, wechselt die Ansicht. Es wird das Dashboard mit allen Details zu den Aufrufen angezeigt und die Einrichtung wurde erfolgreich abgeschlossen.

grafik.png

Webseiten überwachen

Wordpress

In Wordpress kann der <head> Bereich leider nicht ohne weiteres angepasst werden. Jedoch stellt Plausible ein eigenes Plugin für Wordpress bereit. Über die Plugin Suche kann dieses einfach gefunden und installiert werden.

grafik.png

Sobald das Plugin installiert ist, sollte nur wenige Sekunden dauern, kann es direkt aktiviert werden, um den Einrichtungsdialog zu öffnen. Den Dialog schauen wir uns nun einmal an.

Zuerst wird ein Willkommen angezeigt. Sofern die Cloud Version von Plausible verwendet wird, kann der automatisierte Einrichtungsvorgang mit Next gestartet werden. Da in diesem Fall jedoch eine selbst gehostete Instanz verwendet werden soll, wird der Dialog mit Setup later abgebrochen.

grafik.png

Nun sollten automatisch die Einstellungen des Plugins geöffnet werden, falls nicht einfach links in der Menüleiste über installierte Plugins das Plugin Plausible Analytics aufrufen. Sobald die Einstellungen geöffnet wurden, wird auf Selbst gehostet geklickt.

grafik.png

Hier wird nun zunächst die Domäne des selbst gehosteten Plausible Servers eingetragen.

grafik.png

Die 2. Einstellung für die Integration des Dashboards ist optional und für das Tracking nicht notwendig. Das Dashboard in Plausible selbst funktioniert trotzdem wie gewohnt. Hier wird nur ermöglicht, die Statistiken auch direkt in Wordpress einzusehen.

Nachdem nun die Einstellung für die Verbindung zur eigenen Instanz vorgenommen wurden, kann auf der eigentlichen Einstellungsseite nochmal der Domain name geprüft werden. In diesem Fall war dieser bereits korrekt vorbelegt. Andernfalls kann einfach der Name geändert und mit einem Klick auf Connect gespeichert werden.

grafik.png

Jetzt nur noch ein neues Projekt in Plausible anlegen und auf einem anderen Gerät die Wordpress Seite aufrufen. Es sollte einige Sekunden später der 1. Besucher angezeigt werden. Wie in Plausible eine neue Seite hinzugefügt wird, kann folgenden nachgelesen werden.

Neue Seite in Plausible überwachen

Um eine Seite mit Plausible überwachen zu lassen, wird im Dashboard einfach eine neue Webseite hinzugefügt. Daraufhin erklärt ein kurzer Dialog, was auf der zu überwachenden Seite angepasst werden muss, um die Daten zu sammeln.

Zunächst wird das Dashboard geöffnet und auf "+ Add a website" geklickt.

grafik.png

Es öffnet sich ein Dialog, welcher die URL der zu überwachenden Seite abfragt. Hier wird die eigentliche URL eingetragen, unter der die Webseite erreichbar ist. Dabei wird entweder die eigentliche Domäne oder Subdomäne eingetragen, jedoch nicht www.beispiel.de.

grafik.png

Wenn die Domäne und Zeitzone ausgewählt wurden, einfach auf Add snippet klicken und es wird der Javascript Code angezeigt, der in die Zielseite eingefügt werden muss. Die Code Referenz sollte in den <head></head> Bereich der Webseite eingefügt werden.

grafik.png

Sobald auf Start collecting data geklickt wird, erstellt Plausible das neue Projekt für die Seite und überwacht die Seitenaufrufe.

Plausible wartet nun auf den ersten Besuch. Zusätzlich werden noch einige mögliche Hilfe-Links angezeigt, sollte es Probleme geben. Am besten von einem anderen Gerät aus oder in einem privaten Browser Tab die Zielseite öffnen.

grafik.png

Sobald der 1. Besuch erfolgreich erfasst wurde, wechselt die Ansicht. Es wird das Dashboard mit allen Details zu den Aufrufen angezeigt und die Einrichtung wurde erfolgreich abgeschlossen.

grafik.png

Dashboard

Sobald eine Webseite erfolgreich in Plausible eingebunden wurde und einige Besucher auf der Seite vorbeigeschaut haben, stehen im Dashboard einige Daten zur Verfügung. Für jede Seite wird ein eigenes Dashboard erstellt.

Im folgenden wird das Dashboard für diese Bookstack Instanz betrachtet. Dieses wurde öffentlich unter folgendem Link freigegeben: https://tracking.jaeckel.one/jaeckel.one/

Grundlagen

Auf der Startseite von Plausible werden alle überwachten Seiten angezeigt.

grafik.png

Um das Dashboard einer Seite einsehen zu können, wird diese einfach angeklickt. Nun öffnet sich das Dashboard.

grafik.png

Dieses ist interaktiv, es kann oben rechts der Zeithorizont der Betrachtung eingestellt werden. Hierbei ist insbesondere Realtime hervorzuheben, welches die aktuellen Daten anzeigt, mit wenigen Sekunden Verzögerung. Ein gut geeigneter Filter, um selbst an mehreren Geräten zu testen, wie diese in den Statistiken dargestellt werden oder um zu prüfen, ob auch die Unterseiten korrekt erfasst werden.

grafik.png

Weiterhin sind alle Elemente anklickbar. So kann z. B. einfach auf eine Quelle (z. B. Google) geklickt werden, um schnell einen Filter zu setzen und nur die Aufrufe vom Google Crawler zu filtern.

Dashboard freigeben

Die Freigabe eines Dashboards erfolgt über die Einstellungen der Seite, welche wie folgt erreichbar sind. Hier einfach auf die Site settings klicken.

grafik.png

Unter dem Punkt Visibility kann nun die Sichtbarkeit eingestellt werden.

grafik.png

Öffentlich für alle

Bei der Option Public dashboard wird ein leicht zu erratender Link erstellt, welcher einfach den Namen der Webseite enthält. Wenn ein Dashboard für die Öffentlichkeit bestimmt ist, ist dies die einfachste Art die Seitenaufrufe zu teilen. Wenn der Zugriff stärker eingeschränkt werden soll, ist die 2. Option mit einem erzeugten Link besser.

Über die Option Shared links können ein oder mehrere Links erzeugt werden, unter denen das Dashboard aufgerufen werden kann. Neben einem schwer zu erratenden Link kann zusätzlich ein Passwort vergeben werden. Das Passwort ist optional. Sofern ein Passwort gesetzt wurde, kann das Dashboard selbst bei bekanntem Link erst nach Eingabe des Passwortes eingesehen werden.

grafik.png

Berechtigungen

Jede Seite hat eigene Berechtigungen und Admins können Benutzer zu dieser einladen.

Hierfür einfach die Einstellungen der gewünschten Seite aufrufen und unter People können alle zugriffsberechtigten Benutzer eingesehen sowie neue Benutzer eingeladen werden.

grafik.png

Wir auf Invite geklickt, dann öffnet sich ein Dialog um eine Person einzuladen. Die Person wird über ihre E-Mail Adresse eingeladen. Zusätzlich ist eine der beiden Rollen Admin oder Viewer auszuwählen. Wenn die Felder ausgefüllt sind und auf Invite geklickt wird, erhält die angegebene Person eine E-Mail und kann sich darüber registrieren.

grafik.png

Ziele

Wie bei Google Analytics lassen sich Ziele (Goals) definieren, um zu verfolgen wie oft z. B. neue Seiten, Beiträge oder Formulare aufgerufen werden. Die Ziele werden je Webseite in den Einstellungen festgelegt.

grafik.png

Wenn auf + Add goal geklickt wird, öffnet sich folgender Dialog.

grafik.png

In diesem Dialog wird nun der sog. Trigger also Auslöser ausgewählt. Entweder ein Custom Event wie z. B. eine Registrierung oder eine Pageview also der Aufruf einer Seite.

Die Ziele vom Typ Pageview benötigen keinerlei Anpassungen an der Seite. Während für die Custom Events eine zusätzliche CSS Klasse eingebunden werden muss. Hierzu am besten in die offizielle Dokumentation schauen: Custom event goals

Google Search Console

Laut offizieller Dokumentation lässt sich auch die Google Search Console einbinden, um die Suchbegriffe auswerten zu können, über die die Zielseite auf Google gefunden wurde. Hierfür ist jedoch ein Google Account notwendig sowie eine Registrierung der Seite bei Google. Der Vorgang sollte kostenlos sein, jedoch wurde dies aus Datenschutzgründen nicht getestet. Das Menü findet sich in den Einstellungen der Zielwebseite, jedoch sind zusätzlich Änderungen an der Docker Compose Konfiguration notwendig.

grafik.png

Die Dokumentation zu der Integration befindet sich in der offiziellen Dokumentation: https://plausible.io/docs/google-search-console-integration

E-Mail Berichte

Selbstverständlich werden auch automatische Berichte per E-Mail ermöglicht. Hierfür wurde bereits ein SMTP-Relay Container in der Compose Konfiguration angegeben. Dieser muss noch konfiguriert werden, damit E-Mails verschickt werden können.

Die Einstellung für die Berichte wird je Webseite vorgenommen. Hierfür wieder in die Einstellungen der Webseite wechseln und dort unter Email reports die gewünschten Berichte auswählen.

grafik.png