Plausible Analytics hinter Traefik installieren
Installation von Plausible über Docker mit Traefik. Dieses Open Source Programm kann als Alternative zu Google Analytics genutzt werden.
Inhaltsverzeichnis
Zum Auswerten von Seitenaufrufen wäre es wohl der einfachste Weg Google Analytics zu nutzen. Aber Google Analytics ist datenschutzrechtlich bedenklich. Unzählige Seiten haben dieses Tool eingebaut und der Nutzer wird getrackt, bevor er die Möglichkeit hat, dem zu widersprechen. Ich möchte stattdessen lieber eine selbst-gehostete, datenschutzfreundliche Alternative auf meinem Server installieren.
Plausible is a lightweight and open-source web analytics tool. Your website data is 100% yours and the privacy of your visitors is respected. — Plausible Analytics
Plausible Analytics ist ein Open Source Web-Analyse-Tool und eine datenschutzfreundliche Alternative zu Google Analytics. Es bietet zwar nicht so viele Daten wie Google, dafür ist es unwahrscheinlicher, damit das Recht des Besuchers zu verletzen. Voraussetzung für diese Installation ist die Einrichtung eines Servers mit Docker wie in meiner anderen Anleitung beschrieben, als reverse Proxy fungiert in diesem Fall Traefik.
Nachdem die Verbindung zum Server hergestellt wurde, kann mit der Einrichtung begonnen werden.
cd ~/docker
git clone https://github.com/plausible/hosting plausible
cd plausible
mkdir data
openssl rand -base64 64 >> plausbile-conf.env
In der Datei plausible-conf.env befindet sich nun ein Passwort.
nano plausible-conf.env
Wir ändern den Inhalt der Datei von:
BASE_URL=replace-me
SECRET_KEY_BASE=replace-me
2IjLp8b9/19rTGKalAs8lbQfGO4CvXgIVleBZW7K/fEWkExFjq6CLYMCGNqm579pW4Cb0ps2IWXUx/xMGgD6ig==
Zu:
BASE_URL=https://plausible.einedomain.de
SECRET_KEY_BASE=2IjLp8b9/19rTGKalAs8lbQfGO4CvXgIVleBZW7K/fEWkExFjq6CLYMCGNqm579pW4Cb0ps2IWXUx/xMGgD6ig==
In der letzten Zeile steht jetzt auch der Variablenname.
Die docker-compose Datei sollte leicht angepasst werden.
version: "3.3"
### NETWORKS ###
networks:
web:
external:
name: web
internal:
external: false
default:
driver: bridge
### SERVICES ###
services:
mail:
container_name: mail
image: bytemark/smtp
restart: always
networks:
- internal
labels:
- "traefik.enable=false"
plausible_db:
container_name: plausible_db
image: postgres:14-alpine
restart: unless-stopped
networks:
- internal
volumes:
- ./data/db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
labels:
- "traefik.enable=false"
plausible_events_db:
container_name: plausible_events_db
image: clickhouse/clickhouse-server:22.6-alpine
restart: unless-stopped
networks:
- internal
volumes:
- ./data/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
labels:
- "traefik.enable=false"
plausible:
container_name: plausible
image: plausible/analytics:v2
restart: unless-stopped
networks:
- internal
- web
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-rtr.entrypoints=https"
- "traefik.http.routers.plausible-rtr.rule=Host(`plausible.einedomain.de`)"
- "traefik.http.routers.plausible-rtr.tls=true"
- "traefik.http.routers.plausible-rtr.service=plausible-svc"
- "traefik.http.services.plausible-svc.loadbalancer.server.port=8000"
- "traefik.http.routers.plausible-rtr.middlewares=chain-basic-auth@file"
volumes:
geoip:
driver: local
Die Domain beim Host muss geändert werden. Nun starten wir den Plausible-Server mit docker-compose up -d
und warten, bis die Docker-Container gestartet sind.
Wir schauen uns die logs über lazydocker
an und rufen dann “traefik.einedomain.de” auf, um zu sehen, ob es Fehler gibt. Werden keine Fehler angezeigt, kann die “plausible.einedomain.de” Seite angesteuert werden. Am Ende des Prozesses erhält man einen kurzen Codeblock <script async defer data-domain="deployn.de" src="https://plausible.einedomain.de/js/plausible.js"></script>
den man nur noch in seine Seite einbauen muss.
Einbindung in Ghost
Wenn ihr zum Beispiel einen Ghost Blog habt (Anleitung dazu), könnt ihr den Code in den Site-Header über das grafische Userinterface einbinden
Funktioniert aber in den meisten Fällen natürlich nur so lange Ghost nicht headless betrieben wird.