Setup Matomo, ehemals Piwik, im Docker Container
Zur Zeit bin ich dabei alle meine Blocks und Webseiten in verschiedenen Docker Container zu verschieben. Da dürfte es auch nicht fehlen das ich Matoma mit rein nehme. Das einzige was auf meinem Server noch nicht in einen Container läuft es Nginx.
In dem heutigen Tutorial geht es hauptsächlich um Matoma und dem integrieren in einem Docker Container.
Zuerst müssen wir schauen ob Docker–Compose installiert ist wenn nein muss dies nachgeholt werden.
Docker-compose installieren
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose --version
Verzeichnisse anlegen
Ist Docker–Compose installiert können wir weitermachen und erstellen einen Ordner wo wir die zukünftige Konfiguration unterbringen. In meinem bisherigen Projekten sind die Konfigurationen in einem Ordner namens Docker untergebracht und die Volumes sind unter Home zu finden.
sudo mkdir -p /docker/matomo/matomo_db
sudo mkdir -p /docker/matomo/matomo_data sudo mkdir /home/matomocd /home/matomo
Wir wechseln in diesen Ordner und erstellen die Konfigurationsdatei docker–compose.yml
Docker-compose Datei anlegen
sudo vi docker-compose.yml
services: mariadb: image: 'bitnami/mariadb:latest' environment: - MARIADB_ROOT_PASSWORD=SuperSecretPassword - MARIADB_DATABASE=bitnami_matomo - MARIADB_USER=user_matomo - MARIADB_PASSWORD=SecretPassword volumes: - '/home/matomo/mariadb_data:/bitnami/mariadb' restart: always application: image: 'bitnami/matomo:latest' environment: - MATOMO_USERNAME=User - MATOMO_PASSWORD=SecretPassword - MATOMO_EMAIL=mail@domain.tld - MARIADB_HOST=mariadb - MARIADB_PORT_NUMBER=3306 - MATOMO_DATABASE_USER=user_matomo - MATOMO_DATABASE_NAME=bitnami_matomo - MATOMO_DATABASE_PASSWORD=SecretPassword ports: - '8087:80' - '4446:443' volumes: - '/home/matomo/matomo_data:/bitnami' depends_on: - mariadb restart: always volumes: mariadb_data: driver: local matomo_data: driver: local
Ist die Datei erstellt und nach eigenen Wünschen angepasst muss nun noch Nginx konfiguriert werden damit die Seite auch richtig erreichbar ist. Außerdem muss ein Zertifikat erstellt werden bei Letsencrypt.
Nginx konfigurieren
sudo vi /etc/nginx/sites-available/analytics.domain.tld.conf
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name analytics.domain.tld; root /var/www/analytics.domain.tld/; # SSL ssl_certificate /etc/letsencrypt/live/analytics.domain.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/analytics.domain.tld/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/analytics.domain.tld/chain.pem; # security # logging access_log /var/log/nginx/analytics.domain.tld.access.log; error_log /var/log/nginx/analytics.domain.tld.error.log warn; # reverse proxy location / { proxy_pass https://127.0.0.1:4446; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } # additional config } # subdomains redirect server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name *.analytics.domain.tld; # SSL ssl_certificate /etc/letsencrypt/live/analytics.domain.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/analytics.domain.tld/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/analytics.domain.tld/chain.pem; return 301 https://analytics.domain.tld$request_uri; } # HTTP redirect server { listen 80; listen [::]:80; server_name .analytics.domain.tld; location / { return 301 https://analytics.domain.tld$request_uri; } }
In dieser Datei müssen erstmal die Zertifikat Pfade deaktivert werden. Eine # davor setzen, ansonstem kann der Webserver nicht gestartet werden. Wenn Nginx dann läuft wird ein Zertifikat erstellt.
Zertifikate erstellen
sudo certbot –certonly –D analytics.domain.tld
Abschliessend den Container starten und die Raute entfernen im docker-compose.yml File.
sudo nginx -t sudo nginx reload
Nun sollte elles laufen und man kann Matomo einrichten. Sollte was nicht passen, schreibt es bitte in die Kommentare.