====== Installer, configurer et gérer le sous-domaine "analytics" ======
**Notes** : ce domaine hébergera l'outil //Matomo// permettant d'analyser l'utilisation des sites web du SINP (//Wordpress//, //GeoNature//...). Il est embarqué dans un container //Docker// et fait partie de la //stack// //analytics.silene.eu//.
===== Installer le domaine =====
* Créer un fichier de configuration : ''vi /etc/nginx/sites-available/analytics.conf''
* Y placer le contenu suivant :
server {
listen 80;
listen [::]:80;
server_name analytics.silene.eu;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $realip_remote_addr;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:50083/;# ATTENTION : bien mettre un slash final ! Sinon => erreur 404
}
}
* Créer un lien depuis les sites actifs : ''cd /etc/nginx/sites-enabled/ ; ln -s ../sites-available/analytics.conf analytics.conf''
* Tester la config et relancer Nginx si OK : ''nginx-reload'' ou ''nginx -t && nginx -s reload''
* Tester l'URL '' http://analytics./ '' qui doit afficher une erreur 502 car nous n'avons pas encore lancé le container Docker.
* En local, sur votre machine, se placer dans le dépôt Github "//sinp-paca-srv//" récupéré précédemment et si nécessaire resynchroniser le dossier //web-srv/docker/// avec le serveur de destination en exécutant la commande //Rsync// indiquée dans le fichier [[https://github.com/cbn-alpin/sinp-paca-srv/blob/master/README.md|README.md]].
* Sur le serveur dans le dossier //docker// de l'utilisateur //admin// :
* vérifier la présence du réseau Docker spécifique à notre utilisation de type //bridge// nommé //nginx-proxy// (voir fichier //.env//) : ''docker network ls''
* se placer dans le dossier //analytics.silene.eu// : ''cd ~/docker/analytics.''
* exécuter la commande : ''docker-compose up''
* vérifier que tout fonctionne à l'adresse : '' https://analytics./ '' (se loguer avec le compte root Mysql)
* arrêter le container : ''CTRL+C''
* relancer le container en tant que service : ''docker-compose up -d''
* si besoin de l'arrêter utiliser : ''docker compose down''
===== Activer SSL et HTTP2 sur le domaine =====
* Installer un certificat SSL via Certbot (Letsencrypt) : '' certbot --nginx -d analytics. ''
* Pour SINP PACA : '' certbot --nginx -d analytics.silene.eu ''
* Pour SINP AURA : '' certbot --nginx -d analytics.biodiversite-aura.net ''
* Répondre : 2
* Tester ensuite la redirection auto de HTTP vers HTTPS : http://analytics.silene.eu/ -> doit redirigé vers HTTPS automatiquement
* Tester la configuration SSL : https://www.ssllabs.com/ssltest/analyze.html?d=analytics.silene.eu
* Tester l'URL https://analytics.silene.eu/
* La config finale :
server {
listen 443 ssl http2; # managed by Certbot
listen [::]:443 ssl http2; # managed by Certbot
server_name analytics.silene.eu;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $realip_remote_addr;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:50083/;# ATTENTION : bien mettre un slash final ! Sinon => erreur 404
}
ssl_certificate /etc/letsencrypt/live/analytics.silene.eu/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/analytics.silene.eu/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
listen 80;
listen [::]:80;
server_name analytics.silene.eu;
return 302 https://analytics.silene.eu$request_uri;
}
===== Matomo =====
==== Configurer Matomo ====
* Se connecter sur https://analytics.silene.eu avec un compte de super-administrateur
* Cliquer sur l'icône de roue en haut à droite pour accéder aux paramètres
* Accéder au menu "Système" > "Paramètres généraux" > "Paramètres du serveur mail" et compléter comme suit :
* Adresse du serveur SMTP : ssl0.ovh.net
* Port SMTP : 587
* Méthode d'authentification pour le serveur SMTP : login
* Nom d'utilisateur SMTP : mailer@silene.eu
* Mot de passe SMTP : utiliser le mot de passe du compte mailer@silene.eu.
* Adresse d'origine SMTP : mailer@silene.eu
* Nom d'origine SMTP : No Reply
* Chiffrement SMTP : TLS
* Modifier le fichier de config une fois le volume créé :
* Copier le fichier de config de Matomo sur l'hôte : ''docker cp analytics-matomo:/var/www/html/config/config.ini.php ~/docker/analytics.silene.eu/matomo/config/''
* Modifier le fichier de config en ajoutant les paramètres nécessaire :
[General]
force_ssl = 1
* Retourner le fichier de config dans le volume : ''docker cp ~/docker/analytics.silene.eu/matomo/config/config.ini.php analytics-matomo:/var/www/html/config/config.ini.php''
* Se connecter au container et corriger les droits du fichier copié : ''docker exec -it analytics-matomo /bin/bash''
* ''cd /var/www/html/config''
* ''chown www-data:www-data config.ini.php''
* Test l'envoie d'email par Matomo :
* Se connecter au container : ''docker exec -it analytics-matomo /bin/bash''
* Se placer dans le dossier ///var/www/html/// avec : ''cd /var/www/html/''
* Lancer la commande : '' ./console core:test-email test@mon-domaine.ext ''
==== Mise à jour de Matomo ====
* **Notes** : le volume Docker incluant l'ensemble de Matomo, il est donc nécessaire de procéder en 2 étapes :
- Mise à jour du container :
* Mettez à jour le fichier //docker-compose.yml// en indiquant la nouvelle version de l'image
* Téléverser le fichier sur le serveur
* Relancer le build du container : ''docker-compose up -d --no-deps --build analytics-matomo''
- Mise à du code de Matomo présent dans le volume Docker :
* Se loguer sur Matomo avec un super-utilisateur
* Via l'interface "Paramètres" lancer la mise à jour de Matomo.
==== Déboguer un graphique affichant "Oups..." ====
* Essayer de redémarrer le service ''analytics-nginx''
* Ouvrir l'outil de Dev de votre navigateur, se rendre dans l'onglet "Réseau" et afficher la réponse de la requête Ajax affichant le graphique en erreur.
* Des informations sur comment résoudre le problème devrait être affichée.
* Vérifier que le contenu du dossier ''/var/www/html/tmp/templates_c/'' appartient bien à l'utilisateur ''www-data''