Wähle einen Artikel
Matomo auf VPS installieren
Matomo auf VPS installieren

Volle Kontrolle mit deinem eigenen VPS von easyname

Mit einem VPS von easyname hast du volle Kontrolle über deinen Server – flexibel, skalierbar und umweltbewusst betrieben in ISO-zertifizierten Rechenzentren in Österreich. Ideal für deine Anwendungen, Projekte und maximale Performance.

Hinweis
Einige Screenshots zeigen das Backend unseres Schwesterunternehmens dogado. Die gezeigten Schritte können jedoch auch im easyname-Backend durchgeführt werden.

0. Überblick

  • Verwendetes System: Debian 11 64 bit
  • Testsystem: VPS General Purpose
  • 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 ist eine open source Web Analyse Plattform. Der Vorteil von Matomo gegenüber beispielsweise Google Analytics ist, dass du alle Daten auf deinem Server hast. Dies ist im Sinne der DSGVO wichtig und so kannst du sicherstellen, dass alle Daten in der EU verbleiben. Ebenfalls kannst du genau einstellen, was du überhaupt tracken möchtest.

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. Du kannst 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 abspeichern. Dazu geben wir folgendes in der Konsole ein:

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

Du kannst hier auch ein anderes Verzeichnis verwenden. Musst 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 öffnest du folgende Datei:

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

Nun kopierst du 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 musst du noch den Hostnamen anpassen, über welchen später Matomo erreichbar sein soll.

Diese beiden Zeilen musst du 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 du den Hostnamen angepasst hast, musst du noch das MySQL Kennwort anpassen.

Folgende Zeilen musst du ä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 gibst du folgenden Befehl ein:

nano /opt/containers/matomo/matomo.conf

In die Datei kopierst du 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

Gib nun folgendes ein, um deinen Matomo Container zu starten:

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

Gehe nun mit deinem Webbrowser auf deine Webseite (z.B. matomo.euredomain.de). Dort sollte nach einigen Sekunden folgendes zu sehen sein:

Screenshot einer Matomo-Seite: Logo oben links, linke Navigationsleiste, Willkommensnachricht 'Willkommen!' und grüner Button.

Hier klickst du nun auf „Nächste“.

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

Matomo-Systemprüfung: Logo oben links, linke Seitenleiste, Überschrift Systemprüfung, grüne Buttons, rechts Checkliste mit Häkchen

Nun kommst du zur Datenbankeinrichtung. Unser Docker Skript hat alle Werte bereits übertragen. Du musst also nur „Nächste“ klicken.

Seite 'Datenbank einrichten' mit Feldern für Server, Benutzer, Datenbankname, Passwort; Adapter; 'NÄCHSTE' Button.

Nun hast du die Datenbank erfolgreich angebunden.

Matomo-Oberfläche: linke Seitenleiste, Hauptbereich mit Erstelle die Tabellen; grüne Bestätigung.

Im nächsten Schritt musst du einen Administrator Account anlegen.

Zwei Spalten: linke Liste (1–8); rechte Anmeldemaske 'Hauptadministrator' mit dogado, Passwort, E‑Mail, zwei Kästchen.

Nun musst du lediglich noch den Namen deiner Webseite angeben, welche du später tracken willst. Dies könntest du aber später jederzeit noch anpassen. Bei mir ist dies unsere Wordpress Instanz (wordpress.testbereich.net).

Screenshot einer Admin-Oberfläche mit linkem Menü, Website hinzufügen, grüne Bestätigung, roter Rahmen um Formularfelder.

Im letzten Schritt siehst du einen Tracking Code. Diesen benötigen wir jedoch NICHT. Daher kannst du hier einfach weiter klicken.

Screenshot der Matomo-Oberfläche: Links Menü, rechts Überschrift Tracking-Code von Wordpress – dogado und Beispiel-Code.

Jetzt bist du fertig mit der Einrichtung.

Screenshot einer Matomo-Webseite: Logo 'matomo', linkes Menü mit Einträgen, Textblöcke und grüne Statusleiste oben rechts.

