Une décision de la CNIL a fait grand bruit hier dans les communautés d'informaticiens, puisqu'elle estime maintenant que l'utilisation de Google Analytics est illégale en Europe. En effet, lorsque un site web intègre ce service, Google récupère et analyse les données personnelles des visiteurs, sans aucun respect pour le RGPD.

Cette décision me donne l'occasion de reparler d'un sujet qui me tient à cœur : l'utilisation de services décentralisés et respectueux des utilisateurs.
La CNIL propose plusieurs solutions de mesure d'audience, je vous propose aujourd'hui de voir comment installer et configurer l'une d'entre elles : Matomo.

Installation de Matomo

Matomo est un outil de mesure d'audience open-source. Si vous ne souhaitez pas vous embêter avec la partie technique, vous pouvez directement vous inscrire sur le service Matomo Cloud, et passer directement à la partie "Conformité RGPD" plus bas.

De mon côté, je préfère utiliser la version on-premise, nous allons donc voir ça ensemble.
Pour installer Matomo, il faut un hébergement PHP avec une base de données MySQL. Si vous n'avez pas déjà ça sous la main, un hébergement de ce type commence à 2,99€ HT par mois chez OVH.

Commencez par télécharger Matomo, et vous aurez un fichier zip qu'il vous suffira de décompresser et d'envoyer par FTP sur votre hébergement.

Il vous suffit ensuite d'aller sur le site, et suivre les différentes étapes pour configurer l'accès à la base de données et ajouter votre premier site. Je ne vais pas rentrer dans les détails ici, il n'y a rien de compliqué - la documentation d'installation se trouve par là.

Configuration dans Clever Cloud

Comme pour mon blog, j'ai décidé d'installer mon instance chez Clever Cloud, et nous allons vois ensemble comment optimiser notre déploiement sur ce cloud.

On va profiter de la configuration automatique de la base de données par des variables d'environnement. Pour ce faire, récupérer ce plugin EnvironmentVariablesCleverCloud, et dézippez son contenu dans le dossier /plugins de votre installation Matomo. Puis depuis l'interface d'administration, allez dans "Système" -> "Composants" pour l'activer.
Dès que c'est fait, Matomo récupèrera sa configuration MySQL directement depuis l'environnement Clever Cloud, ce qui sera utile si vous souhaitez plus tard prendre une instance plus grande.

Dernier point : le nombre de connexion simultanées à la base de données est limité, et si vous avez plusieurs utilisateurs en même temps, vous aurez des erreurs. Pour éviter ça, on va activer ProxySQL, qui va gérer un pool de connexions à la base de données, et s'assurer de ne pas dépasser les limites. Il suffit d'ajouter 2 variables d'environnement :

CC_ENABLE_MYSQL_PROXYSQL=true
CC_MYSQL_PROXYSQL_MAX_CONNECTIONS=10

La première pour activer ProxySQL, la seconde pour définir le nombre de connection maximum à ouvrir : mettez la valeur maximale autorisée par l'instance MySQL que vous avez choisie (ou un peu moins si vous souhaitez vous connecter directement à la base).

Conformité RGPD

Le fait d'utiliser Matomo ne suffit pas à lui seul à respecter le RGPD. Par contre, configuré correctement, vous pourrez l'ajouter à vos sites web sans avoir besoin d'ajouter un de ces horribles bandeau de consentement.

La CNIL décrit en détail comment faire dans son Guide de configuration Matomo Analytics, que je vous conseille de lire ; nous allons voir rapidement les principaux points ensemble :

  • Désactiver les exports de données :
    dans l'administration, section "Système" -> "Paramètres généraux", cochez la cas «Désactiver le journal des visites et le profil du visiteur»
  • Proposer un opt-out :
    il faut permettre aux visiteur de refuser le tracking, en ajoutant une iframe vers une url spéciale de Matomo :
    https://stats.monsite.com/index.php?module=CoreAdminHome&action=optOut

Le document de la CNIL propose aussi plusieurs points à vérifier, si vous n'avez pas touché aux paramètres par défaut de Matomo, ils sont déjà préconfigurés correctement.

Une fois que vous avez fait tout ça, il ne vous reste plus qu'à supprimer les scripts de Google Analytics, et vous pourrez enfin dire fièrement à vos utilisateurs que le respect de leur vie privée est une priorité.
Profitez-en aussi pour vérifier les autres dépendances à des services externes que vous pourriez avoir sur votre site. L'extension Kimetrak pour navigateurs peut vous aider à faire le point.
Je pense notamment à des Google Fonts que vous pourriez héberger sur vos serveurs plutôt que de pointer directement sur ceux de Google. Vous pouvez aussi remplacer l'affichage des cartes Google Maps par celles d'OpenStreetMap.