Files
wiki/Catalogue-Self-Hosted/apps/app-matomo.md
T
2026-06-09 18:40:21 +02:00

7.4 KiB


title: Matomo created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, web-analytics, privacy, self-hosted, analytics, php, mysql, mariadb, open-source, gdpr] confidence: high contested: false sources: [https://selfh.st/apps/?tag=web-analytics]

📊 Matomo

Plateforme d'analyse web open source de référence, fork éthique de Google Analytics, riche en fonctionnalités, conforme RGPD et auto-hébergeable. Source : selfh.st

📋 Métadonnées

Métadonnée Valeur
Site web matomo.org
GitHub github.com/matomo-org/matomo
License GPL-3.0
Langage PHP 8+ / MySQL/MariaDB
Étoiles 2 853
Dernière MAJ 2026-05
Catégorie cat-web-analytics

📝 Description

Matomo (anciennement Piwik) est l'une des solutions d'analyse web open source les plus matures du marché. Elle a été lancée en 2007 comme alternative à Google Analytics, avec pour philosophie le respect de la vie privée des utilisateurs finaux. Matomo propose une expérience d'analyse web complète et professionnelle, comparable à GA4 sur le plan fonctionnel, tout en gardant la maîtrise des données sur son propre serveur.

Fonctionnalités principales : tableaux de bord personnalisables, heatmaps, session recording (via plugin), analyse de formulaires, funnels de conversion, suivi d'événements, A/B testing, rapports e-commerce, attribution multi-canal, API Reporting et API Tracking. Plus de 100 plugins officiels ou communautaires viennent étendre les capacités de base.

Matomo est distribué sous licence GPL-3.0 en version on-premise (auto-hébergée) ; une licence commerciale est nécessaire pour certaines extensions avancées (Premium, Cloud). L'architecture est basée sur PHP (framework maison) avec une base MySQL ou MariaDB, ce qui en fait une solution éprouvée mais plus lourde que app-umami ou app-plausible en termes de ressources.

Matomo est également disponible en mode Cloud (matomo.cloud) géré par l'éditeur, et dispose d'une marketplace de plugins très active (WordPress, Drupal, Joomla, Magento, etc.). Le projet est traduit en plus de 50 langues, dont le français.

🚀 Installation

Option 1 : Docker Compose (recommandé)

# docker-compose.yml
version: '3.8'

services:
  matomo:
    image: matomo:5
    container_name: matomo
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      MATOMO_DATABASE_HOST: db
      MATOMO_DATABASE_ADAPTER: mysql
      MATOMO_DATABASE_TABLES_PREFIX: matomo_
      MATOMO_DATABASE_USERNAME: matomo
      MATOMO_DATABASE_PASSWORD: matomo_secure
      MATOMO_DATABASE_DBNAME: matomo
    volumes:
      - ./matomo-data:/var/www/html
    depends_on:
      db:
        condition: service_healthy
    networks:
      - matomo-net
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/"]
      interval: 30s
      timeout: 10s
      retries: 3

  db:
    image: mariadb:11
    container_name: matomo-db
    restart: unless-stopped
    environment:
      MARIADB_DATABASE: matomo
      MARIADB_USER: matomo
      MARIADB_PASSWORD: matomo_secure
      MARIADB_RANDOM_ROOT_PASSWORD: "yes"
    volumes:
      - ./db-data:/var/lib/mysql
    networks:
      - matomo-net
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 10

networks:
  matomo-net:
    driver: bridge

Lancement :

docker compose up -d
# Accéder à http://localhost:8080 et suivre l'assistant d'installation web
# Créer le compte super-utilisateur au premier démarrage

Option 2 : Installation manuelle (LAMP)

# Prérequis : PHP 8.0+, MySQL 8 / MariaDB 10.5+, Apache/Nginx
wget https://builds.matomo.org/matomo-latest.zip
unzip matomo-latest.zip -d /var/www/
chown -R www-data:www-data /var/www/matomo
# Configurer un VirtualHost pointant sur /var/www/matomo
# Accéder à l'URL pour finaliser via l'installateur web

⚙️ Configuration

  • Matomo nécessite PHP 8.0+ avec extensions pdo_mysql, gd, mbstring, curl, xml, zip, intl.
  • Paramètres d'anonymisation : activables pour anonymiser les IP (dernier octet) et désactiver le tracking des utilisateurs uniques.
  • Branding & White-label : personnalisable, support de plusieurs marques/sites.
  • JS Tracking Code : généré automatiquement, supporte doNotTrack et cookie-less tracking.
  • Plugins : Market accessible depuis Administration > Marketplace. Recommandés : Heatmap & Session Recording, Form Analytics, Custom Dimensions, Funnels.
  • Cron : configurer une tâche cron pour l'archivage des rapports (sinon, archivage à la demande moins performant) :
*/5 * * * * www-data /usr/bin/php /var/www/html/console core:archive --url=https://matomo.example.com > /var/log/matomo-archive.log 2>&1
  • Archivage : deux stratégies possibles — à la volée (par défaut, gourmand) ou cron (recommandé en production).
  • Sécurité : activation 2FA possible, IP allowlist, fail2ban recommandé.

🔄 Alternatives

Open source :

Propriétaire (SaaS) :

  • Google Analytics 4 — leader, mais problématique RGPD
  • Matomo Cloud — version managée officielle
  • Adobe Analytics — enterprise, onéreux
  • Plausible Cloud — payant, simple
  • Fathom Analytics — payant, RGPD
  • Mixpanel — product analytics, freemium
  • Heap — analytics comportemental automatisé

🔒 Sécurité

  • Changer immédiatement les mots de passe par défaut et créer un super-utilisateur fort.
  • Activer la 2FA (TOTP) pour tous les comptes admin.
  • Mettre Matomo derrière un reverse proxy HTTPS (Traefik, Caddy, Nginx).
  • L'IP du serveur ne doit pas être exposée en direct ; derrière un WAF (Crowdsec, Coraza) recommandé.
  • Sauvegardes régulières : mysqldump quotidien + matomo-data (config + plugins uploadés).
  • Durcir PHP : open_basedir, disable_functions, expose_php=Off.
  • Surveiller les logs d'accès : Matomo logge les requêtes au tracker (misc/log/), utiles pour détecter du trafic malveillant.
  • Mettre à jour Matomo à chaque LTS (toutes les ~6 semaines).
  • Activer le Trusted Host Security pour éviter le Host header injection.

📚 Ressources

🔗 Pages Liées