NPM oder eher Docker Website Tracking

Hallo,

ich bin neu hier und habe eine Frage bezüglich Matomo und dem Tracking verschiedener Docker Container sowie deren Webseiten. Zu meiner Konfiguration: Ich leite alle Seiten über meinen Container “Nginx Proxy Manager” weiter bzw. lasse sie von außen abrufen. Auch Matomo läuft bei mir als Docker Container über einen CNAME-Eintrag, ebenfalls über den NPM.

Nun möchte ich den Container “Gramps” tracken, kann jedoch nicht einfach in den Container eingreifen. Kennt jemand eine Möglichkeit, dies über eine Art weiteren Proxy zu tun oder einen Weg, ohne eine Index.html oder Index.php zu bearbeiten?

Ok, vielleicht nochmal anders gestellt. Kann man auch andere Container Tracken ? (Jellyfin, Heimdall, Joplin, etc…)

Servus, ich möchte gerne meine Lösung teilen, wie man eine Seite hinter dem Nginx Proxy Manager tracken kann, ohne die index.html oder index.php bearbeiten zu müssen.:

location / {
    proxy_set_header Accept-Encoding "";
    proxy_pass https://backend:port; # <---------- Hier die Adresse und den Port des Backends eintragen
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header Connection "Keep-Alive";
    proxy_set_header Proxy-Connection "Keep-Alive";
    
    # Matomo tracking code
    sub_filter "</head>" "<script>
                            var _paq = window._paq = window._paq || [];
                            /* tracker methods like 'setCustomDimension' should be called before 'trackPageView' */
                            _paq.push(['setDocumentTitle', document.domain + '/' + document.title]);
                            _paq.push(['setCookieDomain', '*.your.dns.name.com']);// <---------- hier euren Nginx-DNS-Zielname einfügen
                            _paq.push(['setDomains', ['*.your.dns.name.com']]);// <---------- hier euren Nginx-DNS-Zielname einfügen
                            _paq.push(['enableCrossDomainLinking']);
                            _paq.push(['setDoNotTrack', true]);
                            _paq.push(['trackPageView']);
                            _paq.push(['enableLinkTracking']);
                            (function() {
                              var u='//matomo.your.dns.name.com/';
                              _paq.push(['setTrackerUrl', u+'matomo.php']);
                              _paq.push(['setSiteId', '99']); // <---------- Hier die SiteID einfügen
                              var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
                              g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
                            })();
                          </script></head>";
    sub_filter_once off;
}

Bitte ersetzt “backend:port” durch die Adresse und den Port eures Backends. Außerdem ersetzt “your.dns.name.com” durch eure eigene DNS-Adresse und tragt die entsprechende SiteID ein.