Matomo : L'outil d'analyse d'audience qui respecte votre vie privée

À l'ère du numérique où les données personnelles sont devenues une monnaie d'échange, de plus en plus d'organisations et d'utilisateurs recherchent des alternatives aux géants de la tech qui placent la confidentialité au premier plan. Matomo s'impose comme la solution de référence en matière d'analyse d'audience web, offrant une alternative éthique et puissante à des services comme Google Analytics, tout en garantissant un contrôle total sur les données et le respect de la vie privée des visiteurs.

Qu'est-ce que Matomo ?

Anciennement connu sous le nom de Piwik, Matomo est une plateforme d'analyse web (web analytics) open source. Concrètement, elle vous permet de collecter, de visualiser et d'analyser des informations détaillées sur le trafic de votre site web. L'objectif est de comprendre le comportement de vos visiteurs afin d'améliorer leur expérience et d'optimiser vos contenus.

Grâce à un tableau de bord complet, Matomo fournit une multitude d'informations cruciales :

  • Analyse en temps réel et comportement des visiteurs (pages vues, actions, etc.).
  • Sources d'acquisition (moteurs de recherche, réseaux sociaux, campagnes).
  • Propriété totale des données : Contrairement à Google Analytics, avec Matomo, vous êtes propriétaire à 100% de vos données.
  • Conformité RGPD simplifiée : Matomo est conçu pour être conforme au RGPD, avec des fonctionnalités natives pour anonymiser les IP, gérer le consentement et purger les anciennes données.

La principale distinction de Matomo est son approche éthique : le contrôle et la confidentialité des données sont au cœur de sa conception. L'auto-hébergement (On-Premise) est la méthode qui vous garantit le plus haut niveau de contrôle. Et grâce à Docker, cette installation est devenue remarquablement simple.


Installation avec Docker Compose

Docker Compose est l'outil idéal pour déployer Matomo, car il permet de définir et de lancer l'ensemble de l'application, y compris sa base de données, avec un seul fichier de configuration.

Voici un guide étape par étape pour installer Matomo.

Prérequis

  • Un serveur (local ou distant) avec Docker et Docker Compose installés.

Étape 1 : Créer le fichier docker-compose.yml

Créez un nouveau répertoire pour votre installation de Matomo, par exemple matomo-server, et à l'intérieur de ce répertoire, créez un fichier nommé docker-compose.yml.

mkdir matomo-server
cd matomo-server
touch docker-compose.yml

Copiez et collez la configuration suivante dans votre fichier docker-compose.yml :

version: '3.8'

services:
  # Service de la base de données (MariaDB)
  db:
    image: mariadb:10.11 # Vous pouvez utiliser une version plus récente si vous le souhaitez
    container_name: matomo-db
    command:
      # Active des fonctionnalités recommandées par Matomo pour de meilleures performances
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --innodb_flush_log_at_trx_commit=2
      - --innodb_flush_method=O_DIRECT
    volumes:
      # Volume pour la persistance des données de la base de données
      - db_data:/var/lib/mysql
    environment:
      # !!! CHANGEZ CES MOTS DE PASSE !!!
      MYSQL_ROOT_PASSWORD: "CHANGEME_YourStrongRootPassword"
      MYSQL_PASSWORD: "CHANGEME_YourStrongMatomoUserPassword"
      MYSQL_USER: "matomo"
      MYSQL_DATABASE: "matomo"
    restart: unless-stopped
    networks:
      - matomo-net

  # Service de l'application Matomo
  app:
    image: matomo:5-fpm-alpine
    container_name: matomo-app
    depends_on:
      - db
    volumes:
      # Volume pour la persistance des données de l'application Matomo
      - matomo_data:/var/www/html
    environment:
      # Lien vers la base de données
      MATOMO_DATABASE_ADAPTER: "mysql"
      MATOMO_DATABASE_HOST: "db" # Le nom du service de la base de données
      MATOMO_DATABASE_TABLES_PREFIX: "matomo_"
      MATOMO_DATABASE_USERNAME: "matomo"
      MATOMO_DATABASE_PASSWORD: "CHANGEME_YourStrongMatomoUserPassword" # Doit correspondre au MYSQL_PASSWORD ci-dessus
      MATOMO_DATABASE_DBNAME: "matomo"
    restart: unless-stopped
    networks:
      - matomo-net

  # Service du serveur web (Nginx) pour exposer Matomo
  web:
    image: nginx:1.25-alpine
    container_name: matomo-web
    depends_on:
      - app
    volumes:
      # Monte le code de Matomo pour que Nginx puisse le servir
      - matomo_data:/var/www/html:ro
      # Monte une configuration Nginx spécifique à Matomo
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    ports:
      # Expose le port 8080 de l'hôte vers le port 80 du conteneur Nginx
      - "8080:80"
    restart: unless-stopped
    networks:
      - matomo-net