Nachdem du dich nun angemeldet hast, solltest du folgendes sehen.

Screenshot einer Matomo-Setup-Seite mit blauer Kopfzeile, Seitenmenü und grünem Button unten.

Hier kannst du dir auch die „Liste der zur Integration von Matomo vorhandenen Plugins“ anschauen. Der Link führt auf diese Webseite (https://matomo.org/integrate)

Screenshot einer Webseite mit Content Management Systems; Raster aus WordPress, Drupal, Joomla, TYPO3, SharePoint-Logos.

Dort kannst du dir die verschiedenen Plugins zur Integration anschauen.

3. Integration von Matomo in Wordpress

Hier zeige ich dir nun, wie du Matomo DSGVO Konform in deinen Wordpress Blog integrieren kannst.

3.1 Einstellungen bei Matomo

Zuerst loggst du dich in dein Matomo Webinterface ein. Anschließend klickst du oben rechts auf das Zahnrad.

Obere blaue Navigationsleiste mit den Menüpunkten Dashboard, Alle Websites, Tag Manager und einem Zahnradsymbol.

Hier klickst du nun auf „Privatsphäre --> Daten anonymisieren“.

Matomo-Logo oben, Suchfeld darunter; linkes Menü mit Einträgen, hervorgehoben 'Daten anonymisieren' in roter Umrandung.

Wähle nun diese Einstellungen aus und klicke auf Speichern.

Matomo-Datenschutz: Hauptbereich 'Daten anonymisieren' mit Checkboxen; Text 'Anonymisieren der IP-Adresse von Besuchern'.

Datenschutz-Einstellungen: IP-Anonymisierung Ja/Nein, ID-Pseudonymisierung, Tracking ohne Cookies erzwingen (aktiv), Speichern.

Nun klickst du auf „Websites --> Tracking-Code“.

Matomo-Oberfläche: linke Seitenleiste mit 'Tracking-Code' hervorgehoben, Suchleiste unter dem blauen Kopfbereich.

Hier klickst du nun auf „anzeigen“ im Bereich „Erweitert“.

Screenshot einer Einstellungsseite Tracking mit JavaScript: linke Seitenleiste, Website-Feld, Optionen mit Kästchen.

Hier passt du jetzt die Einstellungen entsprechend dem Bild an.

Screenshot eines Einstellungsfensters mit roter Umrandung um zwei Checkboxen mit Bezeichnungen.

Etwas weiter unten siehst du nun unseren Tracking Code. Diesen benötigen wir später. Also lass die Webseite hier bitte noch offen.

Screenshot eines Browserfensters mit Cookies-Hinweis oben; darunter dunkelgrauer JavaScript-Codeblock in rotem Rahmen.

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 gehst du im Matomo Webinterface auf den Punkt „Persönlich --> Sicherheit“.

Screenshot von Matomo-Oberfläche: blauer Kopfbereich, Suchleiste, linkes Seitenmenü; Abschnitt Sicherheit in rotem Rahmen.

Hier scrollst du nun nach unten und klickst auf „Neuen Token generieren“.

Screenshot einer Token-Verwaltungsseite mit Titel Authentifizierungstoken und grünem Button NEUEN TOKEN GENERIEREN.

Anschließend gibst du noch dein Kennwort ein.

Matomo-Anmeldeseite: blauer Kopfbereich, weiße Karte mit Passwort-Eingabe und grünem BESTÄTIGEN-Button.

Nun gibst du noch eine Beschreibung ein. Bei mir ist das z.B. „Wordpress – dogado.de“.

Screenshot einer Token-Verwaltungsseite: Eingabefeld mit 'Wordpress - dogado.de' und grünem Button.

Nun bekommst du ein Token angezeigt. Dieses Token benötigen wir später. Also lass diese Webseite bitte noch offen.

Bildschirm zeigt Token erfolgreich generiert, darunter ein Tokenfeld mit f65b0d84 und eine grüne Bestätigung.

3.3 Matomo Plugin unter Wordpress installieren

Nun meldest du dich bei Wordpress als Administrator an. Klickst nun auf „Plugins“.

WordPress-Admin-Seitenleiste mit Dashboard, Beiträge und Plugins-Menü; Plugins-Eintrag rot hervorgehoben.

Anschließend auf „Installieren“.

WordPress-Admin: Plugins-Seite mit blauem Installieren-Button; links Menü und obere Administrationsleiste.

Nun suchst du nach „Matomo“ und bekommst anschließend folgendes angezeigt.

Screenshot der WordPress-Plugins-Seite; mehrere Plugin-Karten, eine mit rotem Rahmen.

Nun klickst du bei diesem Plugin auf „Jetzt installieren“.

Plugin-Kachel mit rotem Globus-Logo links, Titel WP-Matomo Integration (WP-Piwik); rechts Jetzt installieren, Beschreibung.

Anschließend musst du das Plugin noch aktivieren. Klicke dazu auf „Aktivieren“.

Kachel mit rotem Rundlogo (Globus) links, Plugin-Name WP-Matomo Integration, rechter blauer Button 'Aktivieren'.

Zur Konfiguration des Plugins klickst du auf „Einstellungen --> WP-Matomo“.

WordPress-Admin: Linkes Menü mit Werkzeugen und Einstellungen; Untermenü rechts mit WP-Matomo (markiert).

Hier musst du jetzt deine Matomo URL angeben. Bei mir ist das beispielsweise https://matomo.testbereich.net. Nun gibst du noch den „Auth Token“ ein, welchen wir in Abschnitt 3.2 generiert haben.

Screenshot der WP-Matomo-Einstellungen: Modus, Matomo-URL, Auth-Token, Speichern-Button.

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

WP-Matomo Einstellungen: rote Erfolgszeile, Tabs, Felder Matomo-URL, Auth Token, Auto-Konfiguration, Änderungen speichern.

Klicke nun auf „Tracking aktivieren“.

Screenshot der WP-Matomo Einstellungen: Kopfzeile und eine Button-Leiste mit 'Mit Matomo verbinden' und 'Tracking aktivieren'.

Nun wählst du „Manuelle Eingabe“ und klickst auf Speichern.

Screenshot eines UI-Fensters mit Menüleiste; markiert: Dropdown 'Manuelle Eingabe' und Button 'Änderungen speichern'.

Jetzt sollte es so aussehen:

WP-Matomo Einstellungen: Buttons oben, leeres Tracking-Code-Feld, Dropdown 'Position des JavaScript-Codes' auf Footer.

Hier kopierst du nun den Code aus Abschnitt 3.1 hinein.

WP-Matomo Einstellungen: Überschrift, Tabs (Verbinden, Statistiken, Tracking, Experten); Tracking-Code-Eingabe mit Codefenster

Anschließend klickst du auf Speichern.

4. Tracking im Matomo Dashboard anschauen

Nun musst du mit deinem Webbrowser einmal auf deine getrackte Webseite gehen, damit es einen Besucher in der Statistik gibt. Dies ist wichtig, da sich sonst das Dashboard nicht öffnet!

Anschließend kannst du bei Matomo auf Dashboard klicken.

Blaue Navigationsleiste mit Dashboard (roter Rahmen), Alle Websites, Tag Manager; rechts sichtbare Symbole.

Nun siehst du dein Dashboard und kannst dir die erfassten Besuche anschauen.

Screenshot eines Matomo-Dashboards: linkes Menü, zentrale Besuchsdiagramme, rechte Infoboxen, blaue Kopfzeile mit Logo.

Unter den Reitern „Besucher“ und „Verhalten“ kannst du noch viel mehr über deine Besucher erfahren, beispielsweise wie lange sie auf deiner Webseite waren, mit welchem Browser und vieles mehr.

Matomo-Oberfläche: linke Seitenleiste, rot markierte Bereiche 'Besucher' und 'Verhalten'.
Nächster Artikel
Mattermost Chatsystem auf VPS installieren
Weitere passende Themen