Seit geraumer Zeit suche ich nach Möglichkeiten, Website-Analysen zu erfassen, ohne diese lästigen Einwilligungsbanner anzeigen zu müssen. Wenn Sie schon immer Website-Analysen ohne Kompromisse bei Datenschutz oder Benutzererfahrung wollten, ist dieser Artikel genau richtig für Sie.
In diesem Leitfaden stelle ich Ihnen Plausible Analytics vor - eine leichtgewichtige, quelloffene, datenschutzorientierte Alternative zu Google Analytics - und führe Sie durch die Einrichtung auf einem kostengünstigen Kubernetes-Cluster in Azure.
Update (Aug 2025): Azure hat die Basic Load Balancer SKU ausgemustert. Wenn Sie diesem Leitfaden folgen, stellen Sie sicher, dass Sie stattdessen den Standard Load Balancer verwenden. Die Standard SKU fügt Ihren monatlichen Kosten rund 18,- Euro hinzu, ist aber jetzt die einzige unterstützte Option für AKS-Cluster.
Was ist Plausible.io?
Plausible.io ist ein einfaches, aber leistungsstarkes Analysetool, das mit Fokus auf Datenschutz entwickelt wurde. Im Gegensatz zu Google Analytics verwendet Plausible keine Cookies und sammelt keine personenbezogenen Daten. Dadurch können Sie den Cookie-Einwilligungsbanner komplett weglassen und bleiben dennoch konform mit der DSGVO und anderen Datenschutzgesetzen.
Es ist eine großartige Option für Websites, denen Benutzerfreundlichkeit, Performance und der Respekt vor der Privatsphäre der Besucher wichtig sind.
Das Beste daran? Sie können es selbst betreiben. Sie können mit ihrer gehosteten Cloud-Version beginnen, die mit einer kostenlosen Testversion kommt - perfekt, wenn Sie es ohne Einrichtungsaufwand testen möchten. Wenn Ihnen gefällt, was Sie sehen, können Sie entweder bei ihrem Abonnement bleiben oder die volle Kontrolle durch Self-Hosting übernehmen.
Self-Hosting vs. Gehostete Lösung
Self-Hosting ist ideal, wenn Sie wie ich Entwickler sind und zufällig noch etwas Azure-Guthaben übrig haben. Es gibt Ihnen volle Kontrolle und kann sehr kosteneffektiv sein. Aber wenn das nicht Ihre Situation ist, ist die gehostete Lösung wahrscheinlich die wirtschaftlichere und problemlosere Wahl.
In jedem Fall macht es Plausible leicht, loszulegen - und in diesem Artikel zeige ich Ihnen, wie Sie es selbst mit Docker und Kubernetes auf Azure einrichten.
Kostengünstiges Plausible.io-Hosting mit Azure Kubernetes
In diesem Artikel zeige ich Ihnen die günstigste Möglichkeit, Plausible.io auf Azure Kubernetes Service (AKS) zu hosten.
Um Ihnen eine Vorstellung zu geben, was Sie erwarten können: Der Betrieb dieses Setups für einen vollen Monat kostet mich rund 35 € und das beinhaltet tägliche inkrementelle Backups.
Update (Aug 2025): Aufgrund der Kosten des Standard Load Balancers werden dies jetzt etwa 53 € sein.

