Aller au contenu

[Résolu] Autohéberger Matomo


declencher

Messages recommandés

Salut les gars !

 

J'ai un site perso hébergé chez OVH. J'aimerais abandonner Analytics qui est sur le point de devenir illégal en France, mais aussi par conviction.

 

Je voulais installer Matomo via docker, mais je n'ai rien trouvé sur le sujet sans utiliser portainer (que je n'ai jamais utilisé ni installé).

 

Avez-vous une expérience sur le sujet ou un conseil ?

 

Merci !

 

Edit : Après quelques recherches, j'ai pu lire que je pouvais :

 

Je peux installer facilement Portainer dans docker en ligne de commande (impossible via l'interface Docker DSM),

Puis installer Matomo (script à intégrer dans portainer disponible ici : https://borismallach.fr/installer-matomo-sur-un-synology-avec-docker/)

Et éventuellement installer Watchtower qui surveillera les mises à jour de ce conteneur, mais aussi ceux que j'ai créés directement via l'interface DSM.

 

J'avais peur initialement que Portainer soit incompatible avec l'outil de gestion Docker de DSM...

Modifié par declencher
Lien vers le commentaire
Partager sur d’autres sites

@declencher Portainer n'est en rien indispensable pour créer un conteneur quel qu'il soit.
Après ce n'est pas une mauvaise idée de l'installer, l'interface est bien plus complète que celle de DSM, voir ce tutoriel au point 4 : 

Il y a 9 heures, declencher a dit :

Puis installer Matomo (script à intégrer dans portainer disponible ici : https://borismallach.fr/installer-matomo-sur-un-synology-avec-docker/)

On évite autant que possible d'utiliser un script pour installer une application via Docker, sauf confiance totale dans l'éditeur et les images qu'il publie.

Il y a 9 heures, declencher a dit :

Et éventuellement installer Watchtower qui surveillera les mises à jour de ce conteneur, mais aussi ceux que j'ai créés directement via l'interface DSM.

Au besoin, j'ai aussi fait un tutoriel à ce sujet : 

Il y a 9 heures, declencher a dit :

J'avais peur initialement que Portainer soit incompatible avec l'outil de gestion Docker de DSM...

Ce sont deux interfaces graphiques qui facilitent les instructions envoyées au socket, c'est tout.
Il n'y aucune incompatibilité à appréhender.

Pour en revenir à ta demande, la documentation de Matomo semble très complète : https://hub.docker.com/_/matomo

Tu peux utiliser soit la ligne de commande, soit docker-compose, pour ce dernier tu peux créer un fichier docker-compose.yml rédigé de la façon suivante, je n'ai pas testé mais juste en lisant la doc, ça devrait fonctionner ainsi :

version: "2.1"
services:

   watchtower:
      image: matomo
      container_name: matomo
      network_mode: bridge
      hostname: matomo
      environment:
         - MYSQL_USER=matomo
         - MYSQL_PASSWORD=matomo
         - MYSQL_DATABASE=matomo
         - MATOMO_DATABASE_HOST=172.17.0.1:3307
         - MATOMO_DATABASE_USERNAME=matomo
         - MATOMO_DATABASE_PASSWORD=matomo
         - MATOMO_DATABASE_DBNAME=matomo
         - PHP_MEMORY_LIMIT=2048M
         - TZ=Europe/Paris
      ports:
         - 11080:80
      volumes:
         - config:/var/www/html
      restart: unless-stopped

volumes:

   config:

Tu peux le créer avec Notepad++ par exemple, attention à l'indentation, c'est primordial. Puis tu le charges dans un sous-dossier "matomo" d'un dossier partagé "docker".

D'autre part :

  • Pour MATOMO_DATABASE_HOST : Si tu n'as que MariaDB 10 installé sur le NAS, il est possible qu'il soit sur le port 3306, en ce cas tu peux juste laisser l'IP 172.17.0.1 et te débarrasser du port. Voir dans le menu démarrer du NAS -> MariaDB, on y voit le port TCP utilisé.
  • Il faut avoir au préalable créé une base de donnée "matomo" avec un utilisateur "matomo" et un mot de passe "matomo" ayant tous les privilèges nécessaires sur cette base de donnée.
  • S'assurer dans le pare-feu du NAS, s'il est (j'espère) activé, que les IP 172.16.0.0/255.240.0.0 ont accès au NAS le port 11080 a minima.

Se connecter en SSH, aller dans le dossier en question :

cd /volume1/docker/matomo

puis :

docker-compose up -d

Normalement Matomo devrait être disponible sur le port 11080.

Si pour toi c'est du chinois option népalais, lis un coup à mon tutoriel introductif en signature, je ne dis pas que ce sera clair comme de l'eau de roche par la suite, mais ça devrait dégrossir la chose.

 

Lien vers le commentaire
Partager sur d’autres sites

@.Shad. Merci pour toutes ces précisions et pour le rappel de sécurité 🙂

Je vais supprimer mon installation, la refaire sans la stack incluant MariaDB, mais uniquement Matomo et utiliser l'instance MariaDB du Syno si celle-ci est active sur mon NAS (j'ai un doute). Ça évitera de multiplier les instances. 

Je vais jeter aussi un oeil à tous tes tuto. J'ai installé Watchtower ce matin, et je vais comparé mon installation avec ton tuto.

Avec portainer, j'ai eu une question que je n'ai pas encore élucidée : quand on utilise l'interface de DSM, tous les tuto conseillent de créer un dossier dans /volume1/docker/myapp , ce qui est logique puisque la data de "mypp" y est stocké. Quand j'ai utilisé portainer, il ne demande rien et du coup je me demande où sont les data ?

C'est important pour la stratégie de sauvegarde... Par exemple je ne trouve pas la data de watchdog sur le NAS...

Je vais disparaître quelques heures le temps de lire tes tuto 🙂 Merci !

Lien vers le commentaire
Partager sur d’autres sites

@declencher Ca crée un volume dans les dossiers cachés Docker.
C'est pratique pour s'affranchir des problèmes de droits, qui sont préemptés par les ACL de DSM.
Surtout dans une image comme ça qui ne prévoit pas de préciser des UID et GID d'un utilisateur du NAS, pour amortir ces problèmes de permissions.

En revanche oui, pour la sauvegarde, c'est pas pratique du tout.

La solution peut être de faire un chmod -R 777 sur le dossier myapp, au moins tu es sûr que myapp pourra y écrire. C'est bourrin mais ça fonctionne, et parfois on n'a pas le choix.

Tu peux très bien faire une même stack avec un MariaDB conteneurisé, disons qu'utiliser l'instance du NAS permet de bénéficier des facilités d'Hyper Backup par exemple, mais bon un mysqldump dans le conteneur fonctionne aussi très bien. 🙂 

Je ne savais pas exactement d'où tu parles (i.e. quel est ton niveau), mais je peux aller plus droit au but au besoin. 😉 

Lien vers le commentaire
Partager sur d’autres sites

Salut @.Shad.

Merci pour toutes tes précisions. J'ai décidé de regarder du côté de l'interface DSM car on peut télécharger l'image, et la lancer, sans faire un script docker-compose. J'ai encore un mal de mal avec ces scripts (si tu as un guide complet, ou une bible plus globale sur docker, je prends 😁 ). Une fois le conteneur lancé, j'ai accès à l'interface web de configuration de Matomo.

Le réseau du conteneur est configuré en mode bridge comme tu l'as indiqué.

J'ai suivi ton tuto "Sécurisation" il y a longtemps (Merci pour ça aussi !", et j'avais autorisé les connexions au NAS pour les IP sources 172.16.0./255.240.0.0. 

J'ai installé MariaDB et PhpMyAdmin avec les paquets DSM pour ne pas multiplier les difficultés avec les stacks docker, j'ai créé une bdd et un user avec les droits sur cette BDD. J'ai validé les droits en me connectant à cette BDD avec ce user.

La configuration fonctionne bien jusqu'à l'étape 3 de configuration de Matomo :

Erreur lors de la tentative de connexion au serveur de base de données: Connection refused 

En reprenant ton message, j'ai remarqué que tu parlais de l'IP 172.17.0.1. Je suppose que cet IP dépend de mon réseau local ? J'ai mis l'IP du NAS en 192.168, ça ne fonctionnait pas. Et en contrôlant le port utilisé par MariaDB, j'ai vu que la case "Activer la connexion TCP/IP" n'était pas coché. Je l'ai fait, et l'installation s'est débloquée !

Tu peux m'en dire plus sur le fait que tu cites les IP 172.16.*.* ou 172.17.*.* dans ton précédent message ?

Je me pencherai sur la sauvegarde plus tard.

 

Modifié par declencher
Lien vers le commentaire
Partager sur d’autres sites

Quand tu crées un conteneur dans le réseau bridge par défaut, il prend une IP dans 172.17.0.0/24, et 172.17.0.1 est l'IP passerelle, celle du NAS.
Cette IP ne change pas. C'est l'avantage justement par rapport à ton IP locale 192.168 qui pourrait changer.

La plage disponible pour tous les réseaux docker, c'est 172.16.0.0/255.240.0.0 (ou encore écrit 172.16.0.0/12) donc de 172.16.0.0 à 172.31.255.255.
Outre le réseau bridge par défaut, on peut créer des réseaux bridge personnalisés qui peuvent choisir les réseaux 18, 19, ..., 31.

Il y a 2 heures, declencher a dit :

En reprenant ton message, j'ai remarqué que tu parlais de l'IP 172.17.0.1. Je suppose que cet IP dépend de mon réseau local ? J'ai mis l'IP du NAS en 192.168, ça ne fonctionnait pas. Et en contrôlant le port utilisé par MariaDB, j'ai vu que la case "Activer la connexion TCP/IP" n'était pas coché. Je l'ai fait, et l'installation s'est débloquée !

Oui car si tu n'actives pas la case, MariaDB n'est exposé que sur 127.0.0.1, donc localhost, ce qui signifie que seul le NAS peut y accéder.
Ton conteneur est considéré comme externe, car dans un sous-réseau déterminé. Ca aurait fonctionné si tu avais été en mode host (le conteneur n'est pas dissocié du NAS du point de vue de l'exposition, seulement au niveau des données).
 

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...
  • declencher a modifié le titre en [Résolu] Autohéberger Matomo

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.