À 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.