Installer Matomo sur Docker avec Docker Compose

Mis à jour : vendredi 10 novembre 2023

Installer Docker

Avant de commencer, il est nécessaire d’installer Docker sur votre ordinateur s’il n’est pas déjà installé.

Pour vérifier la présence de Docker sur votre système, tapez la commande docker -v dans un terminal.

Si la commande est introuvable, alors vous n’avez pas Docker et vous devez l’installer.

L’installation de Docker va dépendre du système d’exploitation sur lequel vous travaillez.

Créer le fichier docker-compose.yml

Le fichier docker-compose.yml comprend toutes les informations nécessaires pour permettre à Docker de télécharger les éléments indispensables au fonctionnement de Matomo comme :

  • un serveur web (apache2)
  • une base de données SQL (mariadb)
  • un langage de programmation (php)

Créez ce fichier dans un répertoire matomo sur votre système.

mkdir matomo
touch matomo/docker-compose.yml

Ensuite ajoutez la configuration suivante dans votre fichier docker-compose.yml.

version: "3"

services:
  db:
    image: mariadb:10.11
    command: --max-allowed-packet=64MB
    restart: always
    volumes:
      - db:/var/lib/mysql:Z
    environment:
      - MYSQL_ROOT_PASSWORD=password123*
      - MARIADB_AUTO_UPGRADE=1
      - MARIADB_DISABLE_UPGRADE_BACKUP=1

  app:
    image: matomo
    restart: always
    volumes:
      - matomo:/var/www/html:z
    environment:
      - MATOMO_DATABASE_HOST=db
    ports:
      - 8080:80

volumes:
  db:
  matomo:

Ensuite, pour démarrer Matomo, vous devez exécuter la commande docker compose up.

Docker va donc télécharger tous les fichiers nécessaires pour faire tourner Matomo et ensuite démarrer l’application.

Après quelques minutes, vous pouvez accéder à Matomo à l’adresse http://localhost:8080.

Processus d'installation de Matomo
Processus d'installation de Matomo

Processus d’installation de Matomo

Connexion à la base de données

Dans le fichier docker-compose.yml ci-dessus, il y a une variable d’environnement qui se nomme MYSQL_ROOT_PASSWORD. Cette variable contient le mot de passe de connexion à la base de données (ici password123*).

Voici les informations de connexion que je rentre dans Matomo pour qu’il se connecte à la base de données :

  • Serveur de base de données : en temps normal l’adresse IP du serveur de la base de données. Étant donné qu’on utilise Docker ici, on rentre le nom du service qui correspond à la base de données (voir services: db: dans docker-compose.yml).
  • Nom d’utilisateur : nous n’avons pas précisé de nom d’utilisateur dans le Docker Compose donc ce sera root.
  • Mot de passe : valeur de la variable d’environnement MYSQL_ROOT_PASSWORD.
  • Nom de la base : ici vous mettez ce que vous voulez comme nom de base de données
  • Préfixe des tables : ce par quoi seront préfixés vos tables dans la base de données
  • Adaptateur : PDO\MYSQL
Informations de connexion à la base de données
Informations de connexion à la base de données

Cliquez sur Suivant et ensuite vous devriez voir ce message de confirmation :

La connexion à la base de données est établie
La connexion à la base de données est établie

Configuration du compte et du site web

Ensuite, vous devez créer un compte Super Utilisateur avec :

  • un identifiant
  • un mot de passe
  • une adresse email

Puis, paramétrez votre site web avec :

  • nom du site
  • URL du site
  • fuseau horaire
  • est-ce que c’est un site e-commerce

A la fin du processus d’installation, vous êtes invité à installer le code de suivi sur votre site web.

Se connecter à Matomo

Lorsque vous essayez de vous connecter à Matomo, vous verrez ce message d’erreur si vous avez utilisé le même docker-compose.yml que moi.

C’est une sécurité qui bloque l’accès si vous n’êtes pas sur le port 80. Ici on se connecte avec le port 8080 donc on doit modifier le fichier de configuration dans Matomo dans Docker.

Erreur de connexion à cause du port 8080
Erreur de connexion à cause du port 8080

Modifier la configuration de Matomo dans Docker

Pour accéder au conteneur Docker dans lequel se trouve matomo vous devez connaître l’identifiant du conteneur en question. Pour cela, exécutez la commande docker ps.

Résultat de la commande docker ps
Résultat de la commande docker ps

Dans mon cas, l’identifiant du conteneur Matomo est 670e5185880a.

Je vais maintenant exécuter un terminal dans ce conteneur pour modifier le fichier de configuration de Matomo avec la commande suivante.


docker exec -it 670e5185880a /bin/bash
A l'intérieur du conteneur Matomo
A l'intérieur du conteneur Matomo

Maintenant que je suis dans le conteneur Matomo, je peux modifier le fichier de configuration config.ini.php.

Pour cela, je vais avoir besoin d’un éditeur de texte, je vais donc installer nano avec la commande apt update && apt install nano.

Tapez ensuite nano config/config.ini.php, puis changez la ligne trusted_hosts[] = "localhost" en trusted_hosts[] = "localhost:8080". Tapez sur Ctrl-X pour fermer, puis tapez Entrer pour enregistrer.

Rechargez ensuite votre page de connexion Matomo.

Vous arrivez sur le formulaire de connexion.

Formulaire de connexion
Formulaire de connexion

Félicitations, vous avez installé Matomo avec Docker.

Interface de Matomo
Interface de Matomo