Plausible Analytics mit Docker & Traefik installieren
Installiere die datenschutzfreundliche Google Analytics Alternative Plausible mit Docker und Traefik. Self-hosted Web-Analytics auf dem eigenen Server.
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.
Verwandte Artikel
Ghost CMS mit Docker und Traefik einrichten (Anleitung)
Ghost CMS mit Docker hinter einem Traefik Reverse Proxy betreiben. Schritt-für-Schritt-Anleitung für dein eigenes Blog-System mit SSL und Domain – jetzt starten!
Anleitung für Mailserver Mailcow hinter Traefik mit Docker
Eigener Mailserver mit Mailcow und Docker einrichten. Hinter Traefik als Reverse Proxy mit SSL, Spam-Filter und Webmail. Schritt-für-Schritt zum eigenen Mailserver!
n8n mit Docker und Traefik: Workflow-Automatisierung
n8n mit Docker und Traefik einrichten: Automatisiere Workflows effizient. Mit Reverse-Proxy, SSL und Beispielen – Prozesse automatisieren und Zeit sparen!
Server mit Traefik als Reverse Proxy für Docker einrichten
Richte deinen Server mit Docker ein und nutze Traefik als Reverse Proxy mit Docker Compose. Automatische SSL-Zertifikate und sicheres Container-Management.