Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
digitales:software:docker:matomo [20.10.2023] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1digitales:software:docker:matomo [25.05.2025] (aktuell) cs
Zeile 1: Zeile 1:
 +====== matomo ======
 +
 +  * [[https://hub.docker.com/_/matomo]]
 +  * [[https://github.com/matomo-org/docker/tree/master/.examples/nginx]]
 +
 +===== Installation =====
 +
 +Die folgende Konfiguration legt eine mariadb, die app und das Webinterface unter nginx an. Die matomo Konfiguration liegt dann unter:
 +
 +<code ->
 +/var/lib/docker/volumes/matomo_matomo/_data/config/config.ini.php
 +</code>
 +
 +Im Verzeichnis /home/cs/matomo drei Dateien anlegen.
 +
 +++++  docker-compose.yaml  |
 +
 +<code yaml docker-compose.yaml>
 +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=<PASSWORD>
 +      - MARIADB_AUTO_UPGRADE=1
 +      - MARIADB_DISABLE_UPGRADE_BACKUP=1
 +    env_file:
 +      - ./db.env
 +
 +  app:
 +    image: matomo:fpm-alpine
 +    restart: always
 +    links:
 +      - db
 +    volumes:
 +      # - ./config:/var/www/html/config:z
 +      # - ./logs:/var/www/html/logs:z
 +      - matomo:/var/www/html:z
 +    environment:
 +      - MATOMO_DATABASE_HOST=db
 +      - PHP_MEMORY_LIMIT=2048M
 +    env_file:
 +      - ./db.env
 +
 +  web:
 +    image: nginx:alpine
 +    restart: always
 +    volumes:
 +      - matomo:/var/www/html:z,ro
 +      # see https://github.com/matomo-org/matomo-nginx
 +      - ./matomo.conf:/etc/nginx/conf.d/default.conf:z,ro
 +    ports:
 +      - 8083:80
 +
 +volumes:
 +  db:
 +  matomo:
 +</code>
 +
 +++++
 +
 +++++ db.env |
 +
 +<code txt db.env>
 +MYSQL_PASSWORD=<PASSWORD>
 +MYSQL_DATABASE=matomo
 +MYSQL_USER=cs
 +MATOMO_DATABASE_ADAPTER=mysql
 +MATOMO_DATABASE_TABLES_PREFIX=matomo_
 +MATOMO_DATABASE_USERNAME=cs
 +MATOMO_DATABASE_PASSWORD=<PASSWORD>
 +MATOMO_DATABASE_DBNAME=matomo
 +MARIADB_AUTO_UPGRADE=1
 +MARIADB_INITDB_SKIP_TZINFO=1
 +</code>
 +
 +++++
 +
 +++++ matomo.conf |
 +
 +<code - matomo.conf>
 +upstream php-handler {
 + server app:9000;
 +}
 +
 +server {
 + listen 80;
 +
 + add_header Referrer-Policy origin; # make sure outgoing links don't show the URL to the Matomo instance
 + root /var/www/html; # replace with path to your matomo instance
 + index index.php;
 + try_files $uri $uri/ =404;
 +
 + ## only allow accessing the following php files
 + location ~ ^/(index|matomo|piwik|js/index|plugins/HeatmapSessionRecording/configs).php {
 + # regex to split $uri to $fastcgi_script_name and $fastcgi_path
 + fastcgi_split_path_info ^(.+\.php)(/.+)$;
 +
 + # Check that the PHP script exists before passing it
 + try_files $fastcgi_script_name =404;
 +
 + include fastcgi_params;
 + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 + fastcgi_param PATH_INFO $fastcgi_path_info;
 + fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/
 + fastcgi_pass php-handler;
 + }
 +
 + ## deny access to all other .php files
 + location ~* ^.+\.php$ {
 + deny all;
 + return 403;
 + }
 +
 + ## disable all access to the following directories
 + location ~ /(config|tmp|core|lang) {
 + deny all;
 + return 403; # replace with 404 to not show these directories exist
 + }
 + location ~ /\.ht {
 + deny all;
 + return 403;
 + }
 +
 + location ~ js/container_.*_preview\.js$ {
 + expires off;
 + add_header Cache-Control 'private, no-cache, no-store';
 + }
 +
 + location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ {
 + allow all;
 + ## Cache images,CSS,JS and webfonts for an hour
 + ## Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade
 + expires 1h;
 + add_header Pragma public;
 + add_header Cache-Control "public";
 + }
 +
 + location ~ /(libs|vendor|plugins|misc/user) {
 + deny all;
 + return 403;
 + }
 +
 + ## properly display textfiles in root directory
 + location ~/(.*\.md|LEGALNOTICE|LICENSE) {
 + default_type text/plain;
 + }
 +}
 +
 +# vim: filetype=nginx
 +</code>
 +
 +++++
 +
 +===== GeoLocation =====
 +
 +  * [[https://matomo.org/faq/how-to/setting-up-accurate-visitors-geolocation/|Setting up accurate visitors geolocation]]
 +  * [[https://gatoneromatomo.duckdns.org/index.php?module=UserCountry&action=adminIndex&idSite=1&period=day&date=yesterday|Server: Einrichtung]]
 +  * [[https://www.ip2location.io/subscription|IP2Location.io Subscription]]
 +