↓ Zum Hauptinhalt springen
  1. Anleitungen/

Matomo installieren: Datenschutzfreundliche Webanalyse

Patrick Adams
Autor
Patrick Adams
Linux-Administrator und IT-Specialist. Ich schreibe über Server, Self-Hosting und Open-Source-Software, praxisnah und selbst getestet. Mehr über mich →
Inhaltsverzeichnis
Matomo ist die bekannteste Open-Source-Alternative zu Google Analytics. Der große Vorteil: Die Daten deiner Besucher landen auf deinem eigenen Server und nicht bei einem Konzern in den USA.
Voraussetzungen: 2 CPU-Kerne, 2 GB RAM, 20 GB Speicher und Debian mit Root-Zugriff. Ich betreibe Matomo in einem LXC-Container unter Proxmox, eine VM oder ein normaler Server funktionieren genauso. Damit das Tracking klappt, muss Matomo über eine Domain mit HTTPS aus dem Internet erreichbar sein.

Vorbereitung im LXC-Container
#

Läuft Matomo bei dir in einem LXC-Container unter Proxmox, musst du dort zuerst Docker erlauben. Fahr den Container herunter und aktiviere in Proxmox unter Container → Optionen → Features die Optionen Nesting und keyctl. Danach startest du den Container wieder.

Bei einer VM oder einem normalen Server überspringst du diesen Schritt.

Docker installieren
#

System aktualisieren
#

apt update && apt upgrade -y && apt install ca-certificates curl -y

Docker-Paketquelle einrichten
#

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list

Docker und Docker Compose installieren
#

apt update && apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Dockge installieren
#

Dockge einrichten
#

Dockge ist eine Weboberfläche, mit der du Docker-Compose-Stacks bequem im Browser verwaltest. Dieser Befehl legt die Verzeichnisse an und startet Dockge:

mkdir -p /opt/stacks /opt/dockge && cd /opt/dockge && curl -fsSL https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml -o compose.yaml && docker compose up -d

Dockge öffnen
#

Öffne Dockge im Browser und lege direkt dein Admin-Konto an:

http://IP-deines-Servers:5001
Lege das Admin-Konto in Dockge sofort an. Bis dahin kann jeder, der die Adresse aufruft, das Konto für sich anlegen.

Matomo einrichten
#

Stack anlegen
#

Klicke in Dockge auf + Compose und gib unter „Allgemein“ den Stack-Namen matomo ein.

compose.yaml einfügen
#

services:
  matomo:
    image: matomo:latest
    container_name: matomo
    restart: unless-stopped
    depends_on:
      matomo-db:
        condition: service_healthy
    ports:
      - 127.0.0.1:8081:80
    environment:
      - MATOMO_DATABASE_HOST=matomo-db
      - MATOMO_DATABASE_ADAPTER=mysql
      - MATOMO_DATABASE_TABLES_PREFIX=matomo_
      - MATOMO_DATABASE_DBNAME=${DB_NAME}
      - MATOMO_DATABASE_USERNAME=${DB_USER}
      - MATOMO_DATABASE_PASSWORD=${DB_PASSWORD}
      - TZ=Europe/Berlin
    volumes:
      - ./data/matomo:/var/www/html
    networks:
      - internal
      - default

  matomo-db:
    image: mariadb:11.8
    container_name: matomo-db
    restart: unless-stopped
    command: --max-allowed-packet=64M
    environment:
      - MARIADB_DATABASE=${DB_NAME}
      - MARIADB_USER=${DB_USER}
      - MARIADB_PASSWORD=${DB_PASSWORD}
      - MARIADB_RANDOM_ROOT_PASSWORD=1
    volumes:
      - ./data/mariadb:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - internal

networks:
  internal:

Umgebungsvariablen in der .env festlegen
#

Trag unten rechts im Feld für die .env diese Werte ein:

DB_NAME=matomo
DB_USER=matomo
DB_PASSWORD=dein-datenbank-passwort

Ein sicheres Passwort erzeugst du mit openssl rand -base64 32.

Stack starten
#

Klicke auf Speichern und dann auf Deploy.

Matomo erreichbar machen
#

Matomo lauscht nur auf dem Server selbst. Leite deine Domain, zum Beispiel analytics.deine-domain.de, über einen Reverse Proxy mit HTTPS auf http://127.0.0.1:8081 weiter, etwa mit CloudPanel, dem Nginx Proxy Manager oder Traefik.

Das ist wichtig, weil der Browser deiner Besucher das Tracking-Script direkt bei Matomo abruft. Ohne öffentliche HTTPS-Adresse kommen keine Daten an.

Matomo im Browser einrichten
#

Ruf deine Domain auf und folge dem Einrichtungsassistenten. Die Datenbankdaten sind dank der .env schon vorausgefüllt, du klickst dich nur durch, legst dein Admin-Konto an und trägst deine erste Website ein.

Durchlauf den Assistenten direkt nach dem Start. Solange er nicht abgeschlossen ist, könnte jeder, der die Adresse aufruft, Matomo für sich einrichten.

Datenschutzfreundlich einstellen
#

Damit du ohne Cookie-Banner auskommst, stellst du Matomo so ein, dass es keine Cookies setzt und IP-Adressen kürzt:

  1. Unter Verwaltung → Datenschutz → Daten anonymisieren setzt du die IP-Anonymisierung auf mindestens zwei Bytes.
  2. Unter Verwaltung → Websites → Tracking-Code aktivierst du die Option Alle Tracking-Cookies deaktivieren, bevor du den Code kopierst.

Den Tracking-Code fügst du dann in deine Website ein. Ich bin kein Anwalt: Ob du damit ganz ohne Einwilligung auskommst, lässt du im Zweifel prüfen. In die Datenschutzerklärung gehört Matomo auf jeden Fall.

Matomo aktualisieren
#

cd /opt/stacks/matomo && docker compose pull && docker compose up -d

Nach einem Update fragt Matomo beim nächsten Aufruf manchmal nach einem Datenbank-Update. Das bestätigst du einfach im Browser.

Verwandte Artikel