Weg von Google Analytics: Plausible Analytics selbst hosten

Datenschutzfreundliches Tracking in der eigenen Cloud – mit Reverse Proxy, Autoupdates und klarer Architektur
Google Analytics raus, Plausible rein.
Wenn man es ernst meint mit dem Datenschutz, gehört auch ein selbstbestimmtes Web-Tracking dazu. In diesem Artikel zeige ich euch, wie ihr Plausible Analytics in eurer eigenen Infrastruktur betreiben könnt – mit Reverse Proxy, TLS, Autoupdates und Logging. So bleibt alles unter eurer Kontrolle – ohne Kompromisse.
Warum Plausible?
Plausible ist eine schlanke, europäische Alternative zu Google Analytics. Vollständig Open Source und bewusst datensparsam – keine Cookies, keine personenbezogenen Daten, kein Consent-Banner nötig.
Kernfeatures:
- Einfache Oberfläche, Fokus auf Relevantes
- Echtzeit-Daten
- Multidomain-Tracking
- Selbst hostbar
- Opensource
- API für Dashboards oder Automatisierung
- Extrem leichtgewichtig: < 1 KB Tracking-Script
- Integration externer Dienste wie Suchmaschienen-Reports
Verfügbare Metriken:
- Seitenaufrufe & Besucher:innen in Echtzeit
- Verweildauer & Absprungrate
- Traffic-Quellen (z. B. Direkt, Social, Referral, Search)
- Top-Seiten & Einstiegsseiten
- Länder, Geräte & Browser
- UTM-Parameter-Auswertung
- Ereignis-Tracking für Buttons, Formulare, Downloads etc.
Warum nicht Google Analytics und co.?
Ein entscheidender Grund für den Wechsel weg von Google Analytics ist der Datenschutz – sowohl für uns als Betreiber als auch im Sinne unserer Besucherinnen und Besucher. Dienste wie Google Analytics übertragen personenbezogene Daten in Drittländer (z. B. die USA), was aus Sicht der DSGVO problematisch ist. Selbst mit sogenannten „Standardvertragsklauseln“ bleibt die Rechtslage unsicher. Zudem fühlen sich viele Nutzer:innen zunehmend unwohl dabei, wenn ihr Verhalten auf Webseiten umfassend getrackt wird – und das oft ohne informierte Zustimmung. Mit Plausible Analytics setzen wir bewusst auf ein datenschutzfreundliches Analyse-Tool, das komplett ohne Cookies und personenbezogene Daten auskommt und sich vollständig selbst hosten lässt. So behalten wir die volle Kontrolle über alle Daten – und unsere Besucherinnen und Besucher ihre Privatsphäre.
Zusammengefasst bedeutet das:
- Keine Datenübertragung in Drittländer
- Keine personenbezogenen Daten oder Cookies
- Keine Consent-Management-Plattform
- ohne dass jemand getrackt wird, der das gar nicht möchte
- DSGVO-, PECR- & CCPA-konform ohne Cookie-Banner
- Transparenz und Vertrauen für die Besucher:innen
- Keine Absprungrate durch Cookie-Verweigerung
Architektur & Setup-Überblick
So betreiben wir Plausible:
- Containerbasiert via Docker Compose
- Reverse Proxy mit Traefik (alternativ: Nginx)
- Autoupdates über Watchtower
- Datenhaltung über PostgreSQL & Clickhouse
- Monitoring & Logging mit Grafana/Loki (optional)
Schritt-für-Schritt Setup
Vorbereitungen
- VPS/Server mit Docker & Docker Compose
- Domain für z. B.
analytics.meine-domain.de
- SMTP-Zugangsdaten (für Report-Versand & Benachrichtigungen)
- MaxMind-Account + Lizenzschlüssel (gratis) für GeoIP
Verzeichnisstruktur anlegen
Wir starten mit dem Projektordner. Wechsle auf deinen Server und führe aus:
mkdir plausible && cd plausible
touch docker-compose.yml plausible.env
Plausible-Konfiguration anlegen
.env
-Datei erstellen (plausible.env)
Erstelle in plausible/
die Datei plausible.env
mit folgendem Inhalt:
# Basisadresse
BASE_URL=https://analytics.deine-domain.de
# Datenbank-Zugänge
SECRET_KEY_BASE=zufällig-generierter-key
DATABASE_URL=postgres://postgres:sicherespasswort@postgres:5432/plausible_db
CLICKHOUSE_DATABASE_URL=http://clickhouse:8123/plausible
# Mailversand via SMTP
MAILER_EMAIL=analytics@deine-domain.de
SMTP_HOST=smtp.deinprovider.de
SMTP_PORT=587
SMTP_USER=analytics@deine-domain.de
SMTP_PASSWORD=deinpasswort
SMTP_TLS_ENABLED=true
SMTP_AUTH_METHOD=plain
# Registrierung deaktivieren
DISABLE_REGISTRATION=true
# MaxMind GeoIP
GEOLITE2_COUNTRY_DB=/geo/GeoLite2-Country.mmdb
MAXMIND_LICENSE_KEY=dein-maxmind-license-key
Docker Compose Setup (docker-compose.yml)
Jetzt die Datei docker-compose.yml
im gleichen Ordner mit folgendem Inhalt befüllen:
version: "3.3"
services:
plausible:
image: plausible/analytics:latest
restart: always
depends_on:
- postgres
- clickhouse
env_file:
- plausible.env
volumes:
- ./geo:/geo
labels:
- "traefik.enable=true"
- "traefik.http.routers.plausible.rule=Host(`analytics.deine-domain.de`)"
- "traefik.http.routers.plausible.entrypoints=websecure"
- "traefik.http.routers.plausible.tls.certresolver=letsencrypt"
networks:
- plausible
postgres:
image: postgres:15
restart: always
environment:
POSTGRES_PASSWORD=sicherespasswort
POSTGRES_DB=plausible_db
volumes:
- plausible-db:/var/lib/postgresql/data
networks:
- plausible
clickhouse:
image: clickhouse/clickhouse-server:23
restart: always
volumes:
- plausible-ch:/var/lib/clickhouse
networks:
- plausible
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --cleanup
restart: always
networks:
plausible:
volumes:
plausible-db:
plausible-ch:
Reverse Proxy mit Traefik
Du nutzt bereits einen Reverse Proxy? Perfekt. Nutz ihn weiter! Weitere Komponenten steigern nur die Komplexität und senken die Sicherheit!
Falls nicht, hier ein minimalistisches Traefik Setup:
services:
traefik:
image: traefik:v2.10
restart: always
command:
- "--entrypoints.websecure.address=:443"
- "--providers.docker=true"
- "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
- "--certificatesresolvers.letsencrypt.acme.email=dein@email.de"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt"
``
Start & Erstkonfiguration
Jetzt geht’s los, wir starten die Container:
docker compose up -d
Warte 1–2 Minuten, dann öffne im Browser https://analytics.deine-domain.de
🔒 Hinweis: Dank DISABLE_REGISTRATION=true
ist die Registrierung deaktiviert – aber du kannst jetzt genau einen Admin anlegen.
Test & Prüfung
- Logge dich ein
- Lege eine neue "Website" in Plausible an
- Binde den Tracking-Code
<script>
in deine Website ein - Besuche die Seite im Inkognito-Modus – prüfe Echtzeit-Daten
Optional: Logs mit Loki/Grafana verknüpfen
Du kannst die Container-Ausgaben (stdout) an deine bestehende Loki-Instanz übergeben und in Grafana visualisieren. Das bietet eine gute Ergänzung zu Plausible-internen Statistiken.
Fragen und Antworten
ClickHouse: Muss ich da noch was einrichten?
Nein. Plausible verwaltet die benötigten Tabellen beim Start selbstständig – ClickHouse ist als reiner Datenbankdienst eingebunden. Wichtig ist nur, dass der Port 8123
in der Docker-Compose-Umgebung erreichbar ist und die URL korrekt gesetzt ist (siehe CLICKHOUSE_DATABASE_URL
).
Kann sich jeder in meinem Plausible anmelden?
Mit DISABLE_REGISTRATION=true
im .env
-File wird die Selbstregistrierung auf der Login-Seite deaktiviert.
Admins können neue Nutzer manuell über die Weboberfläche anlegen.
Warum sehe ich keine Lokationsdaten?
Standortdaten werden über die MaxMind GeoIP-Database ermittelt, daher muss der (kostenlose) Lizenzschlüssel für den Download der Datenbank gesetzt sein.
Wenn du GeoIP-Daten nutzen willst (für Länder-Reports), brauchst du:
- Kostenlosen MaxMind-Account
- Lizenz-Key erstellen
.env
-EintragMAXMIND_LICENSE_KEY=...
setzen- Ordner
geo/
anlegen → dort wirdGeoLite2-Country.mmdb
gespeichert
Optional kannst du den Download auch selbst mit einem Skript regelmäßig aktualisieren.
Was ist mit Updates?
Watchtower prüft regelmäßig alle Container auf Updates. Du musst nichts tun – Updates werden automatisch eingespielt. Du kannst das Logging mitverfolgen:
docker logs -f <watchtower-container-id>
Fazit
Plausible ist nicht nur eine Alternative zu Google Analytics – es ist ein Statement.
Datenschutz, Transparenz, Kontrolle – auf deinem eigenen Server, nach deinen Regeln.
Member discussion