Fichier:Matomo Logo.svg — Wikipédia

Présentation

Installation

Vous pouvez passer par une installation standard via la documentation disponible sur leur site, le déployer directement depuis mon template d'application dans Portainer (tutoriel dispo ici) ou utiliser le docker-compose suivant :

version: "2"
services:
  # Base de données    
  matomo-db:
    image: linuxserver/mariadb
    container_name: matomo-db
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=pihvzlbkcgvlknfze!ef6e4
      - TZ=Europe/Paris
      - MYSQL_DATABASE=matomo
      - MYSQL_USER=matomo
      - MYSQL_PASSWORD=Matomo65468431
      # Flag necessary for the database max allowed packet check
      # https://matomo.org/faq/troubleshooting/faq_183/
      - MARIADB_EXTRA_FLAGS=--max_allowed_packet=64MB
    volumes:
      - /apps/matomo/db:/config

    # Facultatif
    networks:
      - proxy
    logging:
      driver: loki
      options:
        loki-url: "$URL_LOKI"
        loki-external-labels: service={{.Name}}
        
  # Matomo : https://fr.matomo.org
  matomo:
    image: matomo
    container_name: matomo
    restart: unless-stopped
    environment:
      - MATOMO_DATABASE_HOST=matomo-db
      - MATOMO_DATABASE_DBNAME=matomo
      - MATOMO_DATABASE_USERNAME=matomo
      - MATOMO_DATABASE_PASSWORD=Matomo65468431
    volumes:
      - /apps/matomo/data:/var/www/html matomo
    depends_on:
      - matomo-db
    # Facultatif avec Traefik  
    #Ports:
    #  - 80:80

    # Facultatif  
    networks:
      - proxy
    logging:
      driver: loki
      options:
        loki-url: "$URL_LOKI"
        loki-external-labels: service={{.Name}}
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.matomo.entrypoints=http"
      - "traefik.http.routers.matomo.rule=Host(`$URL`)"
      - "traefik.http.middlewares.matomo-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.matomo.middlewares=matomo-https-redirect"
      - "traefik.http.routers.matomo-secure.entrypoints=https"
      - "traefik.http.routers.matomo-secure.rule=Host(`$URL`)"
      - "traefik.http.routers.matomo-secure.tls=true"
      - "traefik.http.routers.matomo-secure.tls.certresolver=http"
      - "traefik.docker.network=proxy"

      
networks:
  proxy:
    external:
      name: proxy

Attention : Pensez à changer dans le docker-compose ou à définir les variables suivantes : $URL_LOKI et $URL en fonction de votre installation.

Votre Matomo sera accessible directement depuis l'URL que vous lui aurais attribué avec Traefik ou depuis http://<server>:<port>.
 

Configuration

Site Wordpress

Le plus simple reste de passer par une extension :

 1 - Ajoutez un site dans Matomo

 2 - Connectez vous en administrateur sur votre Wordpress

 3 - Ajoutez et activez l'extension “Tracking code for Matomo, by Sergio Santos” 

 4 - Allez dans les réglages de l'extension

 5 - Activez le code de tracking

 6 - Rentrez l'adresse de votre serveur Matomo

 7 - Activez la compatibilité SSL si vous l'utilisez

 8 - Enregistrez les modifications & Enjoy ! 

 

Wiki.js

Dans Wiki.js c'est directement intégré ! Si c'est pas beau la vie !

 1 - Rendez vous dans la partie administrateur de Wiki.js

 2 - Dans la catégorie “Analytiques”, sélectionnez “Matomo

 3 - Entrez l'ID de votre site (dispo sur votre serveur Matomo) ainsi que l'URL de votre serveur Matomo

 4 - Cliquez sur “Appliquer” & Enjoy ! 

 

Site web classique

Après avoir configurer le site dans Matomo, il vous fournis un code que vous pouvez rajouter à votre site directement entre le head et le body. Voici un exemple du code fournit :

<!-- Matomo -->
<script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//<SERVEUR_MATOMO/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '6']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->