Dieses Setup umfasst die folgenden Hauptkomponenten:
- cert-manager - zur automatischen Verwaltung von SSL/TLS-Zertifikaten
- Let's Encrypt - zur Ausstellung kostenloser, vertrauenswürdiger SSL-Zertifikate
- NGINX Ingress Controller - zur Verarbeitung des Routings und zur Bereitstellung von Plausible im Internet
- Plausible.io - die datenschutzfreundliche Analyseplattform, die wir bereitstellen
Speicher-Tipp: Verwenden Sie Ephemeral Disks für Kosteneinsparungen
Bei der Erstellung eines AKS-Clusters entstehen die Hauptzusatzkosten durch die persistente OS-Disk, die standardmäßig für jeden Knoten erstellt wird.
Um Kosten zu reduzieren, können Sie stattdessen ephemere OS-Disks verwenden. Diese werden direkt im lokalen Speicher der VM gespeichert und verursachen keine zusätzlichen Kosten. Sie sind ideal für zustandslose Workloads oder Setups, bei denen persistenter Speicher separat verwaltet wird - wie in diesem Fall, wo wir die Daten von Plausible auf einem angehängten Volume speichern.
Wenn Sie diesen Weg gehen, stellen Sie sicher, dass Sie die maximal zulässige Disk-Größe für Ihre ausgewählte VM-Größe überprüfen. Zum Beispiel unterstützt die VM-Größe Standard_B2s bis zu 30 GB ephemeren Speicher - was mehr als ausreichend ist, um die notwendigen Docker-Images zu speichern.
In der Schritt-für-Schritt-Anleitung unten können Sie die Befehle direkt in der Azure Cloud Shell ausführen.
# Ressourcengruppe und Cluster-Namen festlegen
RESOURCEGROUP=rg-plausible-westeu-prod
CLUSTERNAME=aks-plausible-westeu-prod
LOCATION=westeurope
VMSIZE=Standard_B2s
VMDISKSIZE=30 # Behalten Sie dies bei der maximalen Größe, die die VM erlaubt (dies ist das Maximum von Standard_B2s)
# Ressourcengruppe erstellen
az group create --name $RESOURCEGROUP --location $LOCATION
# AKS-Cluster erstellen - mit dem Standard Loadbalancer
az aks create --resource-group $RESOURCEGROUP --name $CLUSTERNAME \
--node-vm-size $VMSIZE \
--node-count 1 \
--node-resource-group ${RESOURCEGROUP}-nodes \
--load-balancer-sku standard \
--generate-ssh-keys \
--location $LOCATION \
--node-osdisk-type Ephemeral \
--node-osdisk-size $VMDISKSIZE
# Credentials für den AKS-Cluster abrufen (für die folgenden Schritte)
az aks get-credentials --resource-group $RESOURCEGROUP --name $CLUSTERNAME
Mit dem laufenden Cluster besteht der nächste Schritt darin, einen ClusterIssuer zu erstellen, der die Ausstellung von TLS-Zertifikaten mit Let's Encrypt automatisiert, und einen Ingress einzurichten, der den externen Verkehr verarbeitet und ihn zum richtigen Service innerhalb des Clusters leitet.
# E-Mail-Adresse für Let's Encrypt festlegen
LETSENCRYPTEMAIL=[email protected] # <--- Ändern Sie dies zu Ihrer E-Mail-Adresse
# Letsencrypt Cluster Issuer erstellen
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--set crds.enabled=true
kubectl create -f - <<EOF
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-production
namespace: cert-manager
spec:
acme:
# Die ACME-Server-URL
server: https://acme-v02.api.letsencrypt.org/directory
# E-Mail-Adresse für die ACME-Registrierung
email: ${LETSENCRYPTEMAIL}
# Name eines Secrets zum Speichern des privaten ACME-Kontoschlüssels
privateKeySecretRef:
name: letsencrypt-production
# HTTP-01 Challenge Provider aktivieren
solvers:
- http01:
ingress:
class: nginx
EOF
# NGINX Ingress Controller installieren
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm upgrade --install \
ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--set controller.service.type=LoadBalancer \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz \
--set controller.service.externalTrafficPolicy=Local \
--create-namespace
echo "Warte darauf, dass die externe IP dem Ingress Controller zugewiesen wird. Sobald sie verfügbar ist, können Sie dieses Skript stoppen"
kubectl get service --namespace ingress-nginx ingress-nginx-controller --output wide --watch
Warten Sie, bis die externe IP verfügbar wird. Sobald sie erscheint, können Sie das Skript stoppen - Ihr Cluster ist jetzt vollständig eingerichtet, um Dienste auszuführen und sie über diese öffentliche IP-Adresse bereitzustellen.
Als Nächstes gehen Sie zu Ihrem DNS-Provider und erstellen einen DNS-Eintrag, der auf diese IP verweist.
Zum Beispiel könnten Sie eine Subdomain wie plausible.ihredomain.com erstellen.
Jetzt werden wir Plausible auf dem Cluster installieren. In der nachfolgenden Konfiguration sehen Sie, dass wir:
- Den Speicher persistent machen für sowohl PostgreSQL als auch ClickHouse - hier werden alle Ihre Analysedaten gespeichert. Auf diese Weise können Sie Ihre Daten einfach sichern und bei Bedarf wiederherstellen. Es ermöglicht auch die Verwaltung der Container, ohne Daten zu verlieren.
- Den Ingress annotieren mit dem ClusterIssuer, den wir zuvor erstellt haben, damit er automatisch TLS-Zertifikate für uns anfordern und erneuern kann.
- Plausible mit dem Ingress verbinden und den DNS-Namen für den öffentlichen Zugriff angeben.
# DNS-Namen für Plausible festlegen
PLAUSIBLE_DNS=plausible.ihredomain.com
# Plausible Analytics mit Helm bereitstellen
helm repo add imio https://imio.github.io/helm-charts
helm repo update
helm upgrade --install plausible-analytics imio/plausible-analytics \
--namespace plausible-analytics \
--create-namespace \
--version 0.4.2 \
--set baseURL="http://${PLAUSIBLE_DNS}" \
--set postgresql.primary.persistence.enabled=true \
--set postgresql.primary.persistence.size=1Gi \
--set clickhouse.persistence.enabled=true \
--set clickhouse.persistence.size=8Gi \
--set ingress.enabled=true \
--set ingress.annotations."cert-manager\.io/cluster-issuer"="letsencrypt-production" \
--set ingress.annotations."kubernetes\.io/ingress\.class"=nginx \
--set ingress.annotations."kubernetes\.io/tls-acme"="\"true\"" \
--set ingress.className=nginx \
--set ingress.hosts[0]=${PLAUSIBLE_DNS} \
--set ingress.paths.path=/ \
--set ingress.tls[0].secretName=letsencrypt-production \
--set ingress.tls[0].hosts[0]=${PLAUSIBLE_DNS}
# Bereitstellungsfortschritt überwachen
echo "Überwache Bereitstellungsfortschritt..."
kubectl get pods -n plausible-analytics -w
Nachdem das Skript abgeschlossen ist, sollten Sie in der Lage sein, auf Plausible unter dem von Ihnen konfigurierten DNS-Namen zuzugreifen - zum Beispiel
plausible.ihredomain.com.

