diff --git a/content/_index.md b/content/_index.md index 3f62bce69072f9ec22e917ee7b2e9082ac9d8d6e..6c7565055fc6b753a99e127a69e1ff7493a7f7e4 100644 --- a/content/_index.md +++ b/content/_index.md @@ -7,6 +7,7 @@ draft: false Bonjour et bienvenue sur le blog du Filament. L'idée de mettre en place un blog pour : + - partager un certain nombre de nos actualités, - sensibiliser à des sujets qui nous sont chers, - vulgariser/expliquer les technos/outils que nous utilisons, @@ -15,6 +16,7 @@ L'idée de mettre en place un blog pour : nous trotte dans la tête depuis un certain moment mais nous n'avions pas franchi le pas. Si vous lisez ces lignes c'est que c'est chose faite, et que le plus dur reste à faire : alimenter ce blog régulièrement avec des articles de qualité. Vous devriez donc trouver parmi ces pages des articles sur : + - le statut Scop que nous avons choisi, notre organisation du travail - les communautés auxquelles nous participons : le réseau des Scop, les acteurs de l'Économie Sociale et Solidaire, Odoo, les CHATONS, etc. - de la sensibilisation sur les logiciels libre, la protection des données diff --git a/content/posts/choix-hebergement.md b/content/posts/choix-hebergement.md deleted file mode 100644 index f8095339ef264fd9b66c9f605da677a857fd9b88..0000000000000000000000000000000000000000 --- a/content/posts/choix-hebergement.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: "Choix de l'hébergement de ses données" -author: Rémi -date: 2021-10-18T13:16:11+01:00 -categories: -- Technique -tags: -- hébergement -- protection données -- infrastructure -licence: - name: Test - url: "https://a.com" -draft: false -mastodon_id: "107106642665495211" ---- -# Choix de l'hébergement de ses données - -Le principal outil que nous déployons/intégrons pour nos clients est un ERP dont l'éditeur est basé en Belgique du nom d'Odoo. - -Nous reviendrons dans d'autres articles sur les avantages de l'infrastructure modulaire d'Odoo ainsi que sur le modèle choisi par l'éditeur avec une version communautaire open source et une version entreprise propriétaire. Profitons-en quand même pour rappeler ici que nous ne travaillons qu'avec la version communautaire Open Source. - -Nous allons dans cet article détailler l'infrastructure que nous avons choisi pour installer Odoo en interne et pour nos clients. - -## Le choix de l'hébergement - -### Les possibilités - -La première question que nous nous sommes posée a été de savoir ce que l'on voulait proposer à nos clients. Nous avons commencé par lister les possibilités : - -2 modèles émergent aujourd'hui : -- le logiciel en ligne vendu comme un service (**SaaS** pour Software as a Service) - le plus souvent, les clients paient un abonnement mensuel pour utiliser le service. - -Pour qui ?| Avantages | Inconvénients -----------|-----------|-------------- -Client | - Tout est inclus (normalement), on n'a pas à se soucier de la version du logiciel, de la maintenance, des sauvegardes, etc. <br /> - Prix lissé chaque mois. <br /> - On peut bénéficier des nouvelles fonctionnalités/corrections directement, dès que deployées | - Si on arrête de payer on n'a plus accès au service et à ses données <br /> - Le prix monte avec le nombre d'utilisateurs et les fonctionnalités <br /> - Bien souvent on ne sait pas trop où sont stockées les données, ce que l'hébergeur peut en faire. <br /> - Bien souvent le code étant mutualisé entre tous les clients (pour réduire les coûts), il n'est pas possible d'adapter le logiciel à son besoin -Intégrateur | Mutualisation des ressources informatiques qui permettent de baisser les prix par client (dans l'idée de pouvoir en avoir le plus possible) et de limiter l'impact écologique des serveurs | - On ne connait pas nécessairement ses clients, ils peuvent utiliser le service sans jamais nous rencontrer (*certains mettraient ça dans les avantages mais ce n'est pas comme ça que l'on voit notre métier*). </br > - On devient hébergeur des données des clients (avec tout ce que cela implique juridiquement). <br /> - Un problème peut rendre indisponible le logiciel pour tous les clients en même temps. - - -- l'hébergement du service sur un serveur dédié à cet usage. Cela permet d'avoir un service dédié à chaque client. Le client peut choisir d'auto-héberger le serveur dans ses locaux ou de passer par un hébergeur chez qui il louera un serveur (pas forcément un serveur physique, le plus souvent on peut louer des ressources sur un serveur mutualisé). - -Pour qui ?| Avantages | Inconvénients -----------|-----------|-------------- -Client | <ul><li>a</li><li>b</li> | <ul><li>c</li><li>d</li> - - -*Note: Les avantages et inconvénients cités ci-dessus sont influencés par notre expérience et nos valeurs et pourraient donc être vus différemment dans un autre contexte.* - -### Notre choix - -Au Filament, nous souhaitons que nos clients soient propriétaires et responsables de leurs données et nous voulons les laisser libres de changer d'intégrateur s'ils ne sont pas satisfaits (et ce sans devoir être obligé de migrer ses données ou pire changer d'outil). De plus, notre activité est basée sur l'adaptation de logiciels libres aux besoins et modes de fonctionnement de nos clients. Enfin, nous avons les compétences en interne pour automatiser le plus possible les installations et la maintenance, ce qui nous permet d'avoir un parc homogène (tous les serveurs avec le même système d'exploitation, installés de la même façon, avec les mêmes versions de logiciels), et donc de pouvoir mutualiser/automatiser les tâches chronophages de mise à jour, sauvegardes/restauration pour proposer des prix abordables à chaque client. - -Avec tout ce qui a été expliqué ci-dessus, vous avez déjà compris que nous avons fait le choix d'avoir un serveur pour chaque client. Nous demandons donc à tous nos clients de nous fournir un serveur sur lequel nous installons Odoo. -La plupart de nos clients n'ont pas les compétences ni l'infrastructure nécessaire pour auto-héberger un serveur dans leurs locaux, aussi nous les aiguillons vers Ikoula ou OVH pour louer un Serveur Privé Virtuel (VPS en anglais) localisé en France (mais ils sont bien sûr libres de louer un serveur ailleurs). - -Les prix étant sensiblement identiques, nous avons une préférence pour Ikoula (taille plus humaine et 100% énergie renouvelable). - -En fonction du nombre d'utilisateurs du client et des fonctionnalités visées nous les orientons parmi la gamme de VPS, Odoo étant peu gourmand en ressources, les VPS entrée de gamme sont souvent suffisants pour des petites équipes jusqu'à 10-15 personnes. - - - -## Le Contrat de Maintenance - -Nous proposons un contrat de maintenance à tous nos clients comprenant les activités suivantes : -- maintenance préventive : - - supervision du serveur et des services H24 - - sauvegardes quotidiennes (2 sauvegardes chiffrées sur des sites distincts) - - mises à jour de sécurité mensuelles - - mises à jour système d'exploitation et code logiciel trimestrielles (hors montée de version Odoo) -- maintenance curative (en cas de problème) - - restauration d'une sauvegarde - - réinstallation un serveur complet et dernière sauvegarde - -Ce contrat est facturé annuellement. -Il faut dire que depuis l'incendie d'OVH à Strasbourg début 2021, il est beaucoup plus facile de faire comprendre aux clients que ce service de maintenance est important. Cet accident aura au moins eu ce mérite. - - - -## L'infrastructure technique - -*Note : Cette partie sera sûrement moins abordable, car nous y aborderons les différentes technologies / solutions logicielles utilisées* - -Comme précisé plus haut, nous automatisons le plus possible nos installations pour avoir un parc de serveur le plus homogène possible. Pour cela nous utilisons Ansible (et tous nos rôles sont publiés sous licence libre sur notre [GitLab](https://sources.le-filament.com/lefilament/ansible-roles) et dans [Ansible Galaxy](https://galaxy.ansible.com/search?deprecated=false&keywords=filament&order_by=-relevance&page=1)). - -Les serveurs sont donc installés comme suit : -- système d'exploitation : Ubuntu LTS (versions maintenues 4 ans par Canonical) - version 20.04 à l'heure actuelle -- sécurité : pare-feu iptables, fail2ban, sécurisation SSHd, collecte de logs avec filebeat -- inverse proxy Traefik -- 2 instances d'Odoo indépendantes : production et test avec chacune sa base PostgreSQL. Chaque instance est déployée dans des conteneurs Docker, l'image Docker pour Odoo ayant été créée par nos soins pour n'avoir que le nécessaire sans superflu. -- agent pour supervision : Nagios NRPE - -Pour superviser tout ça nous avons 2 serveurs Nagios (chez 2 hébergeurs différents et avec une configuration générée par Ansible depuis l'inventaire des serveurs installés) et une plateforme Elastic-LogStash-Kibana (ELK) qui centralise les logs reçus depuis les serveurs clients. diff --git a/themes/le_filament/layouts/partials/footer.html b/themes/le_filament/layouts/partials/footer.html index 741b62ebc8314756511fff063eb0ab4f4b6cb3d6..56c065e8ca7c974e212a5c0710c650d394c3bcbe 100644 --- a/themes/le_filament/layouts/partials/footer.html +++ b/themes/le_filament/layouts/partials/footer.html @@ -12,6 +12,6 @@ <img src="https://le-filament.com/img/logo-docker.svg" alt="Le Filament - DockerHub" class="logo"> </a> <a rel="me" href="https://pouet.chapril.org/@le_filament" target="_blank" title="Le Filament - Mastodon"> - <img src="/images/logo-mastodon.svg" alt="Le Filament - Mastodon" class="logo"> + <img src="https://le-filament.com/img/logo-mastodon.svg" alt="Le Filament - Mastodon" class="logo"> </a> </footer> diff --git a/themes/le_filament/layouts/partials/head.html b/themes/le_filament/layouts/partials/head.html index 3f113611d877f8afaca650db842e30d22a6e7b55..8cc82aa83faae8465528bfb83ce76c1c8b3cdc32 100644 --- a/themes/le_filament/layouts/partials/head.html +++ b/themes/le_filament/layouts/partials/head.html @@ -1,13 +1,16 @@ -<title>Le Filament - {{ .Title }}</title> +<head> + <title>Le Filament - {{ .Title }}</title> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> -<meta name="description" content="Le Filament est une SCOP toulousaine spécialisée dans la conduite de projets informatiques et l'intégration d'outils CRM ERP"> -<meta name="viewport" content="width=device-width, initial-scale=1"> -<meta name="keywords" content="le filament, toulouse, numerique, odoo, mail, systeme, alfresco, bluemind, nextcloud, open source, logiciel libre, données, rgpd" /> -<meta name="author" content="Le Filament" /> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> + <meta name="description" content="Le Filament est une SCOP toulousaine spécialisée dans la conduite de projets informatiques et l'intégration d'outils CRM ERP"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <meta name="keywords" content="le filament, toulouse, numerique, odoo, mail, systeme, alfresco, bluemind, nextcloud, open source, logiciel libre, données, rgpd" /> + <meta name="author" content="Le Filament" /> -<link rel="stylesheet" href="/css/style.css"> + <link rel="stylesheet" href="/css/style.css"> + <link type="image/x-icon" rel="shortcut icon" href="https://le-filament.com/icon.png"> -{{ if (isset .Params "mastodon_id") }} -<script src="/js/masto_comments.js"></script> -{{ end }} + {{ if (isset .Params "mastodon_id") }} + <script src="/js/masto_comments.js"></script> + {{ end }} +</head> diff --git a/themes/le_filament/static/css/style.css b/themes/le_filament/static/css/style.css index 0356803bfd935a32c8e6e6974d3659cde5bbdec8..9f8047b67203798659664a83e2a79c41653c8eba 100644 --- a/themes/le_filament/static/css/style.css +++ b/themes/le_filament/static/css/style.css @@ -1,7 +1,7 @@ @font-face { font-family:'DejaVu Sans'; - src:url(https://le-filament.com/src/fonts/DejaVuSans-ExtraLight.woff2) format('woff2'), - url(https://le-filament.com/src/fonts/DejaVuSans-ExtraLight.woff) format('woff'); + src:url("/fonts/DejaVuSans-ExtraLight.woff2") format('woff2'), + url("/fonts/DejaVuSans-ExtraLight.woff") format('woff'); font-weight:200; font-style:normal } diff --git a/themes/le_filament/static/fonts/DejaVuSans-ExtraLight.woff b/themes/le_filament/static/fonts/DejaVuSans-ExtraLight.woff new file mode 100644 index 0000000000000000000000000000000000000000..495f2e0cf089a81e42f14751b6c11e8133ade2fc Binary files /dev/null and b/themes/le_filament/static/fonts/DejaVuSans-ExtraLight.woff differ diff --git a/themes/le_filament/static/fonts/DejaVuSans-ExtraLight.woff2 b/themes/le_filament/static/fonts/DejaVuSans-ExtraLight.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f99cd0db738bd13a897608c6670f1b76ef6aef03 Binary files /dev/null and b/themes/le_filament/static/fonts/DejaVuSans-ExtraLight.woff2 differ diff --git a/themes/le_filament/static/js/masto_comments.js b/themes/le_filament/static/js/masto_comments.js index a6f181edf4c2903700a76d92cd2ba144daab489d..1d52906b11118e2e40ae9416f7b907a3a9a75e2c 100644 --- a/themes/le_filament/static/js/masto_comments.js +++ b/themes/le_filament/static/js/masto_comments.js @@ -8,7 +8,7 @@ const getJSON = async url => { } function loadComments(id) { - getJSON('https://mastodon.social/api/v1/statuses/' + id + '/context').then(data => { + getJSON('https://pouet.chapril.org/api/v1/statuses/' + id + '/context').then(data => { document.getElementById('load_comments').disable = true; for (toot in data.descendants) {