From 9cd866f863284da7f5e82e7edabee890c7cd792d Mon Sep 17 00:00:00 2001 From: Julie Thezenas <julie@lydra.fr> Date: Mon, 9 May 2022 13:42:10 +0000 Subject: [PATCH] feat: add matomo stats --- docusaurus.config.js | 15 +++++++- package-lock.json | 36 +++++++++++++++++++ package.json | 1 + src/css/custom.css | 19 ++++++++++ ...confidentialite.md => confidentialite.mdx} | 18 ++++++++++ src/theme/Footer/index.js | 13 +++++-- static/img/do-not-track-me.svg | 1 + 7 files changed, 100 insertions(+), 3 deletions(-) rename src/pages/{confidentialite.md => confidentialite.mdx} (97%) create mode 100644 static/img/do-not-track-me.svg diff --git a/docusaurus.config.js b/docusaurus.config.js index c567394..819d335 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -100,7 +100,6 @@ module.exports = { ], }, ], - // eslint-disable-next-line quotes copyright: `Lydra © ${new Date().getFullYear()}` +"<br/>"+ `Froggit est fièrement fabriqué avec â¤ï¸ par <a href="http://lydra.fr/">Lydra</a> avec des Logiciels Libres et hébergé en 🇫🇷 chez <a href="https://www.scaleway.fr/">Scaleway</a>` +"<br/>"+ `Construit avec <a href="https://docusaurus.io/fr">Docusaurus</a>`, }, @@ -131,4 +130,18 @@ module.exports = { }, ], ], + plugins: [ + [ + // https://github.com/gabrielcsapo/docusaurus-plugin-matomo#usage + require.resolve("@gabrielcsapo/docusaurus-plugin-matomo"), + { + siteId: "5", + matomoUrl: "https://stats.esprit-libre-conseil.com", + siteUrl: process.env.DOCUSAURUS_URL || "https://froggit.fr", + matomoPhpScript: "m.php", + matomoJsScript: "m.js", + enableJSErrorTracking: true, + }, + ], + ], }; diff --git a/package-lock.json b/package-lock.json index 0cc95f1..a684c65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@fortawesome/free-regular-svg-icons": "^6.1.1", "@fortawesome/free-solid-svg-icons": "^6.1.1", "@fortawesome/react-fontawesome": "^0.1.18", + "@gabrielcsapo/docusaurus-plugin-matomo": "^0.1.2", "@mdx-js/react": "^1.6.21", "@svgr/webpack": "^6.2.1", "clsx": "^1.1.1", @@ -2665,6 +2666,14 @@ "react": ">=16.x" } }, + "node_modules/@gabrielcsapo/docusaurus-plugin-matomo": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@gabrielcsapo/docusaurus-plugin-matomo/-/docusaurus-plugin-matomo-0.1.2.tgz", + "integrity": "sha512-sn0o9dz1DQTjPYgsm0e4QXrbHddorrS6qsTlS/ypfZ4vQJg+tcrUEI+VQzWYI66K0bChy5i2RDgczTSED/JDSQ==", + "dependencies": { + "@docusaurus/types": "^2.0.0-beta.14" + } + }, "node_modules/@hapi/hoek": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", @@ -12962,6 +12971,19 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", @@ -16173,6 +16195,14 @@ "prop-types": "^15.8.1" } }, + "@gabrielcsapo/docusaurus-plugin-matomo": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@gabrielcsapo/docusaurus-plugin-matomo/-/docusaurus-plugin-matomo-0.1.2.tgz", + "integrity": "sha512-sn0o9dz1DQTjPYgsm0e4QXrbHddorrS6qsTlS/ypfZ4vQJg+tcrUEI+VQzWYI66K0bChy5i2RDgczTSED/JDSQ==", + "requires": { + "@docusaurus/types": "^2.0.0-beta.14" + } + }, "@hapi/hoek": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", @@ -23696,6 +23726,12 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "peer": true + }, "ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", diff --git a/package.json b/package.json index 0be0e14..cd5f725 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@fortawesome/free-regular-svg-icons": "^6.1.1", "@fortawesome/free-solid-svg-icons": "^6.1.1", "@fortawesome/react-fontawesome": "^0.1.18", + "@gabrielcsapo/docusaurus-plugin-matomo": "^0.1.2", "@mdx-js/react": "^1.6.21", "@svgr/webpack": "^6.2.1", "clsx": "^1.1.1", diff --git a/src/css/custom.css b/src/css/custom.css index c1091ab..3c475f8 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -339,3 +339,22 @@ html[data-theme='dark'] .menu__link { width: 330px; } } + +/******** Matomo & track *********/ +.matomo_optout { + border: 0; + height: 200px; + width: 600px; +} + +.notrack_container { + display: flex; + justify-content: center; +} + +.no_track { + margin-left: 12px; + margin-right: 12px; + width: 10rem; + height: auto; +} diff --git a/src/pages/confidentialite.md b/src/pages/confidentialite.mdx similarity index 97% rename from src/pages/confidentialite.md rename to src/pages/confidentialite.mdx index eae05b1..c63686a 100644 --- a/src/pages/confidentialite.md +++ b/src/pages/confidentialite.mdx @@ -11,9 +11,11 @@ keywords: Lydra, SaaS, legal, Privacy ::: ## Éthique + Lydra ("nous" dans la suite du texte) propose des services en ligne permettant la coopération tout en respectant la vie privée. Ces services sont conçus à base de logiciels libres, sécurisés et hébergés en France afin de vous redonner confiance en vos outils numériques. ## Communication + La transparence est un engagement fort pour nous, aussi nous nous engageons à communiquer aussi souvent que nécessaire pour vous informer : - de tout changement (documents légaux, évolutions des offres, nouvelles fonctionnalités, etc) ; - des événements importants (perturbation forte du service, fuite de données, etc). @@ -22,11 +24,13 @@ Vous pouvez à tout moment vous désabonner de nos canaux de communication (un l ## Vos données ### Les données hébergées + Vos données vous appartiennent, et seulement à vous ! Nous nous interdisons de les utiliser pour d'autres finalités que la fourniture des services. Les flux de communication pour accéder aux interfaces en ligne, ou pour la synchronisation via vos logiciels, sont sécurisés par du HTTPS (certificats TLS). ### Les données personnelles + Nous collectons des données personnelles pour vous proposer, fournir et améliorer nos services, mais aussi pour répondre à nos obligations légales. | Type de données | Données "personnelles" | Données contractuelles | @@ -37,12 +41,14 @@ Nous collectons des données personnelles pour vous proposer, fournir et amélio | **autres** | - vos contributions sur les tchats, forums et autres canaux d’échange sont conservés même après votre désinscription | | ### Les sauvegardes + Les services et les données hébergées sont sauvegardés chaque nuit vers des serveurs externes à la plateforme de production, avec différents systèmes techniques. L'ensemble de nos sauvegardes sont chiffrées au départ du serveur de production, et donc illisible à quiconque y aurait accès sans autorisation. Cette redondance de serveurs et de techniques nous permet d'assurer un niveau de sauvegarde sécurisant pour tout le monde, cependant gardez en tête qu'aucun système n'est infaillible. C'est pour cela que nous vous conseillons aussi de mettre en place vos propres sauvegardes. Si vous avez besoin d'aide sur ce point nous pouvons vous proposer nos services. ## Hébergements + Nos services sont **exclusivement hébergés en France**, dans des sociétés respectant le RGPD et la législation en vigueur. Nos services sont donc en dehors de la législation américaine (cf. [CloudAct](https://fr.wikipedia.org/wiki/CLOUD_Act)). Nous favorisons également les hébergeurs faisant des efforts d'amélioration de performances énergétiques, tout en restant dans des coûts nous permettant de proposer des services abordables à nos clients. @@ -50,16 +56,19 @@ Nous favorisons également les hébergeurs faisant des efforts d'amélioration d Nous mutualisons les serveurs pour héberger vos services, cela permet de réduire l'impact écologique et permet d'optimiser les ressources (moins de serveurs, moins de consommations directes et indirectes). ## Manipulation des données + Pour vous rendre les services, nous sommes amenés à manipuler vos données. Ces manipulations sont principalement liées aux fonctionnalités des logiciels que nous utilisons et sont automatisés. Mais nous pouvons être amenés à réaliser des opérations manuelles dans le cadre d'analyse ou de résolution de problème. Dans tous les cas, vos données vous appartiennent et nous ne pourrons les utiliser en dehors de la fourniture des services. ## Sous-traitance + Afin de nous concentrer sur le développement de nos services, nous sous-traitons une partie des opérations techniques. L'ensemble de nos prestataires ou sous-traitants sont conformes au RGPD via leurs propres CGV/CGU ou ont signé notre [contrat de sous-traitance](https://cloud-esprit-libre.ovh/s/iHNQMKrtGC8M8nD). Vous retrouverez la liste de nos sous-traitants et à quoi ils ont accès [à ce lien](/sous-traitants). ## Sécurité + Nos serveurs sont sous Linux (logiciels libres) et configurés dans les règles de l'art pour assurer leur sécurité. C'est d'ailleurs un travail du quotidien pour améliorer cette protection. Vos données sont chiffrées et les serveurs sont protégés par des firewalls réseau (anti-DDoS, etc) et serveur. Les serveurs et les services sont très régulièrement mis à jour afin de bénéficier des patchs de sécurité le plus vite possible. @@ -67,6 +76,7 @@ Vos données sont chiffrées et les serveurs sont protégés par des firewalls r Malgré tout nous ne pouvons vous garantir l'absence de failles de sécurité, notamment les [vulnérabilités "zero-day"](https://fr.wikipedia.org/wiki/Vulnérabilité_zero-day), car nous dépendons de la publication des correctifs des distributions Linux utilisées et des outils ou logiciels déployés. ## Rétention des données + Les **données légales** sont conservées pour une durée de 1 an, elles sont supprimées au-delà . Les **données techniques** sont conservées en clair 14 jours. Ensuite elles sont supprimées. @@ -77,8 +87,16 @@ Les **données commerciales** sont conservées le temps imposé par la loi[^cons Les **sauvegardes** des données des services sont conservées avec une durée variable selon le service et/ou le client, mais avec une durée maximale de 1 an. ## Cookies + La navigation sur nos sites et nos services peuvent déposer des cookies dont la seule finalité est la personnalisation des services et des interfaces, ou garder votre connexion active entre deux sessions. Nous n'utilisons pas les cookies des grandes régies publicitaires (Google, Facebook et cie) pour vous tracer ou analyser vos comportements, nos outils de statistiques sont auto-hébergés et en logiciels libres. Vous pouvez donc autoriser les cookies sans crainte pour vous faciliter la navigation sur nos services. +## Ne me trackez pas + +<iframe className="matomo_optout" + src="https://stats.esprit-libre-conseil.com/index.php?module=CoreAdminHome&action=optOut&language=fr&backgroundColor=&fontColor=&fontSize=&fontFamily="> +</iframe> + + :::note Sources [Lydra dépôt git Legal version 1.0.0](https://gitlab.com/lydra/legal/-/blob/1.0.0/confidentialite.md) diff --git a/src/theme/Footer/index.js b/src/theme/Footer/index.js index 4b3e371..6d7bcfe 100644 --- a/src/theme/Footer/index.js +++ b/src/theme/Footer/index.js @@ -5,6 +5,7 @@ * LICENSE file in the root directory of this source tree. */ import React from "react"; +import { Link } from "react-router-dom"; import {useThemeConfig} from "@docusaurus/theme-common"; import FooterLinks from "@theme/Footer/Links"; import FooterLogo from "@theme/Footer/Logo"; @@ -12,6 +13,8 @@ import FooterCopyright from "@theme/Footer/Copyright"; import FooterLayout from "@theme/Footer/Layout"; import { FaYoutube, FaLinkedin, FaGitlab, FaTwitter } from "react-icons/fa"; import Froggitblanc from "/static/img/logo_froggit_blanc.png"; +import DontTrackMe from "/static/img/do-not-track-me.svg"; +import useBaseUrl from "@docusaurus/useBaseUrl"; function Footer() { @@ -47,11 +50,10 @@ function Footer() { <a href="https://twitter.com/art_devops" target="_blank" rel="noreferrer"> <FaTwitter className="footer_icons" /> </a> - + </div> <div> - <FooterLayout icons={icons && <FooterIcons icons={icons} />} style={style} @@ -60,6 +62,13 @@ function Footer() { copyright={copyright && <FooterCopyright copyright={copyright} />} /> </div> + + <Link to={useBaseUrl("/confidentialite#ne-me-trackez-pas")} className="notrack_container"> + <div> + <DontTrackMe className="no_track" /> + </div> + </Link> + </div> </> ); diff --git a/static/img/do-not-track-me.svg b/static/img/do-not-track-me.svg new file mode 100644 index 0000000..0550652 --- /dev/null +++ b/static/img/do-not-track-me.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="199.32999999999998" height="35" viewBox="0 0 199.32999999999998 35"><rect class="svg__rect" x="0" y="0" width="84.67" height="35" fill="#8EA34E"/><rect class="svg__rect" x="82.67" y="0" width="116.66" height="35" fill="#815E91"/><path class="svg__text" d="M16.67 22L14.22 22L14.22 13.47L16.74 13.47Q17.87 13.47 18.74 13.97Q19.62 14.48 20.10 15.40Q20.58 16.33 20.58 17.52L20.58 17.52L20.58 17.95Q20.58 19.16 20.10 20.08Q19.61 21.00 18.72 21.50Q17.83 22 16.67 22L16.67 22ZM15.70 14.66L15.70 20.82L16.67 20.82Q17.83 20.82 18.46 20.09Q19.08 19.36 19.09 17.99L19.09 17.99L19.09 17.52Q19.09 16.13 18.49 15.40Q17.89 14.66 16.74 14.66L16.74 14.66L15.70 14.66ZM24.78 18.00L24.78 18.00L24.78 17.52Q24.78 16.28 25.22 15.32Q25.66 14.37 26.47 13.86Q27.27 13.35 28.31 13.35Q29.36 13.35 30.16 13.85Q30.97 14.35 31.41 15.29Q31.85 16.23 31.85 17.48L31.85 17.48L31.85 17.96Q31.85 19.21 31.42 20.16Q30.99 21.10 30.18 21.61Q29.38 22.12 28.33 22.12L28.33 22.12Q27.29 22.12 26.48 21.61Q25.67 21.10 25.22 20.17Q24.78 19.23 24.78 18.00ZM26.26 17.46L26.26 17.96Q26.26 19.36 26.81 20.13Q27.35 20.90 28.33 20.90L28.33 20.90Q29.31 20.90 29.84 20.15Q30.37 19.40 30.37 17.96L30.37 17.96L30.37 17.51Q30.37 16.09 29.84 15.34Q29.30 14.58 28.31 14.58L28.31 14.58Q27.35 14.58 26.81 15.33Q26.27 16.09 26.26 17.46L26.26 17.46ZM43.78 22L42.30 22L42.30 13.47L43.78 13.47L47.59 19.54L47.59 13.47L49.06 13.47L49.06 22L47.58 22L43.78 15.95L43.78 22ZM53.53 18.00L53.53 18.00L53.53 17.52Q53.53 16.28 53.98 15.32Q54.42 14.37 55.22 13.86Q56.03 13.35 57.07 13.35Q58.12 13.35 58.92 13.85Q59.73 14.35 60.17 15.29Q60.61 16.23 60.61 17.48L60.61 17.48L60.61 17.96Q60.61 19.21 60.18 20.16Q59.74 21.10 58.94 21.61Q58.13 22.12 57.08 22.12L57.08 22.12Q56.05 22.12 55.24 21.61Q54.42 21.10 53.98 20.17Q53.54 19.23 53.53 18.00ZM55.02 17.46L55.02 17.96Q55.02 19.36 55.56 20.13Q56.11 20.90 57.08 20.90L57.08 20.90Q58.07 20.90 58.60 20.15Q59.13 19.40 59.13 17.96L59.13 17.96L59.13 17.51Q59.13 16.09 58.59 15.34Q58.06 14.58 57.07 14.58L57.07 14.58Q56.11 14.58 55.57 15.33Q55.03 16.09 55.02 17.46L55.02 17.46ZM66.76 14.66L64.12 14.66L64.12 13.47L70.89 13.47L70.89 14.66L68.23 14.66L68.23 22L66.76 22L66.76 14.66Z" fill="#FFFFFF"/><path class="svg__text" d="M98.65 15.48L96.07 15.48L96.07 13.60L103.59 13.60L103.59 15.48L101.02 15.48L101.02 22L98.65 22L98.65 15.48ZM110.34 22L107.96 22L107.96 13.60L111.81 13.60Q112.95 13.60 113.79 13.98Q114.62 14.35 115.08 15.06Q115.54 15.76 115.54 16.71L115.54 16.71Q115.54 17.62 115.11 18.30Q114.68 18.98 113.89 19.36L113.89 19.36L115.70 22L113.16 22L111.64 19.77L110.34 19.77L110.34 22ZM110.34 15.47L110.34 17.93L111.66 17.93Q112.39 17.93 112.76 17.61Q113.14 17.29 113.14 16.71L113.14 16.71Q113.14 16.12 112.76 15.79Q112.39 15.47 111.66 15.47L111.66 15.47L110.34 15.47ZM121.74 22L119.32 22L123.03 13.60L125.37 13.60L129.08 22L126.62 22L125.96 20.37L122.40 20.37L121.74 22ZM124.18 15.93L123.10 18.61L125.26 18.61L124.18 15.93ZM132.81 17.80L132.81 17.80Q132.81 16.54 133.41 15.54Q134.01 14.55 135.06 13.99Q136.11 13.43 137.43 13.43L137.43 13.43Q138.58 13.43 139.51 13.84Q140.43 14.25 141.04 15.02L141.04 15.02L139.53 16.39Q138.72 15.40 137.55 15.40L137.55 15.40Q136.87 15.40 136.33 15.70Q135.80 16 135.50 16.54Q135.21 17.09 135.21 17.80L135.21 17.80Q135.21 18.51 135.50 19.05Q135.80 19.60 136.33 19.90Q136.87 20.20 137.55 20.20L137.55 20.20Q138.72 20.20 139.53 19.22L139.53 19.22L141.04 20.58Q140.43 21.35 139.51 21.76Q138.58 22.17 137.43 22.17L137.43 22.17Q136.11 22.17 135.06 21.61Q134.01 21.05 133.41 20.05Q132.81 19.06 132.81 17.80ZM147.93 22L145.58 22L145.58 13.60L147.93 13.60L147.93 17.09L151.19 13.60L153.80 13.60L150.37 17.32L153.98 22L151.22 22L148.82 18.95L147.93 19.90L147.93 22ZM167.26 22L165.06 22L165.06 13.60L167.02 13.60L169.97 18.45L172.85 13.60L174.81 13.60L174.83 22L172.65 22L172.63 17.55L170.46 21.17L169.41 21.17L167.26 17.67L167.26 22ZM186.73 22L179.99 22L179.99 13.60L186.58 13.60L186.58 15.44L182.35 15.44L182.35 16.85L186.08 16.85L186.08 18.63L182.35 18.63L182.35 20.17L186.73 20.17L186.73 22Z" fill="#FFFFFF" x="95.67"/></svg> \ No newline at end of file -- GitLab