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
- Webseiten überwachen
- Dashboard
- Berechtigungen
- Ziele
- Google Search Console
- E-Mail Berichte
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.
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.
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.
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.
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.
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.
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.
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.
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.
Hier wird nun zunächst die Domäne des selbst gehosteten Plausible Servers eingetragen.
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.
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.
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.
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.
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.
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.
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.
Um das Dashboard einer Seite einsehen zu können, wird diese einfach angeklickt. Nun öffnet sich das Dashboard.
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.
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.
Unter dem Punkt Visibility kann nun die Sichtbarkeit eingestellt werden.
Ö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 Link
Ü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.
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.
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.
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.
Wenn auf + Add goal
geklickt wird, öffnet sich folgender Dialog.
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.
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.