Wähle einen Artikel
Matomo auf vServer installieren

0. Überblick

  • Verwendetes System: Debian 11 64 bit 
  • Testsystem: vServer XXL 2.0
  • Genutzter User: Ich nehme alles als „root“ vor
  • Zeitdauer: ca. 10 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren 😉
  • Besonderheiten:
  • Grundlage ist folgende Anleitung: Traefik Reverse Proxy installieren Diese Anleitung muss zuerst ausgeführt werden.
  • Die Installation von Docker / Docker Compose wird hier vorausgesetzt.

1. Matomo installieren

1.1 Einleitung

Matomo (https://matomo.org) ist eine open source Web Analyse Plattform. Der Vorteil von Matomo gegenüber beispielsweise Google Analytics ist, dass ihr alle Daten auf eurem Server habt. Dies ist im Sinne der DSGVO wichtig und so könnt ihr sicherstellen, dass alle Daten in der EU (Deutschland) verbleiben. Ebenfalls könnt ihr genau einstellen, was ihr überhaupt tracken möchtet.

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Matomo werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um Matomo neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik.

1.3.1 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Matomo abspeichen. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/matomo/{database,app}

Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von Matomo beginnen. Dazu öffnet ihr folgende Datei:

nano /opt/containers/matomo/docker-compose.yml

Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Matomo Container.

version: '3' 

services: 

  matomo-db: 

    image: mariadb 

    command: --max-allowed-packet=64MB 

    restart: unless-stopped 

    volumes: 

      - /opt/containers/matomo/database:/var/lib/mysql 

    environment: 

      - MYSQL_RANDOM_ROOT_PASSWORD= '1' 

      - MYSQL_PASSWORD=abc           ## Hier Passwort eingeben ## 

      - MYSQL_DATABASE=matomo 

      - MYSQL_USER=matomo 

    networks: 

      - default 

  matomo-app: 

    image: matomo:fpm-alpine 

    restart: unless-stopped 

    volumes: 

      - /opt/containers/matomo/app:/var/www/html 

    environment: 

      - MATOMO_DATABASE_HOST=matomo-db 

      - MATOMO_DATABASE_ADAPTER=mysql 

      - MATOMO_DATABASE_TABLES_PREFIX=matomo_ 

      - MATOMO_DATABASE_USERNAME=matomo 

      - MATOMO_DATABASE_PASSWORD=abc        ## Hier selbes Passwort eingeben ## 

      - MATOMO_DATABASE_DBNAME=matomo 

    networks: 

      - default 

  matomo-web: 

    image: nginx:alpine 

    restart: unless-stopped 

    volumes: 

      - /opt/containers/matomo/app:/var/www/html:ro 

      - ./matomo.conf:/etc/nginx/conf.d/default.conf:ro 

    labels: 

      - "traefik.enable=true" 

      - "traefik.http.routers.matomo-app.entrypoints=http" 

      - "traefik.http.routers.matomo-app.rule=Host(`matomo.euredomain.de`)" 

      - "traefik.http.middlewares.matomo-app-https-redirect.redirectscheme.scheme=https" 

      - "traefik.http.routers.matomo-app.middlewares=matomo-app-https-redirect" 

      - "traefik.http.routers.matomo-app-secure.entrypoints=https" 

      - "traefik.http.routers.matomo-app-secure.rule=Host(`matomo.euredomain.de`)" 

      - "traefik.http.routers.matomo-app-secure.tls=true" 

      - "traefik.http.routers.matomo-app-secure.tls.certresolver=http" 

      - "traefik.http.routers.matomo-app-secure.service=matomo-app" 

      - "traefik.http.services.matomo-app.loadbalancer.server.port=80" 

      - "traefik.docker.network=proxy" 

    networks: 

      - default 

      - proxy 

networks: 

  proxy: 

    external: true

Nun müssen wir noch einiges anpassen.

1.3.4 Hostname anpassen

Nun müsst ihr noch den Hostnamen anpassen, über welchen später Matomo erreichbar sein soll.

Diese beiden Zeilen müsst ihr anpassen.

    - "traefik.http.routers.matomo-app.rule=Host(`matomo.euredomain.de `)" 
    - "traefik.http.routers.matomo-app-secure.rule=Host(`matomo.euredomain.de`)"

In meinem Fall also:

    - "traefik.http.routers.matomo-app.rule=Host(`matomo.testbereich.net`)" 
    - "traefik.http.routers.matomo-app-secure.rule=Host(`matomo.testbereich.net`)"

1.3.5 Passwörter anpassen

Nachdem ihr den Hostnamen angepasst habt, müsst ihr noch das MySQL Kennwort anpassen.

Folgende Zeilen müsst ihr ändern:

MYSQL_PASSWORD=abc           ## Hier Passwort eingeben ## 
MATOMO_DATABASE_PASSWORD=abc        ## Hier selbes Passwort eingeben ##

Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:

MYSQL_PASSWORD=Fjabez34!          ## Hier Passwort eingeben ##
MATOMO_DATABASE_PASSWORD=Fjabez34!           ## Hier selbes Passwort eingeben ##

Nun sind wir fertig.

1.4 nginx Konfiguration anlegen

Nun legen wir noch eine Konfigurationsdatei für unseren Webserver im Container an. Dazu gebt ihr folgenden Befehl ein:

nano /opt/containers/matomo/matomo.conf

In die Datei kopiert ihr folgenden Code:

upstream php-handler { 

server matomo-app:9000; 

} 

server { 

listen 80; 

add_header Referrer-Policy origin; # make sure outgoing links don't show the URL to the Matomo instance 

root /var/www/html; # replace with path to your matomo instance 

index index.php; 

try_files $uri $uri/ =404; 

##  only allow accessing the following php files 

location ~ ^/(index|matomo|piwik|js/index|plugins/HeatmapSessionRecording/configs).php { 

#  regex to split $uri to $fastcgi_script_name and $fastcgi_path 

fastcgi_split_path_info ^(.+\.php)(/.+)$; 

#  Check that the PHP script exists before passing it 

try_files $fastcgi_script_name =404; 

include fastcgi_params; 

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

fastcgi_param PATH_INFO $fastcgi_path_info; 

fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/ 

fastcgi_pass php-handler; 

} 

##  deny access to all other .php files 

location ~* ^.+\.php$ { 

deny all; 

return 403; 

} 

##  disable all access to the following directories 

location ~ /(config|tmp|core|lang) { 

deny all; 

return 403; # replace with 404 to not show these directories exist 

} 

location ~ /\.ht { 

deny all; 

return 403; 

} 

location ~ js/container_.*_preview\.js$ { 

expires off; 

add_header Cache-Control 'private, no-cache, no-store'; 

} 

location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ { 

allow all; 

##  Cache images,CSS,JS and webfonts for an hour 

##  Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade 

expires 1h; 

add_header Pragma public; 

add_header Cache-Control "public"; 

} 

location ~ /(libs|vendor|plugins|misc/user) { 

deny all; 

return 403; 

} 

##  properly display textfiles in root directory 

location ~/(.*\.md|LEGALNOTICE|LICENSE) { 

default_type text/plain; 

} 

} 

2. Matomo starten

Gebt nun folgendes ein, um euren Matomo Container zu starten:

docker compose -f /opt/containers/matomo/docker-compose.yml up -d

Geht nun mit eurem Webbrowser auf eure Webseite (z.B. matomo.euredomain.de). Dort sollte nach einigen Sekunden folgendes zu sehen sein:

Screenshot einer Matomo-Setup-Seite: Logo oben links, linke Seitenleiste mit Menüpunkten, mittig 'Willkommen!' und grünem Button.

Hier klickt ihr nun auf „Nächste“.

Jetzt wird ein Systemcheck durchgeführt. Hier sollte alles „grün sein“.

Screenshot der Matomo-Oberfläche: linke Seitenleiste, Überschrift Systemprüfung, grüne Fortschrittsleiste oben, roter Rahmen um Häkchenliste.

Nun kommt ihr zur Datenbankeinrichtung. Unser Docker Skript hat alle Werte bereits übertragen. Ihr müsst also nur „Nächste“ klicken.

Datenbank-Einrichtung: Felder für Server, Benutzer, Passwort, Datenbankname, Tabellen-Präfix; Adapter; grüne NÄCHSTE.

Nun habt ihr die Datenbank erfolgreich angebunden.

Screenshot der Matomo-Installation: linke Navigation, zentrale Meldung Die Tabellen wurden erfolgreich erzeugt!, NÄCHSTE.

Im nächsten Schritt müsst ihr einen Administrator Account anlegen.

Screenshot: linke Schrittliste (1–8); rechts Formular 'Hauptadministrator' mit Passwort, Passwort-Wiederholung und E-Mail.

Nun müsst ihr lediglich noch den Namen eurer Webseite angeben, welche ihr später tracken wollt. Dies könnt ihr aber später jederzeit noch anpassen. Bei mir ist dies unsere Wordpress Instanz (wordpress.testbereich.net).

Screenshot einer Admin-Oberfläche: linke Navigation, zentrales Formular mit Name, URL, Zeitzone und Ecommerce; grüne Bestätigung.

Im letzten Schritt seht ihr einen Tracking Code. Diesen benötigen wir jedoch NICHT. Daher könnt ihr hier einfach weiter klicken.

Screenshot einer Matomo-Seite mit Logo, Seitenleiste und Überschrift 'Tracking-Code für Wordpress - dogado' sowie Code.

Jetzt seid ihr fertig mit der Einrichtung.

Matomo-Seitenansicht: linke Navigationsleiste mit Menüpunkten, Hauptbereich mit Willkommensnachrichten und Fortschrittsbalken.

Nachdem ihr euch nun angemeldet habt, solltet ihr folgendes sehen.

Screenshot einer Matomo-Setup-Seite: blaue Kopfzeile, Logo links, Textblöcke, Tabs Integration, Tracking-Code, Tag Manager.

Hier bekommt könnt ihr euch auch die „Liste der zur Integration von Matomo vorhandenen Plugins“ anschauen. Der Link führt auf diese Webseite (https://matomo.org/integrate)

Content Management Systems-Seite mit Raster aus CMS-Logos (WordPress, Drupal, TYPO3, SharePoint) und Kategorienliste.

Dort könnt ihr euch die verschiedenen Plugins zur Integration anschauen.

3. Integration von Matomo in Wordpress

Hier zeige ich euch nun, wie ihr Matomo DSGVO Konform in euren Wordpress Blog integrieren könnt.

3.1 Einstellungen bei Matomo

Zuerst loggt ihr euch in euer Matomo Webinterface ein. Anschließend klickt ihr oben rechts auf das Zahnrad.

Blaue Navigationsleiste mit weißen Bezeichnungen: Dashboard, Alle Websites, Tag Manager; daneben ein Zahnradsymbol.

Hier klickt ihr nun auf „Privatsphäre --> Daten anonymisieren“.

Matomo-Seitenleiste mit Suchfeld; Abschnitt Privatsphäre, hervorgehobener Eintrag 'Daten anonymisieren'.

Wählt nun diese Einstellungen aus und klickt auf Speichern.

Screenshot einer Matomo-Seite Daten anonymisieren; drei IP-Anonymisierungsoptionen, rote Markierungen um Felder.
Datenschutz-Einstellungsfenster: IP-Anonymisierung, Pseudonym-ID, Bestellnummern, Tracking-Erzwingen; Speichern-Button.

Nun klickt ihr auf „Websites --> Tracking-Code“.

Matomo-Oberfläche mit blauem Kopf, Suchfeld und Seitenmenü; Tracking-Code markiert.

Hier klickt ihr nun auf „anzeigen“ im Bereich „Erweitert“.

Screenshot der Einstellungsseite Tracking mit JavaScript mit Website-Feld, Optionsliste und rotem Anzeigen-Button.

Hier passt ihr jetzt die Einstellungen entsprechend dem Bild an.

Einstellungsfenster mit zwei Checkboxen: Clientseitige Do-Not-Track Erkennung aktivieren; Alle Tracking Cookies deaktivieren.

Etwas weiter unten seht ihr nun unseren Tracking Code. Diesen benötigen wir später. Also lasst die Webseite hier bitte noch offen.

Screenshot eines Browserfensters mit Cookie-Einstellungen oben und roter Rand um einen JavaScript-Codeblock.

3.2 Matomo Authentifizierungstoken generieren

Nun erstellen wir ein Token zur Authentifizierung, welches wir später für unser Wordpress Plugin benötigen werden. Dazu geht ihr im Matomo Webinterface auf den Punkt „Persönlich --> Sicherheit“.

Matomo-Oberfläche mit blauem Kopfbereich, Suchfeld und seitlichem Menü; Abschnitt 'Sicherheit' rot umrandet.

Hier scrollt ihr nun nach unten und klickt auf „Neuen Token generieren“.

Screenshot eines Dashboards mit der grünen Schaltfläche NEUEN TOKEN GENERIEREN und einer Tabellenansicht.

Anschließend gebt ihr noch euer Kennwort ein.

Bildschirm mit blauer Kopfzeile und Matomo-Logo; weiße Karte mit Passwort-Eingabe und grünem Bestätigen-Button.

Nun gebt ihr noch eine Beschreibung ein. Bei mir ist das „Wordpress – dogado.de“.

Dialogfenster zur Generierung eines Authentifizierungstokens. Textfeld: Wordpress - dogado.de; Button: NEUEN TOKEN GENERIEREN.

Nun bekommt ihr ein Token angezeigt. Dieses Token benötigen wir später. Also lasst diese Webseite bitte noch offen.

Bildschirm: Token erfolgreich generiert; rote Box enthält lange Token-Zeichenfolge, grauer Hintergrund, grüne Bar.

3.3 Matomo Plugin unter Wordpress installieren

Nun meldet ihr euch bei Wordpress als Administrator an. Klickt nun auf „Plugins“.

WordPress-Admin-Dashboard: Linke Seitenleiste mit Menüpunkten; Plugins-Item rot umrandet.

Anschließend auf „Installieren“.

WordPress-Admin-Oberfläche: Plugins-Seite mit hervorgehobenem Button 'Installieren'.

Nun sucht ihr nach „Matomo“ und bekommt anschließend folgendes angezeigt.

WordPress-Admin-Seite: Plugins hinzufügen; Kartenansicht, eine Karte ist rot umrissen und zeigt ein Globus-Symbol.

Nun klickt ihr bei diesem Plugin auf „Jetzt installieren“.

Plugin-Karte mit rotem Globus-Icon links, Titel WP-Matomo Integration, Installieren-Button rechts, kurze Beschreibung.

Anschließend müsst ihr das Plugin noch aktivieren. Klickt dazu auf „Aktivieren“.

Rotes Plugin-Symbol mit Globus und Diagramm links; rechts blauer 'Aktivieren'-Button; Titel und Sterne-Bewertung sichtbar.

Zur Konfiguration des Plugins klickt ihr auf „Einstellungen --> WP-Matomo“.

WordPress-Admin: linke Seitenleiste; Einstellungen geöffnet; WP-Matomo im Untermenü markiert.

Hiermüsst ihr jetzt eure Matomo URL angeben. Bei mir ist das beispielsweise https://matomo.testbereich.net. Nun gebt ihr noch den „Auth Token“ ein, welches wir in Abschnitt 3.2 generiert haben.

WP-Matomo Einstellungen: Matomo-URL https://matomo.testbrech.net, Auth Token mit Code, Änderungen speichern.

Wenn alles erfolgreich war, dann sollte es nun so bei euch aussehen.

WP-Matomo Einstellungen: grüner Hinweis 'Änderungen gespeichert', rote Statuszeile, Buttons und Formularfelder.

Klickt nun auf „Tracking aktivieren“.

Screenshot der WP-Matomo Einstellungen; hervorgehobener Button 'Tracking aktivieren' mit weiteren Schaltflächen.

'


Nun wählt ihr „Manuelle Eingabe“ und klickt auf Speichern.

Screenshot einer Weboberfläche mit dem Dropdown 'Manuelle Eingabe' und dem Button 'Änderungen speichern'.

Jetzt sollte es so aussehen:

Screenshot der WP-Matomo-Einstellungen: Plugin-Seite mit Tracking-Code-Feld, Footer-Position und Noscript-Code.

Hier kopiert ihr nun den Code aus Abschnitt 3.1 hinein.

Screenshot der WP-Matomo-Einstellungen: Überschrift, Buttons (Verbinden, Statistiken, Tracking aktivieren, Experten-Konfiguration, Support), Tracking-Code-Eingabe.

Anschließend klickt ihr auf Speichern.

4. Tracking im Matomo Dashboard anschauen

Nun müsst ihr mit eurem Webbrowser einmal auf eure getrackte Webseite gehen, damit es einen Besucher in der Statistik gibt. Dies ist wichtig, da sich sonst das Dashboard nicht öffnet!

Anschließend könnt ihr bei Matomo auf Dashboard klicken.

Blaue Navigationsleiste mit links hervorgehobenem Dashboard-Button; daneben Menüpunkte wie Alle Websites und Tag Manager.

Nun seht ihr euer Dashboard und könnt euch die erfassten Besuche anschauen.

Screenshot eines Matomo-Dashboards: linke Seitenleiste, blauer Kopfbereich und mehrere Widgets mit Diagrammen

Unter den Reitern „Besucher“ und „Verhalten“ könnt ihr noch viel mehr über eure Besucher erfahren, beispielsweise wie lange sie auf eurer Webseite waren, mit welchem Browser und vieles mehr.

Matomo-UI: blauer Kopfbereich mit Logo, Suchfeld; seitliche Menüleiste mit Dashboard, Besucher, Verhalten (roter Rahmen).
Nächster Artikel
Mattermost Chatsystem auf vServer/VPS installieren
Weitere passende Themen