Fazit
In diesem Artikel haben wir eine kosteneffektive und datenschutzfreundliche Analyselösung mit Plausible.io auf Azure Kubernetes Service (AKS) eingerichtet. Durch die Nutzung von Kubernetes können wir unsere Analyseplattform skalieren, verwalten und absichern, während wir konform mit Datenschutzbestimmungen bleiben - alles ohne lästige Cookie-Einwilligungsbanner.
Sie haben gelernt, wie Sie:
- Den günstigstmöglichen AKS-Cluster mit Ihrem Azure-Guthaben konfigurieren
- Ingress und TLS-Zertifikat-Automatisierung mit cert-manager und Let's Encrypt einrichten
- Plausible.io mit persistentem Speicher für PostgreSQL und ClickHouse bereitstellen und betreiben
Dieses Setup bietet wertvolle Einblicke in den Website-Traffic, respektiert die Privatsphäre der Benutzer und gibt Ihnen volle Kontrolle über Ihre Daten - alles zu niedrigen monatlichen Kosten.
Wenn Sie nach einer leichtgewichtigen, quelloffenen Alternative zu Google Analytics suchen, ist Plausible.io definitiv eine Überlegung wert.
Wenn Sie Fragen haben oder unterwegs Hilfe benötigen, können Sie sich gerne melden.
Viel Erfolg beim Tracking!