# Définition des volumes nommés pour la persistance des données
volumes:
  db_data:
  matomo_data:

# Définition du réseau interne pour la communication entre les services
networks:
  matomo-net:

Important : Avant de continuer, n'oubliez pas de modifier les mots de passe (CHANGEME_YourStrongRootPassword et CHANGEME_YourStrongMatomoUserPassword) dans le fichier. Utilisez des mots de passe forts et uniques.

Étape 2 : Créer le fichier de configuration Nginx

Dans le même répertoire (matomo-server), créez un fichier nommé nginx.conf. Ce fichier indiquera à Nginx comment communiquer avec l'application Matomo.

touch nginx.conf

Copiez et collez la configuration suivante dans ce fichier :

server {
    listen 80;
    server_name _;

    root /var/www/html;
    index index.php;

    # Sécurité : n'exposez pas les fichiers cachés
    location ~ /\. {
        deny all;
    }

    # Gérer les fichiers statiques directement
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
        expires 1y;
        log_not_found off;
    }

    # Transférer les requêtes PHP au service Matomo (app)
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000; # 'app' est le nom du service Matomo FPM
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Étape 3 : Lancer Matomo

Vous avez maintenant tout ce qu'il faut. Ouvrez un terminal dans le répertoire matomo-server et exécutez la commande suivante :

docker-compose up -d

Docker va maintenant télécharger les images de MariaDB, Matomo et Nginx, puis créer et démarrer les trois conteneurs en arrière-plan (-d).

Étape 4 : Terminer l'installation via le navigateur

Une fois les conteneurs démarrés, ouvrez votre navigateur web et accédez à l'adresse de votre serveur sur le port que vous avez exposé (8080 dans notre exemple) :

http://<adresse_ip_de_votre_serveur>:8080

Vous serez accueilli par l'assistant d'installation de Matomo. Il vous guidera à travers les dernières étapes, mais grâce à notre fichier docker-compose.yml, la plupart des informations de la base de données seront déjà pré-remplies. Suivez simplement les instructions pour créer votre premier utilisateur administrateur et enregistrer votre premier site web à suivre.

Félicitations ! Vous disposez maintenant d'une instance Matomo entièrement fonctionnelle, auto-hébergée, performante et respectueuse de la vie privée.

Vous vous êtes abonné avec succès à CodeClan
Parfait ! Ensuite, complétez le paiement pour obtenir un accès complet à tout le contenu premium.
Erreur ! Impossible de s'inscrire. Lien invalide.
Bienvenue ! Vous vous êtes connecté avec succès.
Erreur ! Impossible de se connecter. Veuillez réessayer.
Succès ! Votre compte est entièrement activé, vous avez maintenant accès à tout le contenu.
Erreur ! Le paiement Stripe a échoué.
Succès ! Vos informations de facturation sont mises à jour.
Erreur ! La mise à jour des informations de facturation a échoué.