Plausible Analytics hinter Traefik installieren

Installation von Plausible über Docker mit Traefik. Dieses Open Source Programm kann als Alternative zu Google Analytics genutzt werden.

Plausible Analytics hinter Traefik installieren-heroimage

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

Ghost Einstellungen

Funktioniert aber in den meisten Fällen natürlich nur so lange Ghost nicht headless betrieben wird.


Diese Website verwendet Cookies. Diese sind notwendig, um die Funktionalität der Website zu gewährleisten. Weitere Informationen finden Sie in der Datenschutzerklärung