\nsudo tar -xvf arduino.tar.xz -C /opt\nsudo chown -R root:root /opt/arduino-1.8.19\nsudo unlink /opt/arduino\nsudo ln -s /opt/arduino-1.8.19/ /opt/arduino\nsudo /opt/arduino/install.sh\n\nProblèmes rencontrés après le déploiement\nDroits sur tty et dialout\nIl faut ajouter l'utilisateur de l'application Arduino IDE aux groupes et . L'exemple suivant permet d'ajouter l'utilisateur aux groupes et . Si vous venez de saisir les lignes de commandes , vous devez redémarrer.\nVersion de Java incorrecte\nLe message suivant peut apparaître dans l'application Arduino IDE : Il se peut que la version de Java ne soit pas bonne. Vous pouvez le vérifier avec . Toutefois, un java est intégré avec l'application Arduino IDE. ( me renvoie la version ). Il faudra peut être toutefois changer les paramètres java de l'OS.\nJ'ai testé avec OpenJDK Java 8 avec succès. Par contre Java 10 et 11 ne sont pas compatibles. Pour procéder à l'installation de Java 8 et choisir par défaut cette version :\nSerial port not selected\nDans certains cas, sous Mint, il faut désinstaller \nAucune carte n'est détectée Le câble USB peut être également non cablé pour les données (data) Pour rappel, voici le cablage d'un port USB\nExécuter votre premier programme\nVoici donc notre premier programme (celui qui est décrit dans la vidéo). Cette suite d'instructions va faire clignoter une LED branchée sur la broche 13 de l'Arduino toutes les secondes.\\\\\nIl n'est pas nécessaire de brancher une LED, car rappelez-vous, la LED sur la carte, mentionnée dans la , servira dans notre exemple sans forcément réalisée un montage électronique. Lorsque vous utilisez le logiciel Arduino, il peut être trouvé en cliquant sur . Vous pouvez également copier le code suivant dans votre éditeur : \n/\n Clignotement\n Allume la LED pendant 1 seconde,\n puis l'éteint pendant 0,5 seconde.\n/\n \n Numéro de la broche à laquelle est\n connectée la LED\nint led = 13;\n \n le code dans cette fonction est exécuté une fois au début\nvoid setup() {\nindique que la broche de la LED une sortie :\non va modifier sa tension\n pinMode(led, OUTPUT);\n}\n \n le code dans cette fonction est exécuté en boucle\nvoid loop() {\n digitalWrite(led, HIGH); allumer la LED (tension 5V sur la broche)\n delay(1000); attendre 1000ms = 1s\n digitalWrite(led, LOW); éteindre la LED (tension 0V sur la broche)\n delay(1000); * attendre à nouveau 1seconde\n}\n Deux déclaration de fonctions sont obligatoires :\nsetup\nloop Dans ce bout de code, nous appelons trois fonctions :\ndigitalWrite\npinMode\ndelay Pour exécuter ce bout de code, il faudra brancher l'Arduino sur port USB et sélectionner dans le menu , sélectionner ."},"score":1,"snippet":"…as avec Debian 9.6 où je ne pouvais pas utiliser des cartes ESP 8266. Date de relecture : 15 août 2022 Il faut télécharger la version 1.8.19. Vous pouvez vérifier la dernière version disponible depuis le site <https:www.…","tier":2},{"article":{"uuid":"e5652004-dbab-44f0-b4fa-85948b357769","slug":"esp32-commander-led-wifi","title":"Commander une LED Wifi","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2022-03-25 18:52:47","created_at":"2022-03-25 18:52:47","updated_at":"2022-03-25 18:52:47","plain":"Nous avons vu dans le chapitre [..] comment la carte ESP 8266 peut se connecter à un point d'accès Wifi. Nous nous fixons comme objectif de connecter l'ESP 8266 au même réseau qu’un smartphone ou un ordinateur pour commander une LED. Pour ce faire, nous allons configurer l'ESP 8266 afin d'offrir un service. Dans un premier temps nous offrirons une page Web à l'utilisateur. Elle permettra de commander la LED incorporée sur votre plaque de développement ESP 8266. Sur la carte de développement, comme l'ESP-12F, est soudée une LED. Cette LED est celle qui clignote faiblement quand vous téléversez une programme. C'est également celle qui clignote avec le programme blink led. Techniquement parlant, cette LED est branchée sur le port GPIO 16. Mais il n'est pas forcément nécessaire de connaître cette valeur par cœur car nous utiliserons dans le code la constante (mot clé défini dans l'IDE ARDUINO) . .. Jusqu'à présent nous avons utiliser l'ESP pour présenter une page Web, fournir un moyen de commander la LED et informer de l'état de la LED. Dans les objets connectés il n'est pas nécessaire de présenter une page Web car celle-ci est fournie par un service centralisé comme Domoticz ou OpenHAB."},"score":1,"snippet":"Nous avons vu dans le chapitre [..] comment la carte ESP 8266 peut se connecter à un point d'accès Wifi. Nous nous fixons comme objectif de connecter l'ESP 8266 au même réseau qu’un smartphone ou un ordinateur pour comma…","tier":2},{"article":{"uuid":"cf6f24c0-6d6f-4c69-b901-0ada82c66f46","slug":"se-connecter-a-un-reseau-wifi","title":"Se connecter à un réseau Wifi","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2022-02-05 10:34:42","created_at":"2022-02-05 10:34:42","updated_at":"2022-02-05 10:34:42","plain":"Les extraits de codes suivants ont été testés avec un Espressif ESP8266 / ESP 12F soudé sur une carte NodeMcu V3. Un connexion Wifi Client permet d'indiquer à l'ESP de se connecter à un réseau Wifi, désigné dans notre code par la variable wifissid, utilisée par la méthode WiFiMulti.addAP. Il est également possible d'indiquer un mot de passe en tant que second paramètre (). Voilà le résultat dans le moniteur série de l'application Arduino IDE**."},"score":1,"snippet":"Les extraits de codes suivants ont été testés avec un Espressif ESP8266 / ESP 12F soudé sur une carte NodeMcu V3. Un connexion Wifi Client permet d'indiquer à l'ESP de se connecter à un réseau Wifi, désigné dans notre co…","tier":2},{"article":{"uuid":"cbfbc502-df32-42eb-a99f-3a75cfcc22e0","slug":"creer-un-point-d-acces","title":"Créer un Point d'Accès Wifi (AP)","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-12-06 18:46:23","created_at":"2020-12-06 18:46:23","updated_at":"2020-12-06 18:46:23","plain":"Un point d'accès Wifi (AP) consiste à créer un réseau Wifi avec nom (appelé SSID). Ci-dessous, un code pour créer rapidement un point d'accès Wifi avec l'ESP 8266. Le nom de réseau s’appellera ESP1 - AP, stockée dans la variable ssid."},"score":1,"snippet":"…un code pour créer rapidement un point d'accès Wifi avec l'ESP 8266. Le nom de réseau s’appellera ESP1 - AP, stockée dans la variable ssid.","tier":2},{"article":{"uuid":"d3e748aa-9cce-4758-81d6-e495ea79c3c7","slug":"radiateur-carlotec-1000w","title":"Radiateur Caroltec 1000 W","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-08-06 11:16:05","created_at":"2020-08-06 11:16:05","updated_at":"2020-08-06 11:16:05","plain":"Article en cours de rédaction. Avant de continuer, je dois élaborer le protocole de communication entre Arduino/ESP8266.\nDéfaillance : témoin clignote rouge et ne le radiateur ne chauffe pas\nJ'ai rencontré à deux reprises, sur deux radiateurs différents, le dysfonctionnement suivant. Le témoin lumineux, en dessous du thermostat clignote rouge. De plus, le radiateur ne chauffe plus. J'ai essayé de disjoncter un long moment et j'ai même essayé de supprimer le fil pilote. Rien n'y fait. En démontant le radiateur, j'ai constaté plusieurs choses.\n1. Malgré le thermostat à fond, le sortie vers la résistance est toujours à 0 Volt. J'ai testé sur un radiateur qui fonctionne, et je devrais avoir 230 V.\n1. La référence de la carte électronique est ERD10001 220/24011A\n1. En branchant le 230 Volts sur la résistance, le radiateur fonctionne : il chauffe.\n1. En consultant le forum de Futura Sciences, une des personnes indique qu'il s'agit d'un défaut de sonde de température. Prix de la carte électronique : trop chère ! Sur le site age86.fr, il est affiché à 159€ ce 8 avril 2020. Je n'ai pas cherché à remplacer la sonde de température seule. J'imagine qu'il s'agit d'un capteur de température que l'on peut trouver à pas cher.\n> Que faire ?\n \nJe peux court-circuiter la carte électronique en alimentant directement la résistance chauffante. A moi de trouver le moyen de piloter l'alimentation électrique de la résistance. La puissance de radiateur est de 1000 W, alimenté à 230 V**. Par calcul, l'intensité demandé est de 1000 / 230 = 4,35 A. Un relais électrique permettrait de piloter la résistance, comme un interrupteur. Il a l'avantage d'être un isolant entre la partie commande (circuit basse tension), et la résistance électrique (partie haute tension). Par contre, un relais comporte une partie mécanique qui provoque un peu de bruit lors du changement d'état (ouvert/fermé). Cela peut être gênant dans une pièce à dormir.\nReste à faire dans cet article\n09/04/2020\nNous voyons que le transistor peut remplacer facilement un relai. nous voyons bien que nous allons mettre derrière un Arduino qui permettra de piloter ce transistor. La question de s'avoir où positionner cet arduino pour se pose entièrement. Il peut être positionné juste à côté du radiateur, où se trouve dans l'armoire électrique ce qui permettrait de mutualiser un Arduino pour piloter plusieurs transistor, donc plusieurs radiateurs. J'y reviendrai un peu plus bas.\nLa partie capteur se pose également. doit-on mettre un capteur de température tel qu'il avait été conçu initialement c'est-à-dire juste derrière le radiateur avec une sonde, dans quel cas on aurait un système autonome et non connecté. ou plutôt un capteur de température dans la pièce qui permettrait de piloter plusieurs radiateur elle disait la valeur de cette température pour d'autres usages.\nMettre la partie intelligente dans une armoire électrique donc mutualiser l'arduino et mettre un capteur de température par piece, permet de faire des économies. toutefois cela enlève une partie intelligente au radiateur en lui-même étant donné qu'il doit être dépendant de la partie centrale. L'objectif global reste quand même d'avoir une domotique centralisée à la maison, donc cette réflexion n'est pas dénué de bon sens, malgré que la centralisation n'est pas forcément toujours une bonne chose. Toutefois je vais faire un mix entre les deux. je vais installer un capteur de température par piece, et ajouter une partie commande pas radiateur. La relation entre la commande et le température s'effectuera par un serveur intelligent. cela se traduit donc par le montage d'un Arduino connecté. Arduino qui permettra de servir d'interrupteur à la réception d'un ordre.\nESP 32 permet de faire un réseau mesh bluetooth"},"score":1,"snippet":"…e dois élaborer le protocole de communication entre Arduino/ESP8266.\nDéfaillance : témoin clignote rouge et ne le radiateur ne chauffe pas\nJ'ai rencontré à deux reprises, sur deux radiateurs différents, le dysfonctionnem…","tier":2},{"article":{"uuid":"3e7ef528-6bd0-4fd1-83cb-a0d03ba35949","slug":"npm-le-ver-dans-le-fruit-comprendre-la-faille-systemique-et-repenser-les-pratiques-devops","title":"NPM, le ver dans le fruit : comprendre la faille systémique et repenser les pratiques DevOps","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-12 13:08","created_at":"2026-05-12 13:08:44","updated_at":"2026-05-12 13:12:42","plain":"À propos de l'article du MagIT « NPM : une nouvelle campagne malveillante souligne une vulnérabilité systémique ».\r\n\r\nNPM expliqué simplement\r\n\r\nQuand on développe une application web moderne en JavaScript ou TypeScript, on ne réécrit jamais tout depuis zéro. On assemble des briques logicielles déjà écrites par d'autres : un module pour parser des dates, un autre pour valider des emails, un troisième pour discuter avec une base de données. Ces briques s'appellent des paquets, et la place de marché centrale qui les distribue s'appelle npm (Node Package Manager).\r\n\r\nConcrètement, dans un projet, on déclare la liste des paquets nécessaires dans un fichier . On lance la commande , et l'outil télécharge automatiquement les paquets demandés… ainsi que tous les paquets dont ces paquets ont eux-mêmes besoin. Un projet « simple » se retrouve souvent à dépendre de plusieurs centaines, voire plusieurs milliers, de paquets en cascade. C'est ce qu'on appelle l'arbre des dépendances.\r\n\r\nLe registre npm héberge aujourd'hui plus de 2,5 millions de paquets. C'est à la fois sa force — un écosystème colossal, une productivité décuplée — et sa faiblesse : la confiance accordée à chaque maillon de la chaîne est implicite, et chaque maillon devient une porte d'entrée potentielle.\r\n\r\nLa faille : ce qui s'est passé\r\n\r\nL'épisode décrit par LeMagIT n'est pas un bug logiciel classique. C'est ce qu'on appelle une attaque sur la chaîne d'approvisionnement logicielle (supply chain attack) : au lieu d'attaquer directement la cible finale, l'attaquant compromet un fournisseur en amont, et laisse la mise à jour légitime faire son travail de propagation.\r\n\r\nLe scénario reconstitué se déroule en plusieurs temps.\r\n\r\n1. Compromission d'un paquet de confiance. Les attaquants sont parvenus à pousser du code malveillant dans des paquets npm largement utilisés, notamment via le détournement du pipeline d'intégration continue de projets connus comme et l'écosystème Checkmarx. L'astuce n'est pas de publier un faux paquet : c'est de modifier un vrai paquet en exploitant les GitHub Actions — les robots qui construisent et publient automatiquement les nouvelles versions.\r\n\r\n2. Vol de secrets à l'installation. Une fois installé sur la machine d'un développeur ou dans un environnement de build, le code malveillant scanne l'environnement à la recherche de variables sensibles : , , , . Tout ce qui traîne dans les variables d'environnement, les fichiers , les configurations cloud.\r\n\r\n3. Auto-propagation. C'est là que l'attaque devient virale. Avec les jetons npm volés, le maliciel se reconnecte au registre npm, récupère la liste des paquets publiés par la victime, et publie automatiquement des versions piégées de ces paquets. Chaque développeur compromis devient un super-propagateur. Socket a identifié une quarantaine de paquets infectés en cascade lors d'une seule vague.\r\n\r\n4. Persistance. Sur les postes touchés, le malware installe un script pour survivre aux redémarrages, et, si nécessaire, exfiltre les données volées dans un dépôt GitHub public créé pour l'occasion.\r\n\r\nLe résultat : un binaire signé, publié sous un nom officiel, à jour, qui passe tous les contrôles de surface — et qui contamine simultanément le poste du développeur et les serveurs de production.\r\n\r\nPourquoi c'est « systémique »\r\n\r\nLe terme employé par LeMagIT est juste. Ce n'est pas un bug isolé, c'est une propriété structurelle de l'écosystème.\r\n\r\nLa confiance est transitive. On fait confiance à , qui fait confiance à , qui fait confiance à , etc. Compromettre un nœud profond et populaire suffit à toucher des millions de projets.\r\n\r\nLa publication est ouverte. N'importe qui peut publier un paquet. Les contrôles existent (provenance, 2FA pour les mainteneurs populaires) mais restent surtout a posteriori.\r\n\r\nLes scripts d'installation s'exécutent automatiquement. Un paquet npm peut déclarer un qui lance du code arbitraire au moment de . C'est pratique, mais c'est aussi un cheval de Troie idéal.\r\n\r\nLes jetons d'API sont partout. Le poste du développeur, les runners CI/CD, les serveurs : tous manipulent des secrets en clair dans des variables d'environnement. Un malware qui s'exécute dans le build n'a même pas besoin d'escalader ses privilèges.\r\n\r\nLes versions sont mutables sur fenêtre courte. Un paquet peut être republié dans les 72 heures suivant sa publication, et un peut retirer une version d'un jour à l'autre.\r\n\r\nAucun de ces points n'est un défaut technique réparable par un patch. Ce sont des choix d'architecture, vieux de plus de dix ans, qui ont accompagné l'explosion de l'écosystème.\r\n\r\nY a-t-il des alternatives ?\r\n\r\nLa question est légitime, mais la réponse honnête est : pas vraiment, et pour de bonnes raisons.\r\n\r\nLes gestionnaires de paquets alternatifs\r\n\r\n, et sont des gestionnaires différents, mais ils tirent leurs paquets du même registre npm. Migrer de à ne change rien à la surface d'attaque : ce sont les mêmes paquets, le même registre, les mêmes mainteneurs.\r\n\r\nCela dit, certains apportent des garde-fous utiles :\r\na introduit l'option , qui refuse d'installer un paquet publié il y a moins de N jours. Une vague d'attaque dure typiquement quelques heures avant détection : attendre 72 heures avant d'installer une nouvelle version élimine la fenêtre dangereuse.\r\nimpose un consentement explicite pour les scripts , là où npm les exécute par défaut.\r\net proposent des lockfiles stricts () qui garantissent que ce qui est installé en CI correspond exactement à ce qui a été testé.\r\n\r\nLes registres alternatifs\r\n\r\nJSR (JavaScript Registry), lancé par les créateurs de Deno, est le seul vrai nouveau registre crédible. Il a été conçu en tirant les leçons des problèmes de npm : TypeScript natif, modules ECMAScript par défaut, pas de scripts d'install, scoring qualité automatique, compatible avec tous les runtimes (Node, Deno, Bun). Mais JSR est complémentaire, pas un remplaçant : il héberge des milliers de paquets, pas des millions. Pour la majorité des dépendances, on continuera de passer par npm.\r\n\r\nLes registres privés — Verdaccio, GitHub Packages, JFrog Artifactory, Sonatype Nexus — ne remplacent pas npm non plus. Ils servent de proxy filtrant : on continue de récupérer les paquets publics, mais à travers un cache d'entreprise où l'on peut bloquer une version, exiger une signature, refuser un mainteneur, ou interdire les paquets publiés depuis moins de X jours. C'est probablement le meilleur compromis disponible aujourd'hui pour une organisation.\r\n\r\nLe verdict\r\n\r\nAbandonner npm en 2026 reviendrait à abandonner JavaScript. La valeur de l'écosystème (2,5 millions de paquets) est trop importante pour qu'on en sorte. Le problème ne se résoudra pas par un changement d'outil ; il se résoudra par un changement de pratiques.\r\n\r\nChanger les pratiques : ce qui doit devenir réflexe\r\n\r\nL'enseignement de cette campagne, et des précédentes (Shai-Hulud, TeamPCP, l'attaque Trivy/KICS), tient en une phrase : la confiance par défaut est morte. Il faut traiter chaque dépendance comme du code hostile par défaut, et le pipeline CI/CD comme une zone de production.\r\n\r\nAu niveau du poste de développement\r\nActiver l'option (ou équivalent) pour différer l'installation des paquets fraîchement publiés.\r\nDésactiver les scripts par défaut, et n'autoriser que ceux explicitement validés.\r\nNe jamais stocker de jetons en clair dans ou les variables d'environnement persistantes. Préférer un gestionnaire de secrets (1Password CLI, , ).\r\nUtiliser des comptes npm séparés pour la publication, avec 2FA matérielle obligatoire.\r\n\r\nAu niveau du dépôt\r\nVerrouiller systématiquement les dépendances (, , ) et installer en mode strict (, ).\r\nMettre en place un audit automatique des dépendances à chaque PR (Socket, Snyk, GitHub Dependabot, ).\r\nPublier ses propres paquets avec provenance npm (signature liée au pipeline GitHub Actions), pour que les consommateurs puissent vérifier l'origine.\r\nTenir à jour un SBOM (Software Bill of Materials) pour savoir exactement ce qui tourne en production.\r\n\r\nAu niveau du CI/CD\r\n\r\nC'est probablement le chantier le plus important.\r\nCloisonner les jetons. Un jeton de publication npm ne doit jamais coexister avec un jeton AWS dans la même étape de pipeline. Un secret par étape, durée de vie minimale, scope minimal.\r\nPréférer les jetons à courte durée de vie (OIDC entre GitHub Actions et le cloud) plutôt que des clés statiques.\r\nAuditer les GitHub Actions tierces. Une action est l'équivalent d'un . Épingler par hash SHA (), pas par tag mutable.\r\nRestreindre les permissions du au strict minimum ( par défaut, ponctuel et justifié).\r\nSurveiller le comportement réseau des runners : un build qui contacte un domaine inconnu doit lever une alerte.\r\n\r\nAu niveau de l'organisation\r\nMettre en place un registre proxy (Verdaccio, Nexus, Artifactory) avec liste blanche/noire de paquets, et l'imposer comme unique source pour tous les projets.\r\nDéfinir une politique de dependency governance : qui peut introduire une nouvelle dépendance, sous quelles conditions, avec quel niveau d'audit.\r\nPrévoir un playbook de révocation : que faire dans l'heure qui suit la détection d'un paquet compromis (rotation de tous les jetons npm/GitHub/cloud, audit des artefacts publiés, communication).\r\n\r\nEn résumé\r\n\r\nNPM n'est pas cassé, il est tel qu'il a été conçu : ouvert, automatique, transitif. Ce qui a changé, c'est la valeur que les attaquants peuvent en extraire — secrets cloud, jetons CI/CD, accès aux pipelines — et la sophistication des campagnes, qui exploitent désormais l'auto-propagation pour atteindre une échelle virale.\r\n\r\nAucune alternative ne supprime le problème, parce que le problème n'est pas npm : c'est l'idée qu'on puisse exécuter en production du code écrit par des inconnus sans jamais le regarder. Le rôle du DevOps en 2026, c'est de bâtir l'infrastructure qui rend cette inspection systématique, économique et inévitable — registres proxy, lockfiles stricts, jetons éphémères, audits continus, isolation des étapes de build.\r\n\r\nOn ne fera pas confiance à moins de gens. On exigera juste que chaque maillon prouve, à chaque exécution, qu'il est bien celui qu'il prétend être."},"score":0.75,"snippet":"…icts () qui garantissent que ce qui est installé en CI correspond exactement à ce qui a été testé.\r\n\r\nLes registres alternatifs\r\n\r\nJSR (JavaScript Registry), lancé par les créateurs de Deno, est le seul vrai nouveau regi…","tier":2},{"article":{"uuid":"104a8694-4268-4e0a-99c7-e7ecfd47af1e","slug":"auto-heberger-son-serveur-mail-en-2026","title":"Auto-héberger son serveur mail en 2026","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-12 08:35","created_at":"2026-05-12 08:38:14","updated_at":"2026-05-12 08:40:06","plain":"Survivre aux règles de Gmail, Outlook et consorts\r\nContexte — Cet article de Clubic (lien) rappelle une vérité technique : SMTP date de 1982, n'a aucune sécurité native, et toutes les \"rustines\" (SPF, DKIM, DMARC, MTA-STS, DANE) ont été conçues par Yahoo, Cisco, Microsoft, Google. Depuis février 2024 (Google) et mai 2025 (Microsoft), tout expéditeur dépassant 5000 mails/jour vers Gmail/Outlook doit configurer SPF + DKIM + DMARC, maintenir un taux de spam < 0,1 %, et fournir un lien de désinscription en un clic.\r\nMais même en dessous de 5000/jour, ces règles s'appliquent en pratique : sans elles, ton mail finit en spam ou est rejeté. Ce dossier décrit comment monter son propre serveur mail tout en passant à travers ces filtres.\r\n--\r\n\r\nSommaire\r\n\r\n1. Avant de commencer : est-ce vraiment une bonne idée ?\r\n2. Prérequis techniques\r\n3. Architecture cible\r\n4. Choix du fournisseur et de l'IP\r\n5. Configuration DNS complète\r\n6. Installation du stack mail\r\n7. SPF, DKIM, DMARC : les rustines obligatoires\r\n8. MTA-STS, TLS-RPT, DANE : aller plus loin\r\n9. PTR (reverse DNS) et HELO\r\n10. Warmup d'IP : la phase la plus délicate\r\n11. Postmaster Tools, SNDS, FBL\r\n12. Liste de désinscription en un clic (RFC 8058)\r\n13. Anti-spam entrant et hygiène\r\n14. Monitoring, logs, alertes\r\n15. Que faire quand Gmail rejette quand même ?\r\n16. Checklist finale avant mise en prod\r\n17. Annexes : commandes utiles\r\n--\r\n\r\n1. Avant de commencer : est-ce vraiment une bonne idée ?\r\n\r\nL'auto-hébergement mail est techniquement possible, mais c'est probablement le service le plus pénible à maintenir en 2026. Avant de te lancer, lis ça :\r\n\r\nCe qui marche bien en auto-hébergé :\r\nRecevoir du mail (presque tout le monde te livre).\r\nEnvoyer vers d'autres serveurs auto-hébergés ou pros bien configurés.\r\nGarder le contrôle sur tes données, tes alias, tes domaines.\r\n\r\nCe qui est dur :\r\nEnvoyer vers Gmail / Outlook / Yahoo / iCloud sans atterrir en spam.\r\nSortir d'une blacklist une fois dedans.\r\nMaintenir un score de réputation IP correct sur la durée.\r\nSurvivre à un changement unilatéral des règles côté gros acteurs (cf. février 2024 et mai 2025).\r\n\r\nStratégie réaliste recommandée :\r\nRéception entrante : auto-hébergée à 100 %. Aucun risque, full contrôle.\r\nEnvoi sortant : deux options, selon ton volume et ton tolérance au risque.\r\nOption A — Pure auto-hébergée : tu envoies directement depuis ton serveur. Faisable, mais demande un warmup, une IP propre, et un suivi continu.\r\nOption B — Smart host sortant : tu envoies via un relais réputé (un autre de tes serveurs avec une IP qui a déjà sa réputation, ou un service type Mailjet/Sendgrid/SMTP2GO en bas volume gratuit). Tes mails sortent depuis l'IP du relais, qui a déjà sa réputation faite. C'est un compromis : tu perds une partie de la souveraineté technique, mais tu gagnes énormément en délivrabilité.\r\n\r\nLe reste du dossier suit l'option A — tout en t'expliquant comment basculer en B si nécessaire.\r\n--\r\n\r\n2. Prérequis techniques\r\nÉlément | Détail |\r\n---|---|\r\nDomaine | À toi, registrar peu importe, mais avec DNSSEC activable (cf. §8 pour DANE). |\r\nServeur | VPS ou dédié, 2 vCPU / 4 Go RAM minimum, Debian 12+ ou Ubuntu 24.04 LTS. |\r\nIP fixe v4 | Indispensable. IP \"résidentielle\" ou IP de datacenter récemment recyclée = exclues. |\r\nIP fixe v6 | Recommandée, mais désactivable si l'IPv6 du fournisseur est blacklistée. |\r\nPTR / reverse DNS | Modifiable par toi. Si l'hébergeur ne te le permet pas, change d'hébergeur. |\r\nPorts | 25, 465, 587, 993, 4190 ouverts sortants ET entrants. Le port 25 sortant est bloqué chez beaucoup d'hébergeurs grand public (OVH résidentiel, Free, etc.) : vérifie avant. |\r\nTLS | Certificat valide (Let's Encrypt suffit). |\r\n\r\nCompétences attendues : Linux en ligne de commande, DNS (champs A/AAAA/MX/TXT/SRV/CAA/TLSA), notion de TLS, lecture de logs et .\r\n--\r\n\r\n3. Architecture cible\r\n\r\nUn stack standard, éprouvé, en logiciels libres :\r\n\r\n\r\n\r\nComposants :\r\nPostfix : MTA. Reçoit, route, envoie le SMTP.\r\nDovecot : serveur IMAP/POP3, livraison locale (LMTP), authentification SASL pour Postfix, gestion Sieve (filtres).\r\nRspamd : antispam moderne, fait aussi la vérification SPF/DKIM/DMARC entrante, le greylisting, et — option recommandée — la signature DKIM sortante (en remplacement d'OpenDKIM).\r\nLet's Encrypt (certbot) : TLS.\r\n(Optionnel) Roundcube ou SnappyMail : webmail.\r\n\r\nAlternative tout-en-un : Mailcow ou Mailu, basés sur Docker, qui empaquètent tout ça avec une interface admin. Si tu préfères ne pas tout configurer à la main, c'est légitime — la majorité des règles DNS et de délivrabilité de ce dossier restent identiques.\r\n--\r\n\r\n4. Choix du fournisseur et de l'IP\r\n\r\nLe choix de l'hébergeur conditionne la moitié de ta délivrabilité. Avant de prendre un VPS :\r\n\r\n1. Le port 25 sortant est-il ouvert ? Beaucoup d'hébergeurs le bloquent par défaut pour limiter le spam (Hetzner l'ouvre sur demande, OVH l'ouvre selon le produit, Scaleway l'ouvre selon le compte). Pose la question au support avant de payer.\r\n2. Le PTR est-il configurable ? Si non, change.\r\n3. L'IP a-t-elle été utilisée par un spammeur ? Avant d'acheter le VPS, demande l'IP qu'on te donnera. Vérifie sur :\r\nmxtoolbox.com/blacklists.aspx\r\nmultirbl.valli.org\r\ntalosintelligence.com (Cisco)\r\nsenderscore.org\r\n \r\n Si l'IP est listée sur Spamhaus, Barracuda, SORBS, SpamCop, demande à l'hébergeur de te l'échanger ou prends un autre VPS. Une fois listée, tu vas y passer des semaines.\r\n4. Réputation du subnet (). Même si ton IP est propre, si le est pourri (beaucoup de spammeurs voisins), Gmail va te traiter avec méfiance. Vérifie sur senderscore.org en saisissant ton IP — le score du subnet apparaît.\r\n\r\nHébergeurs réputés corrects pour le mail : Hetzner, OVH (gamme dédiée, pas SoYouStart), Scaleway, Infomaniak (en VPS), Netcup. À éviter pour de l'envoi : DigitalOcean (subnets souvent grillés), Linode/Akamai (idem), AWS EC2 (le port 25 est limité par défaut, et la rate-limit est costaude).\r\n--\r\n\r\n5. Configuration DNS complète\r\n\r\nPour un domaine avec un serveur mail sur à l'IP (et en v6) :\r\n\r\n\r\n\r\nDétails dans les sections dédiées plus bas.\r\n\r\nÀ ne pas oublier : l'enregistrement PTR (reverse DNS) se configure chez ton hébergeur, pas dans ta zone DNS. Il doit pointer . C'est traité au §9.\r\n--\r\n\r\n6. Installation du stack mail\r\n\r\nSur Debian 12. Ce qui suit est volontairement condensé — pour une configuration ligne par ligne, suis le tutoriel de référence de Workaround.org qui est l'étalon depuis 20 ans.\r\n\r\n\r\n\r\nPostfix : configuration minimale-mais-saine\r\n\r\n\r\n\r\nDovecot, Rspamd\r\n\r\nCes composants demandent leurs propres fichiers de configuration. Renvoi explicite vers les tutos qui font autorité :\r\nWorkaround.org / ISPmail : https://workaround.org/ispmail/ — référence francophone et anglophone, mise à jour à chaque version Debian.\r\nRspamd quickstart : https://www.rspamd.com/doc/tutorials/quickstart.html\r\nDovecot wiki : https://doc.dovecot.org/\r\n\r\nSi tu veux gagner du temps, Mailcow () est aujourd'hui la solution clé-en-main la plus fiable.\r\n--\r\n\r\n7. SPF, DKIM, DMARC : les rustines obligatoires\r\n\r\nSans ces trois enregistrements correctement configurés, Gmail et Outlook rejetteront ou marqueront en spam la majorité de tes messages — peu importe ton volume.\r\n\r\nSPF (Sender Policy Framework)\r\n\r\nDéclare qui a le droit d'envoyer du mail pour ton domaine.\r\n: autorise les serveurs listés dans le MX du domaine.\r\n: rejet strict de tout le reste. Indispensable pour la réputation. Ne jamais utiliser (softfail) en prod : Gmail aujourd'hui considère comme un signal faible.\r\n\r\nSi tu envoies aussi via un relais externe (smart host) : ajoute son , ex. .\r\n\r\nLimite : un enregistrement SPF doit tenir en 10 lookups DNS maximum. Au-delà, il est invalide. Vérifie avec https://www.kitterman.com/spf/validate.html.\r\n\r\nDKIM (DomainKeys Identified Mail)\r\n\r\nSigne chaque mail sortant avec une clé privée. Le destinataire vérifie la signature via la clé publique publiée en DNS.\r\n\r\nGénération de la clé (Rspamd, sélecteur , clé 2048 bits) :\r\n\r\n\r\n\r\nLe fichier contient l'enregistrement DNS à publier :\r\n\r\n\r\n\r\nConfiguration Rspamd () :\r\n\r\n\r\n\r\nRecharge : .\r\n\r\nVérification : envoie un mail à check-auth@verifier.port25.com, tu reçois un rapport complet SPF/DKIM/DMARC en retour. Ou utilise https://www.mail-tester.com/ (note sur 10).\r\n\r\nDMARC (Domain-based Message Authentication, Reporting and Conformance)\r\n\r\nDit aux serveurs distants quoi faire en cas d'échec SPF/DKIM, et te renvoie des rapports sur ce qui passe et ce qui rate.\r\n: surveillance seule, à utiliser pendant 2-4 semaines en démarrage pour collecter les rapports sans pénaliser.\r\n: mise en spam des mails non authentifiés. Cible normale.\r\n: rejet pur. À atteindre en cible finale, après avoir vérifié 4 semaines de rapports propres.\r\n: adresse pour les rapports agrégés (quotidiens).\r\n: rapports forensiques (par message). Optionnel.\r\n: alignement strict — le domaine de signature DKIM et le domaine SPF doivent exactement correspondre au domaine .\r\n\r\nLecture des rapports DMARC : ils arrivent en XML, illisibles. Utilise un parseur :\r\nPostmark DMARC Monitoring (gratuit, agrège les rapports dans une UI).\r\nparsedmarc (auto-hébergeable, envoie dans Elasticsearch/Splunk/Grafana).\r\n--\r\n\r\n8. MTA-STS, TLS-RPT, DANE : aller plus loin\r\n\r\nCes standards sécurisent le transport entre serveurs (chiffrement TLS forcé). Gmail les regarde, Microsoft aussi. Pas obligatoires, mais ils boostent ta réputation.\r\n\r\nMTA-STS\r\n\r\nForce les serveurs distants à utiliser TLS pour t'envoyer des mails. Trois éléments :\r\n\r\n1. Enregistrement DNS TXT :\r\n\r\n\r\n2. Sous-domaine servant un fichier en HTTPS à :\r\n\r\n\r\n est la cible. En démarrage, mets pendant 1-2 semaines.\r\n\r\n3. Certificat TLS valide sur ce sous-domaine (déjà fait via certbot au §6).\r\n\r\nTLS-RPT\r\n\r\nDemande aux serveurs distants de t'envoyer des rapports en cas d'échec TLS.\r\n\r\n\r\n\r\nDANE (DNS-based Authentication of Named Entities)\r\n\r\nEncore plus solide que MTA-STS, mais nécessite DNSSEC activé sur ton domaine. Si ton registrar ne supporte pas DNSSEC, oublie DANE.\r\n\r\nDANE publie un hash du certificat TLS dans un enregistrement TLSA :\r\n\r\n\r\n\r\nOu plus simplement avec https://www.huque.com/bin/gentlsa :\r\n\r\n\r\n\r\nVérification globale de tout ton setup TLS+DANE : https://internet.nl/mail/ (excellent, recommandé).\r\n--\r\n\r\n9. PTR (reverse DNS) et HELO\r\n\r\nLe PTR est probablement la cause la plus fréquente de rejet par Gmail/Outlook chez les nouveaux auto-hébergés.\r\n\r\nRègle absolue : , et tout doit être un FQDN cohérent.\r\n\r\nConfigure le PTR dans le panneau de ton hébergeur (chez OVH : \"IP\" → \"Reverse DNS\") :\r\n\r\n\r\nVérifie :\r\n\r\n\r\nDans Postfix, et c'est ce qui est annoncé en HELO. Cohérence garantie.\r\n--\r\n\r\n10. Warmup d'IP : la phase la plus délicate\r\n\r\nUne IP neuve = pas de réputation = défiance maximale des gros acteurs. Tu ne peux pas envoyer 1000 mails le jour 1 sans te griller.\r\n\r\nPlan de warmup sur 4 à 6 semaines\r\nSemaine | Volume max/jour vers Gmail+Outlook | Volume max/jour total | Contenu |\r\n---|---|---|---|\r\n1 | 20-50 | 100 | Mails à toi-même, comptes test sur Gmail/Outlook/Yahoo. Réponds-y, marque \"non spam\" si en spam. |\r\n2 | 100 | 300 | Cercle proche qui sait répondre / interagir. |\r\n3 | 300 | 1000 | Élargissement progressif. |\r\n4 | 800 | 3000 | Ouvre aux usages normaux. |\r\n5+ | 2000+ | volume cible | Stable. |\r\n\r\nRègles d'or pendant le warmup :\r\nPas de mailing list, pas de notifs automatiques en masse. Privilégie des mails 1-à-1 conversationnels.\r\nDemande aux destinataires de répondre — un mail avec réponse a 100x le poids d'un mail ouvert silencieusement.\r\nAucun lien raccourci, aucun pixel de tracking, aucune image lourde.\r\nStop net si ton score Senderscore baisse ou si Gmail Postmaster Tools (cf. §11) montre du rouge.\r\n\r\nSi tu as un volume immédiat à envoyer\r\n\r\nBascule en option B (smart host) le temps du warmup, puis rapatrie progressivement en interne en répliquant les volumes ci-dessus.\r\n--\r\n\r\n11. Postmaster Tools, SNDS, FBL\r\n\r\nLes gros acteurs te donnent des dashboards dédiés. Inscris-toi à tous, dès la création du domaine.\r\nService | Acteur | Usage |\r\n---|---|---|\r\nGoogle Postmaster Tools | Gmail | Réputation IP+domaine, taux de spam, authentification, encryption. Indispensable. |\r\nMicrosoft SNDS | Outlook/Hotmail | Smart Network Data Services, qualité de l'IP. |\r\nMicrosoft JMRP | Outlook | Junk Mail Reporting Program, FBL Microsoft. |\r\nYahoo CFL | Yahoo | Complaint Feedback Loop. |\r\nValidity Sender Score | Indépendant | Score sur 100, à surveiller. |\r\n\r\nConfigure les feedback loops (FBL) : quand un destinataire clique \"spam\", tu reçois une notification. Ça te permet de désinscrire l'utilisateur avant qu'il ne dégrade ta réputation.\r\n--\r\n\r\n12. Liste de désinscription en un clic (RFC 8058)\r\n\r\nExigence Google/Microsoft pour les expéditeurs en volume, mais à mettre en place dès le début même en bas volume.\r\n\r\nAjoute deux en-têtes à tous les mails non-strictement-personnels :\r\n\r\n\r\n\r\nL'URL HTTPS doit accepter une requête POST (pas seulement GET) avec dans le corps, et désinscrire immédiatement et silencieusement sans demander de confirmation.\r\n--\r\n\r\n13. Anti-spam entrant et hygiène\r\n\r\nUn serveur mail mal configuré côté entrée devient vite un relais de spam ou une cible. Configuration Rspamd minimale :\r\n\r\n\r\n\r\n\r\n\r\nActive aussi :\r\nVérification SPF/DKIM/DMARC entrante (par défaut activée dans Rspamd).\r\nRBL (Realtime Blackhole Lists) : Spamhaus ZEN, Barracuda. Attention à ne pas multiplier — 2 ou 3 RBL fiables suffisent.\r\nGreylisting : refuse temporairement les premiers contacts, ce qui élimine 80% du spam basique. Ne pas activer sur un domaine à fort volume transactionnel (gêne les notifs).\r\nBayes : laisse Rspamd apprendre via le dossier de Dovecot (signal / ).\r\n\r\nMises à jour : activé, redémarrage planifié, lecture des annonces sécu Postfix/Dovecot.\r\n--\r\n\r\n14. Monitoring, logs, alertes\r\n\r\nSans monitoring, tu découvres les problèmes par les utilisateurs. À mettre en place :\r\nLecture des logs : , , web UI de Rspamd sur .\r\nMétriques : exporter Postfix/Dovecot vers Prometheus + Grafana (, ).\r\nAlertes sur :\r\nFile d'attente Postfix > 50 messages ().\r\nScore Senderscore qui chute.\r\nApparition sur une RBL : surveillance automatisée par https://multirbl.valli.org/ ou via un script qui interroge plusieurs DNSBL en cron.\r\nÉchec TLS-RPT (rapport entrant signalant une connexion non chiffrée).\r\nRapports DMARC parsés régulièrement (cf. §7).\r\n--\r\n\r\n15. Que faire quand Gmail rejette quand même ?\r\n\r\nÇa arrive. Diagnostic dans l'ordre :\r\n\r\n1. Lis le code de rejet SMTP dans . Gmail renvoie des codes très explicites :\r\n→ contenu jugé spammy. Revois le contenu, ajoute du texte conversationnel, retire les liens douteux.\r\n→ tu as dépassé un seuil. Ralentis immédiatement, attends 24-48h, reprends doucement.\r\n→ ton DMARC ne passe pas. Revérifie SPF/DKIM/alignement.\r\n→ tu es sur une RBL. Va sur spamhaus.org/lookup/ pour vérifier et demander la sortie.\r\n2. Va dans Postmaster Tools (§11). Si \"IP reputation\" est rouge ou orange, regarde le contenu et le timing de tes envois récents.\r\n3. Test mail-tester : envoie à une adresse fournie par mail-tester.com, obtiens une note sur 10. Vise 10/10. Toute case manquante doit être corrigée.\r\n4. Sortie de blacklist : la plupart des RBL (Spamhaus, Barracuda) ont un formulaire de retrait. Spamhaus retire en quelques heures si tu corriges la cause. SORBS est plus lent. UCEPROTECT exige souvent de payer — ignore-la, peu de serveurs sérieux la consultent.\r\n5. Si rien ne marche, change d'IP. C'est parfois la seule issue. Demande à ton hébergeur une IP fraîche, refais un warmup.\r\n--\r\n\r\n16. Checklist finale avant mise en prod\r\n\r\nAvant d'envoyer le premier vrai mail :\r\n[ ] Domaine avec DNSSEC activé.\r\n[ ] IP testée sur 5+ blacklists, propre.\r\n[ ] Port 25 sortant ouvert et testé ().\r\n[ ] PTR configuré et cohérent avec le HELO.\r\n[ ] MX, A, AAAA, SPF, DKIM, DMARC publiés et validés via mxtoolbox.com.\r\n[ ] MTA-STS publié (mode au démarrage).\r\n[ ] TLS-RPT publié.\r\n[ ] DANE/TLSA publié (si DNSSEC OK).\r\n[ ] CAA publié.\r\n[ ] Test envoyé à : tout en .\r\n[ ] Test mail-tester.com : 10/10.\r\n[ ] Test internet.nl/mail/ : 100%.\r\n[ ] Inscription Postmaster Tools, SNDS, JMRP, Yahoo CFL.\r\n[ ] DMARC au démarrage, parser de rapports en place.\r\n[ ] List-Unsubscribe + List-Unsubscribe-Post implémentés.\r\n[ ] Plan de warmup affiché et respecté.\r\n[ ] Monitoring file d'attente + RBL en place.\r\n[ ] Backup chiffré des Maildir.\r\n\r\nAu bout de 4 semaines de rapports DMARC propres : passage à . Au bout de 8-12 semaines : .\r\n--\r\n\r\n17. Annexes : commandes utiles\r\n\r\n\r\n\r\nOutils web à mettre en favoris\r\nhttps://www.mail-tester.com/ — score sur 10\r\nhttps://internet.nl/mail/ — audit complet\r\nhttps://mxtoolbox.com/SuperTool.aspx — DNS, blacklists\r\nhttps://dmarcian.com/dmarc-inspector/ — vérif DMARC\r\nhttps://www.kitterman.com/spf/validate.html — vérif SPF\r\nhttps://postmaster.google.com/ — Google Postmaster\r\nhttps://senderscore.org/ — réputation IP\r\n\r\nDocumentation de référence\r\nISPmail / Workaround.org — https://workaround.org/ispmail/ — le tutoriel le plus complet et tenu à jour, par version Debian.\r\nMailcow docs — https://docs.mailcow.email/ — pour la version conteneurisée clé-en-main.\r\nPostfix officiel — https://www.postfix.org/documentation.html\r\nRspamd docs — https://www.rspamd.com/doc/\r\nRFCs essentielles** : 5321 (SMTP moderne), 7208 (SPF), 6376 (DKIM), 7489 (DMARC), 8461 (MTA-STS), 8460 (TLS-RPT), 7672 (DANE-SMTP), 8058 (One-Click Unsubscribe).\r\n--\r\n\r\nL'auto-hébergement mail en 2026 reste possible, mais c'est devenu un sport : les règles changent, les gros acteurs durcissent leurs critères, et l'écosystème pousse vers la centralisation. Si tu réussis le warmup et tiens 6 mois sans incident, tu as gagné — mais ne baisse pas la garde, un changement unilatéral de Google peut survenir à tout moment, comme en février 2024."},"score":0.75,"snippet":"…de signature DKIM et le domaine SPF doivent exactement correspondre au domaine .\r\n\r\nLecture des rapports DMARC : ils arrivent en XML, illisibles. Utilise un parseur :\r\nPostmark DMARC Monitoring (gratuit, agrège les rapp…","tier":2},{"article":{"uuid":"bea327e2-9d1c-4ff6-a5a5-26748c80018b","slug":"anatomie-d-un-script-d-auto-deploiement-bash-fetch-scripts-sh","title":"Script Bash d'auto-déploiement : `fetch_scripts.sh`","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-04 07:04","created_at":"2026-05-12 10:55:39","updated_at":"2026-05-12 11:10:51","plain":"Comment un simple script Bash peut télécharger, mettre à jour et synchroniser une bibliothèque de scripts distants — et pourquoi il faut le lire avec un œil critique.\r\n\r\nfetchscripts.sh\r\n📝 Note — Cet article est une autocritique. Le script analysé ici est de ma propre fabrication, déployé sur mes propres machines. L'exercice consiste à le relire avec la distance d'un reviewer extérieur, pour identifier ce qui tient la route et ce qui mériterait d'être repris.\r\n\r\nLe contexte\r\n\r\nL'idée derrière ce script est élégante : centraliser une collection de scripts utilitaires dans un dépôt Git public (ici, une instance Forgejo auto-hébergée), puis fournir un unique point d'entrée que l'on télécharge sur n'importe quelle machine. Ce point d'entrée se met à jour tout seul, propose à l'opérateur de choisir quels sous-ensembles de scripts récupérer, et maintient une synchronisation locale du dépôt distant.\r\n\r\nC'est typiquement le genre d'outil qui se déploie en une ligne :\r\n\r\n\r\n\r\nDécortiquons ce qu'il fait, étape par étape, puis voyons où il faudrait taper.\r\n--\r\n\r\nÉtape 1 — L'auto-mise à jour\r\n\r\n\r\n\r\nCe qui se passe : le script télécharge sa propre version distante dans , la compare octet-à-octet avec lui-même (), et si elle diffère, il s'écrase, se rend exécutable, et se relance via (qui remplace le processus courant — pas d'empilement de shells).\r\n\r\nPourquoi c'est malin : ça garantit qu'à chaque exécution, l'opérateur travaille avec la version canonique du dépôt. Pas besoin de mécanisme de versioning, pas de vérification de hash, pas de paquet à publier.\r\n\r\nPourquoi c'est risqué : on y reviendra dans la critique, mais en résumé — l'auto-mise à jour silencieuse depuis une URL en HTTPS sans signature est une porte d'entrée pour la chaîne d'approvisionnement.\r\n--\r\n\r\nÉtape 2 — Récupération du catalogue de dossiers\r\n\r\n\r\n\r\nLe dépôt distant contient un fichier qui liste les catégories de scripts disponibles (par exemple : , , , …). Ce fichier est la source de vérité : ajouter une catégorie côté serveur la rend immédiatement disponible côté client.\r\n\r\n (alias ) lit le fichier ligne à ligne dans un tableau Bash. Plus propre qu'une boucle .\r\n\r\nUn dossier est marqué comme obligatoire — il sera toujours téléchargé, sans demander à l'utilisateur.\r\n--\r\n\r\nÉtape 3 — Mémoire de la sélection précédente\r\n\r\n\r\n\r\nÀ chaque exécution, le script relit la sélection de la fois précédente. C'est ce qui permet à l'interface graphique (étape suivante) de pré-cocher les bons dossiers : on n'a pas à refaire son choix à chaque mise à jour.\r\n--\r\n\r\nÉtape 4 — L'interface \r\n\r\n\r\n\r\n est l'outil de dialogue ncurses standard sur Debian/Ubuntu — il affiche cette boîte bleue familière avec des cases à cocher, navigable au clavier. Idéal en SSH.\r\n\r\nLa gymnastique est un classique : écrit son interface sur stdout et sa réponse sur stderr. Il faut donc échanger les deux pour capturer la sélection dans tout en laissant l'interface s'afficher.\r\n\r\nL'expression est une astuce courante pour tester l'appartenance à un tableau Bash — on entoure d'espaces pour éviter les correspondances partielles ( qui matcherait ).\r\n--\r\n\r\nÉtape 5 — Synchronisation : ajouts et suppressions\r\n\r\n\r\n\r\nLogique de diff : tout ce qui était sélectionné avant et ne l'est plus est supprimé du disque. Ça maintient le répertoire local propre — pas de scripts orphelins qui traînent.\r\n\r\n renvoie la sélection sous forme de chaîne entre guillemets (), d'où le pour les retirer avant de constituer le tableau.\r\n--\r\n\r\nÉtape 6 — Téléchargement des fichiers de chaque dossier\r\n\r\n\r\n\r\nMême logique récursive d'un niveau plus bas : chaque dossier contient son propre listant ses fichiers. On télécharge ceux qui y figurent, on supprime ceux qui n'y figurent plus, et on rend tout exécutable.\r\n\r\nC'est une forme de artisanal, basé sur des manifestes plats. Ça fonctionne sans avoir à installer sur la machine cible — seuls et sont requis.\r\n--\r\n\r\nCritique : ce qui marche, ce qui inquiète\r\n\r\nLes bons côtés\r\n\r\nLa logique d'idempotence est solide. Le script peut tourner cent fois de suite, il convergera toujours vers le même état : les dossiers sélectionnés contiendront exactement les fichiers du manifeste, ni plus, ni moins. C'est le bon réflexe DevOps.\r\n\r\nL'auto-bootstrap est ergonomique. Une seule URL à retenir, tout le reste se télécharge tout seul. Pour une bibliothèque personnelle de scripts d'admin, c'est imbattable en simplicité.\r\n\r\nPas de dépendances exotiques. , , : tout est disponible nativement sur Debian. Le script tourne aussi bien sur un conteneur LXC fraîchement provisionné que sur une machine établie.\r\n\r\nLe manifeste séparé ( et ) découple la liste des fichiers de leur contenu. C'est plus simple qu'un parsing HTML de l'index Git, et ça reste sous contrôle éditorial.\r\n\r\nLes angles morts\r\n\r\n1. Aucune vérification d'intégrité\r\n\r\nC'est le point critique. Le script télécharge du code exécutable en HTTPS, sans vérifier :\r\nni signature GPG,\r\nni hash SHA256,\r\nni même que le serveur a bien répondu correctement.\r\n\r\n en mode silencieux n'échoue pas visiblement : si la requête renvoie une page d'erreur 404 ou une page de connexion captive Wi-Fi en HTML, elle sera écrite dans le fichier de destination. La vérification suivante () considérera ce HTML comme « différent », fera le , et au prochain le shell essaiera d'exécuter du HTML. Au mieux ça crashe, au pire ça exécute des balises interprétables.\r\n\r\nPire encore pour l'auto-update : si quelqu'un compromet l'instance Forgejo (ou interpose un proxy malveillant capable de servir un certificat valide pour ), le prochain télécharge et exécute du code arbitraire avec les privilèges de l'utilisateur courant — souvent root pour ce genre d'outils d'admin.\r\n\r\nCorrectif minimal : publier un fichier signé GPG dans le dépôt, le télécharger, vérifier sa signature avec une clé connue localement, puis valider chaque fichier téléchargé contre ce manifeste.\r\n\r\n2. sans gestion d'erreur\r\n\r\n\r\n\r\nSi échoue (réseau coupé, DNS HS, certificat expiré), sera soit vide soit absent. retournera « différent », et le script écrasera la version locale par un fichier vide. À la prochaine exécution, plus rien ne fonctionne.\r\n\r\nCorrectif : vérifier le code de retour de , vérifier que le fichier téléchargé n'est pas vide, et vérifier qu'il commence bien par avant d'écraser quoi que ce soit.\r\n\r\n\r\n\r\n3. Le perd les modifications de l'environnement\r\n\r\nSi le script a été lancé par (donc sans le bit exécutable, sans shebang utilisé), vaut . Après , on un fichier qui pourrait ne pas être dans le . En pratique ça marche parce qu'on est dans le bon répertoire, mais c'est fragile — un quelque part dans le script suffirait à le casser.\r\n\r\n4. Injection via les noms de fichiers du manifeste\r\n\r\n\r\n\r\nLe contenu de est utilisé directement dans une URL et dans un chemin de fichier local. Si quelqu'un peut écrire dans ce fichier manifeste (ce qui revient à pouvoir pousser sur le dépôt Forgejo), il peut y mettre des chemins comme et écrire en dehors du répertoire prévu.\r\n\r\n neutralise partiellement la chose côté nom local, mais l'URL côté distant accepte n'importe quoi. C'est moins critique que la première faille, mais ça mérite un filtre regex ( uniquement).\r\n\r\n5. et la sélection vide\r\n\r\nSi l'utilisateur ne coche rien et valide, est vide. Le script continue avec seulement , ce qui est probablement le comportement attendu. Mais si n'est pas installé (rare mais possible, par exemple sur Alpine ou un Debian minimal sans ), le script échoue avec une erreur peu explicite. Un test préalable éviterait la déconvenue.\r\n\r\n6. Pas de log, pas de mode dry-run\r\n\r\nPour un outil qui supprime des fichiers (), l'absence d'option qui afficherait ce qui serait fait sans rien toucher est gênante. Une frappe distraite sur la checklist, et un dossier entier disparaît sans warning.\r\n\r\n7. Le verrou manquant\r\n\r\nRien n'empêche deux instances de de tourner en parallèle (par exemple via et un opérateur en interactif). Un sur un fichier de lock éviterait des courses sur les opérations de download/delete.\r\n--\r\n\r\nVerdict\r\n\r\nC'est un script utile, lisible, et bien construit pour un usage personnel sur des machines de confiance. La logique de synchronisation est saine, l'ergonomie est appréciable, l'auto-bootstrap est élégant.\r\n\r\nMais dès qu'on franchit la frontière du « j'utilise ça sur mes propres machines avec mon propre dépôt », les manques se font sentir : pas de vérification d'intégrité, pas de gestion d'erreur réseau, pas d'option de récupération. Dans un contexte d'équipe ou de production, ces points sont bloquants.\r\n\r\nPistes d'évolution prioritaires\r\n\r\n1. Signature ou checksum : publier un signé GPG, le vérifier avant tout ou exécution.\r\n2. en tête de script pour faire échouer proprement à la première erreur.\r\n3. Vérifier : code de retour, fichier non vide, shebang présent.\r\n4. Backup avant écrasement : conserver la version précédente () pour pouvoir revenir en arrière.\r\n5. Option pour visualiser sans appliquer.\r\n6. Filtre regex sur les noms de fichiers du manifeste pour éviter les traversées de chemin.\r\n7. Lock file** via pour éviter les exécutions concurrentes.\r\n\r\nAvec ces ajouts, on passe d'un script « pratique » à un outil de déploiement digne de ce nom — sans rien perdre de sa simplicité initiale."},"score":0.75,"snippet":"…our tester l'appartenance à un tableau Bash — on entoure d'espaces pour éviter les correspondances partielles ( qui matcherait ).\r\n--\r\n\r\nÉtape 5 — Synchronisation : ajouts et suppressions\r\n\r\n\r\n\r\nLogique de diff : tout ce…","tier":2},{"article":{"uuid":"75bf96ba-e110-4a9e-8163-95890562aecf","slug":"souverainete-numerique-le-paradoxe-d-orange-face-aux-clouds-americains","title":"Orange dans les bras d'Amazon : l'aveu d'un échec européen","category":"actualité","author":"cedric@abonnel.fr","cover":"cover.jpg","published":true,"published_at":"2026-01-16 11:17","created_at":"2026-01-16 11:17:19","updated_at":"2026-05-11 21:44:15","plain":"Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.\r\n\r\nLa raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.\r\n\r\nSauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.\r\n\r\nLe plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?\r\n\r\nParce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.\r\n\r\nDu coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.\r\n\r\nD'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds \"de confiance\" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.\r\n\r\nPour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.\r\n\r\nLa bonne question n'est donc pas \"pourquoi Orange utilise AWS\". Elle est \"pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable\". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond."},"score":0.75,"snippet":"…tenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.\r\n\r\nDu coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire ac…","tier":2},{"article":{"uuid":"c8fa250e-d8b5-453a-a06a-799d53c3b6d1","slug":"la-smart-brick-de-lego-quand-la-brique-devient-intelligente","title":"LEGO : La brique qui répond","category":"loisirs","author":"cedric@abonnel.fr","cover":"cover.jpg","published":true,"published_at":"2026-01-13 20:26","created_at":"2026-01-13 20:26:53","updated_at":"2026-05-11 22:45:23","plain":"La brique qui répond\r\n\r\nÀ première vue c'est une brique LEGO comme une autre. Un parallélépipède de plastique gris, le format classique, deux par quatre tenons sur le dessus. On pourrait la prendre, l'emboîter dans un mur, et ne rien remarquer. Sauf que celle-là parle. Elle fait du bruit, elle clignote, elle sait si vous la secouez ou si vous la posez à plat. À l'intérieur, LEGO a réussi à caser un accéléromètre, un capteur de lumière, un capteur de couleur, un haut-parleur miniature et une puce sur mesure plus petite qu'un seul tenon. C'est la LEGO Smart Brick, et elle est arrivée en boutique le 1ᵉʳ mars 2026.\r\n\r\nIl faut tout de suite tordre le cou à un malentendu. La Smart Brick, ce n'est pas un Mindstorms. Ce n'est pas du LEGO éducatif, ce n'est pas une plateforme pour apprendre à coder, et on ne programme rien du tout avec. C'est un objet beaucoup plus simple dans son intention : faire en sorte qu'un set LEGO réagisse quand on joue avec. Vous prenez le X-Wing de Luke Skywalker, vous le faites basculer pour décoller, le brique embarquée détecte le mouvement et joue le bruit du moteur. Vous posez la minifigurine de Dark Vador à côté, la brique la reconnaît grâce à un Smart Tag (une petite tuile codée), et elle déclenche la respiration emblématique du Seigneur Sith. C'est tout. Mais c'est déjà beaucoup.\r\n\r\nLEGO appelle cet écosystème Smart Play. Il repose sur trois éléments. La Smart Brick elle-même, qui est le cerveau et le haut-parleur. Les Smart Tags, des tuiles plates qu'on accroche aux constructions et qui disent à la brique ce qu'elle doit faire à cet endroit (« ici tu joues un bruit de tir laser », « ici tu fais le bruit du réacteur »). Et les Smart Minifigures, des figurines avec un identifiant intégré, que la brique détecte quand on les approche. Le tout communique en local, sans appli obligatoire, sans écran, via un système maison que LEGO a baptisé BrickNet. C'est important : le pari est explicitement de faire de la techno invisible, pas de coller un smartphone entre l'enfant et le jouet.\r\n\r\nCôté pratique, la brique se recharge sans fil. Elle tient environ deux heures et demie en jeu actif, se met en veille au bout de trois minutes d'inactivité et se réveille quand on la secoue. Au-delà d'une dizaine d'heures de veille, il faut la remettre sur son chargeur. Une application gratuite, LEGO SMART Assist, sert à régler le volume, donner un nom à ses briques, gérer plusieurs appareils, et surtout mettre à jour le firmware — parce que oui, une brique LEGO peut maintenant recevoir des mises à jour logicielles. On y est.\r\n\r\nPour le lancement, LEGO a choisi Star Wars, et l'offre est un peu plus subtile qu'il n'y paraît. Huit sets sortent le 1ᵉʳ mars, mais seulement trois contiennent réellement une Smart Brick. Ce sont les coffrets dits All-In-One, qui embarquent la brique, son chargeur, des tags et des figurines intelligentes :\r\n75421 — Chasseur TIE de Dark Vador : 69,99 €, le ticket d'entrée.\r\n75423 — Le X-Wing rouge de Luke Skywalker : 89,99 €.\r\n75427 — Duel dans la salle du trône & A-Wing : 159,99 €, le plus gros, avec deux Smart Bricks.\r\n\r\nLes cinq autres sets — Millennium Falcon, Mos Eisley Cantina, AT-ST Endor, hutte de Yoda, Landspeeder de Luke — sont étiquetés Smart Play mais ne contiennent pas de brique. Ils embarquent juste des tags et des figurines compatibles. Pour qu'ils s'animent, il faut posséder une brique achetée dans l'un des trois coffrets All-In-One, et la déplacer d'un set à l'autre. C'est un choix commercial qu'on peut critiquer : un parent ou un grand-parent qui voit Smart Play sur la boîte de la Mos Eisley Cantina à 79,99 € a de quoi être surpris en rentrant à la maison.\r\n\r\nGéographiquement, le lancement est restreint. Six pays seulement à l'ouverture : États-Unis, Royaume-Uni, France, Allemagne, Pologne, Australie. Le reste du monde attendra.\r\n\r\nPourquoi est-ce intéressant au-delà du cas Star Wars ? Parce que LEGO ne fait pas ça pour vendre trois sets. La marque parle de plus de vingt brevets déposés sur la techno, et de la « plus grande évolution du système LEGO depuis l'introduction de la minifigurine en 1978 ». Le ton est ambitieux, et il y a déjà des rumeurs de déclinaisons sur les gammes Pokémon et Animal Crossing. Si le pari réussit, on parle d'une plateforme qui peut s'étendre à toute la production LEGO sur dix ou vingt ans. Si elle échoue, ce sera la deuxième tentative ratée après les Mindstorms et la gamme Boost, dans la longue liste des essais LEGO pour marier l'électronique au plastique.\r\n\r\nLe point qui me semble vraiment réussi, c'est la philosophie sans écran. Là où la plupart des jouets connectés exigent une tablette pour fonctionner, où l'enfant finit en pratique à regarder un iPad plutôt qu'à jouer avec l'objet physique, LEGO a fait le choix inverse : l'application existe mais elle est facultative, toute l'interaction se passe entre les mains et les briques. C'est moins spectaculaire dans une démo marketing, mais c'est probablement plus juste pour des gamins de huit ans.\r\n\r\nReste à voir ce que ça donne en vrai, sur le tapis du salon, après six mois d'utilisation, quand la batterie sera moins fringante et que la nouveauté se sera émoussée. C'est toujours là que se joue la vraie partie pour ce genre de produit. Mais sur le papier, et c'est rare, LEGO a sorti quelque chose qui ne ressemble à rien d'autre."},"score":0.75,"snippet":"…n Smart Tag (une petite tuile codée), et elle déclenche la respiration emblématique du Seigneur Sith. C'est tout. Mais c'est déjà beaucoup.\r\n\r\nLEGO appelle cet écosystème Smart Play. Il repose sur trois éléments. La Smar…","tier":2},{"article":{"uuid":"0e0b8d1d-3352-4ab7-bc70-7bc1f02ee485","slug":"imagemagick-sur-debian-pourquoi-convert-im6-et-ou-trouver-magick","title":"ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`","category":"linux","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2025-12-28 15:32","created_at":"2025-12-28 15:32:01","updated_at":"2026-05-12 00:29:00","plain":"Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande historique est là, mais elle s'appelle . Et la commande moderne , présente partout ailleurs, semble manquer à l'appel — sauf si tu es sur Debian 13, où elle est revenue.\r\n\r\nLe sujet est un peu plus subtil qu'il n'y paraît, et beaucoup d'explications qui circulent sur le web sont fausses (notamment celle qui prétend que entrerait en conflit avec un binaire de — c'est un mythe). Voilà ce qui se passe réellement.\r\n\r\nUn peu de contexte sur ImageMagick\r\n\r\nImageMagick, c'est une suite d'outils en ligne de commande pour manipuler des images : conversion de formats, redimensionnement, compression, génération de vignettes, watermarks, lecture de métadonnées… Le genre d'outil qu'on retrouve aussi bien dans un script bash de cinq lignes que dans une chaîne de traitement industrielle ou un pipeline CI.\r\n\r\nHistoriquement, la suite est composée de plusieurs binaires distincts, chacun avec son rôle : pour la conversion, pour lire les métadonnées, pour le traitement par lot, pour combiner des images, pour les planches. C'est l'architecture d'ImageMagick 6, la version qui a régné en maître pendant une bonne quinzaine d'années.\r\n\r\nDepuis 2016, ImageMagick 7 est disponible. Le grand changement, c'est qu'il unifie tout derrière une seule commande : . Les anciennes commandes deviennent des sous-commandes (, , etc.), même si pour la rétrocompatibilité un binaire peut continuer à se comporter comme quand on l'appelle avec une syntaxe d'IM6.\r\n\r\nPourquoi le suffixe sur Debian\r\n\r\nC'est ici que beaucoup d'articles racontent n'importe quoi. La vraie raison n'a rien à voir avec un conflit avec — je l'ai vérifié, aucun paquet système ne fournit de commande . Tu peux le vérifier toi-même : ne renvoie rien qui vienne de util-linux.\r\n\r\nLa vraie raison est plus prosaïque. Pendant des années, Debian a voulu pouvoir packager IM6 et IM7 en parallèle dans la même distribution, pour permettre une transition en douceur. Le souci, c'est que les deux versions fournissent des binaires aux mêmes noms (, , …) avec des comportements légèrement différents. Impossible de les installer côte à côte sans renommer.\r\n\r\nLa solution adoptée par les mainteneurs Debian a été d'ajouter un suffixe explicite au nom de chaque binaire :\r\nles outils d'IM6 deviennent , , etc.\r\nles outils d'IM7 deviennent et compagnie\r\n\r\nLe indique la profondeur quantique du binaire (16 bits par canal, la valeur par défaut), et le / indique la version d'ImageMagick. Les noms classiques (, ) ne sont alors que des symlinks gérés par , qui pointent vers la version active. C'est le même mécanisme que pour , , ou à une époque.\r\n\r\nCe qui change entre Debian 11, 12 et 13\r\n\r\nC'est l'autre point que la plupart des articles ratent : la situation n'est pas la même selon la version de Debian.\r\n\r\nSur Debian 11 (bullseye) et 12 (bookworm), le paquet installe IM6 (version 6.9.11.60). Tu n'as que et ses copains, et n'existe pas dans les dépôts officiels (le paquet existe mais n'est pas le défaut). C'est cette situation que décrivent la plupart des tutoriels qui traînent sur le web.\r\n\r\nSur Debian 13 (trixie), sorti en août 2025, le défaut a basculé sur IM7 (version 7.1.1.43). La commande est disponible, et est désormais un symlink vers . Tu peux le vérifier :\r\n\r\n\r\n\r\nAutrement dit, sur Trixie, si tu écris , tu appelles en réalité IM7 sous un nom d'IM6. Ça fonctionne pour la plupart des usages, mais attention : IM7 est plus strict sur l'ordre des arguments en ligne de commande (), donc certains scripts anciens peuvent grogner.\r\n\r\nCorrespondance entre les deux versions\r\nImageMagick 6 (Debian 11/12) | ImageMagick 7 (Debian 13) |\r\n---------------------------- | ------------------------- |\r\n| |\r\n| |\r\n| |\r\n| |\r\n\r\nPour les cas simples, le comportement est identique. Une commande de redimensionnement classique passe sans modification :\r\n\r\n\r\n\r\nFaut-il s'inquiéter sur un serveur en production ?\r\n\r\nSi tu administres une machine Debian 12 ou plus ancienne, non. IM6 est toujours activement maintenu pour les CVE (les correctifs sont régulièrement backportés dans les paquets stable), et la plupart des scripts existants continueront de fonctionner. Le dans le nom du binaire est juste du marquage, pas une dépréciation.\r\n\r\nSi tu migres vers Debian 13, prévois un peu de temps pour relire tes scripts. Les pièges classiques :\r\nl'ordre des options qui devient plus strict ;\r\nquelques comportements de couleur et d'alpha qui ont changé entre les deux versions, notamment sur les opérations chaînées ;\r\nle fichier qui a déménagé : devient . Si tu avais assoupli les restrictions sur les PDF ou PostScript (un grand classique), il faut reporter la modification.\r\n\r\nPour un projet PHP comme les tiens, l'extension Imagick côté PHP est sensible à cette transition : la version compilée doit correspondre à la version d'IM installée, sinon échoue. Sur Trixie, c'est IM7 qu'il faut lier.\r\n\r\nEn pratique\r\n\r\nSur Debian 11/12, utilise , , etc. C'est la convention locale, pas une version dégradée. Si tu veux malgré tout, tu peux installer le paquet (présent dans les dépôts depuis bookworm) et basculer les alternatives manuellement, mais ce n'est presque jamais nécessaire.\r\n\r\nSur Debian 13, utilise directement. La commande reste disponible par compatibilité, mais elle pointe en réalité vers IM7 — autant utiliser le nom officiel.\r\n\r\nEt dans tous les cas, évite les alias globaux qui réécrivent : ça finit toujours par mordre quelqu'un, soit toi dans six mois, soit le prochain qui reprendra le serveur."},"score":0.75,"snippet":"…e (), donc certains scripts anciens peuvent grogner.\r\n\r\nCorrespondance entre les deux versions\r\nImageMagick 6 (Debian 11/12) | ImageMagick 7 (Debian 13) |\r\n---------------------------- | ------------------------- |\r\n| …","tier":2},{"article":{"uuid":"11186836-bbac-4054-82db-a3bfed14a274","slug":"imagemagick-traiter-des-images-en-ligne-de-commande","title":"ImageMagick : traiter des images en ligne de commande","category":"linux","author":"cedric@abonnel.fr","cover":"cover.png","published":true,"published_at":"2025-12-28 14:56","created_at":"2025-12-28 14:56:14","updated_at":"2026-05-12 00:36:01","plain":"1. À quoi ça sert\r\n\r\nImageMagick, c'est l'outil qu'on sort quand on veut manipuler des images sans ouvrir un logiciel graphique. Pas de Photoshop, pas de GIMP, pas de clic-droit \"Redimensionner\" sur cent fichiers à la suite : juste une commande dans un terminal, et le travail est fait.\r\n\r\nC'est une suite d'outils qui sait lire, écrire et transformer plus de 200 formats — du JPEG classique au PDF en passant par le HEIC des iPhones, le WebP de Google ou le bon vieux TIFF des scanners. L'absence d'interface graphique est ici une fonctionnalité, pas un défaut : elle permet de l'utiliser partout où il n'y a pas d'écran, et surtout dans tout ce qui doit tourner tout seul.\r\n\r\nOn le retrouve donc naturellement :\r\nsur des serveurs web qui génèrent des miniatures à la volée,\r\ndans des scripts qui traitent des dossiers entiers d'un coup,\r\ndans des pipelines CI/CD pour préparer des assets,\r\ndans des conteneurs Docker, accessibles uniquement en SSH.\r\n\r\nDepuis la version 7, tout passe par une commande unique : . Les anciennes commandes (, , ...) existent toujours pour la compatibilité, mais elles ne sont plus la norme.\r\n\r\n2. Installation\r\n\r\nSur Debian ou Ubuntu :\r\n\r\n\r\n\r\nOn vérifie ensuite que tout est en place :\r\n\r\n\r\n\r\nLa sortie indique aussi les délégués compilés (libwebp, libheif, libraw, etc.). Si un format précis vous intéresse, c'est ici qu'il faut regarder : ImageMagick ne sait lire un format que si la bibliothèque correspondante est présente au moment de la compilation.\r\n\r\n3. Comment ImageMagick raisonne\r\n\r\nToutes les commandes suivent la même logique :\r\n\r\n\r\n\r\nL'image est chargée en mémoire, puis chaque option s'applique dans l'ordre où elle est écrite, comme une chaîne de traitement. Ce point est important : déplacer une option dans la ligne peut changer le résultat final.\r\n\r\nExemple :\r\n\r\n\r\n\r\nIci, l'image est lue, redimensionnée à 800×600, puis compressée à 85% de qualité, puis écrite sur le disque. Si on inversait et , le résultat serait identique dans ce cas précis, mais avec des opérations qui modifient les pixels (flou, conversion d'espace colorimétrique, recadrage), l'ordre devient critique.\r\n\r\n4. Convertir d'un format à un autre\r\n\r\nLe cas le plus simple : changer l'extension du fichier de sortie suffit.\r\n\r\n\r\n\r\nImageMagick détecte le format cible à partir de l'extension et fait la conversion. C'est aussi simple que ça pour 90% des cas.\r\n\r\nQuand on veut être plus précis — par exemple forcer une profondeur de couleur particulière — on l'indique explicitement :\r\n\r\n\r\n\r\nUtile quand on récupère des images en 16 bits par canal qu'on veut ramener à du 8 bits standard, soit pour gagner de la place, soit pour garantir la compatibilité avec un logiciel récalcitrant.\r\n\r\n5. Redimensionner\r\n\r\nLa méthode brutale\r\n\r\n\r\n\r\nCette commande redimensionne à 800×600 en respectant les proportions par défaut, contrairement à ce qu'on pourrait croire. Si l'image source est en 4:3, elle rentrera pile dedans ; si elle est en 16:9, ImageMagick choisira la dimension la plus contraignante et l'autre sera plus petite que demandé.\r\n\r\nPour forcer exactement ces dimensions quitte à déformer l'image, il faut ajouter un point d'exclamation :\r\n\r\n\r\n\r\nNe rétrécir que les grandes images\r\n\r\nC'est probablement le cas le plus utile au quotidien : on a un dossier d'images, on veut s'assurer qu'aucune ne dépasse 1600 pixels, mais on ne veut pas agrandir les petites (ce qui dégraderait leur qualité).\r\n\r\n\r\n\r\nLe signifie « uniquement si l'image est plus grande ». Les guillemets sont nécessaires car est interprété par le shell comme une redirection. On peut aussi échapper le caractère avec .\r\n\r\nEn pourcentage\r\n\r\n\r\n\r\nPratique quand on veut diviser la taille par deux sans calculer les dimensions exactes.\r\n\r\n6. Qualité et poids du fichier\r\n\r\nPour les JPEG, le paramètre règle le compromis entre fidélité visuelle et poids du fichier :\r\n\r\n\r\n\r\nQuelques repères en pratique :\r\n100 : qualité maximale, fichier énorme, différence imperceptible avec 95.\r\n85 : la valeur par défaut de la plupart des appareils photo, et un excellent compromis pour le web.\r\n75 : encore très acceptable, gain de place notable.\r\nEn dessous de 70 : les artefacts deviennent visibles, surtout sur les aplats de couleur.\r\n\r\nSupprimer les métadonnées\r\n\r\nLes fichiers issus d'appareils photo ou de smartphones embarquent beaucoup d'informations : modèle de l'appareil, date, parfois coordonnées GPS, miniature intégrée, profil colorimétrique... Tout ça peut peser plusieurs dizaines de kilo-octets, et surtout poser des problèmes de confidentialité.\r\n\r\n\r\n\r\nL'option fait le ménage. À utiliser systématiquement avant de publier des photos sur le web, et indispensable dès qu'on parle de RGPD ou d'anonymisation. Attention en revanche pour la photographie professionnelle où certaines métadonnées (droits d'auteur, profil ICC) peuvent être nécessaires.\r\n\r\n7. Recadrer et adapter à un cadre\r\n\r\nRecadrage classique\r\n\r\n\r\n\r\nLa syntaxe se lit comme une fenêtre qu'on découpe dans l'image : largeur × hauteur, décalée de 100 pixels depuis la gauche et 50 pixels depuis le haut.\r\n\r\nRemplir un cadre exact, sans déformation\r\n\r\nC'est le besoin typique des miniatures de site : on veut toutes les vignettes en 800×600 pile, peu importe le format des photos d'origine.\r\n\r\n\r\n\r\nTrois étapes enchaînées :\r\n\r\n1. redimensionne pour que l'image remplisse le cadre (le inverse la logique habituelle : on prend la plus grande dimension comme contrainte, pas la plus petite).\r\n2. indique qu'on veut centrer le découpage.\r\n3. coupe ce qui dépasse pour obtenir exactement la taille voulue.\r\n\r\nLe résultat : aucune déformation, aucune bande noire, juste un éventuel rognage sur les bords les plus longs.\r\n\r\n8. Traiter un dossier entier\r\n\r\nUne boucle Bash suffit pour convertir tous les PNG d'un dossier en JPEG :\r\n\r\n\r\n\r\nLa syntaxe retire l'extension du nom, on y ajoute . Simple et fiable.\r\n\r\nPour modifier les fichiers sur place, ImageMagick fournit :\r\n\r\n\r\n\r\nCette commande écrase chaque fichier par sa version redimensionnée. C'est rapide et pratique, mais ça veut aussi dire qu'il n'y a pas de retour en arrière : si la commande est mal écrite, le dossier original est perdu. Règle absolue : travailler sur une copie, ou s'assurer d'avoir une sauvegarde.\r\n\r\n9. Texte et filigranes\r\n\r\nApposer une mention textuelle\r\n\r\n\r\n\r\n ancre le texte dans un coin de l'image (les neuf positions classiques : , , , , ...), et ajoute un décalage par rapport à ce point d'ancrage. Ici, éloigne le texte de 10 pixels du coin inférieur droit.\r\n\r\nSuperposer un logo ou un watermark image\r\n\r\n\r\n\r\nL'image principale est lue en premier, le filigrane en second, puis les fusionne. Si le watermark a un canal alpha (transparence), il est respecté.\r\n\r\n10. Couleurs et tons\r\n\r\nPassage en noir et blanc :\r\n\r\n\r\n\r\nRéglage de la luminosité et du contraste (valeurs en pourcentage, positives ou négatives) :\r\n\r\n\r\n\r\nIci, +10% de luminosité et +5% de contraste. Pour assombrir, on utilise des valeurs négatives : .\r\n\r\n11. Inspecter une image\r\n\r\nPour obtenir les informations essentielles — format, dimensions, profondeur :\r\n\r\n\r\n\r\nPour tout savoir, y compris les métadonnées EXIF, le profil colorimétrique, l'histogramme :\r\n\r\n\r\n\r\nLa sortie verbeuse peut faire plusieurs pages, mais c'est inestimable pour diagnostiquer un problème ou comprendre d'où vient un fichier.\r\n\r\n12. Formats modernes\r\n\r\nLe WebP de Google offre une compression nettement meilleure que le JPEG à qualité équivalente, et il est aujourd'hui supporté par tous les navigateurs courants :\r\n\r\n\r\n\r\nL'AVIF va encore plus loin en termes de compression, au prix d'un encodage plus lent :\r\n\r\n\r\n\r\nSi la commande échoue avec une erreur de délégué, c'est que votre installation d'ImageMagick a été compilée sans le support AVIF — il faudra installer ou recompiler.\r\n\r\n13. Quelques règles à se fixer\r\nToujours travailler sur une copie quand on découvre une nouvelle commande. en particulier ne pardonne pas.\r\nStripper les métadonnées avant toute publication web.\r\nPour de très gros volumes (plusieurs milliers d'images, ou des images très lourdes), regarder du côté de : c'est plus rapide et beaucoup moins gourmand en mémoire qu'ImageMagick. Pour tout le reste, ImageMagick est largement suffisant.\r\nAutomatiser dès qu'on répète : si la même commande revient deux fois, elle mérite un script.\r\nLire les messages d'erreur : ImageMagick est verbeux, et la plupart des problèmes (délégué manquant, permissions, format non reconnu) sont explicitement nommés dans la sortie.\r\n\r\n14. Là où on le croise vraiment\r\n\r\nEn pratique, ImageMagick finit presque toujours dans les mêmes situations :\r\npréparation d'images pour un site web (redimensionnement + compression + strip),\r\ngénération de miniatures à la volée côté serveur,\r\nnormalisation d'un catalogue photo hétérogène (formats, tailles, profils),\r\nconversion massive d'archives anciennes vers des formats modernes,\r\nnettoyage des métadonnées avant diffusion publique.\r\n--\r\n\r\nImageMagick fait partie de ces outils qu'on apprivoise lentement mais qu'on garde longtemps. Au début, on copie des commandes trouvées en ligne sans tout comprendre. Puis on commence à reconnaître les options, à les combiner, à écrire ses propres scripts. Et un jour, on se rend compte qu'on a remplacé un logiciel entier par trois lignes de Bash — et qu'on n'a jamais été aussi efficace pour traiter des images."},"score":0.75,"snippet":"…ageMagick ne sait lire un format que si la bibliothèque correspondante est présente au moment de la compilation.\r\n\r\n3. Comment ImageMagick raisonne\r\n\r\nToutes les commandes suivent la même logique :\r\n\r\n\r\n\r\nL'image est cha…","tier":2},{"article":{"uuid":"70b5f213-db76-4072-afb6-f876fe67aaf8","slug":"non-le-compteur-linky-ne-reconnait-pas-les-voitures-electriques","title":"Non, le compteur Linky n'est pas conçu pour repérer votre voiture électrique","category":"actualité","author":"cedric@abonnel.fr","cover":"cover.jpg","published":true,"published_at":"2025-12-06 06:36","created_at":"2025-12-06 06:36:25","updated_at":"2026-05-12 01:32:46","plain":"Démêlons le vrai du faux sur une affirmation qui revient régulièrement dans les débats autour de la fiscalité des véhicules à batterie.\r\n\r\nDepuis plusieurs mois, à mesure que s'intensifient les discussions sur une éventuelle taxe kilométrique visant les voitures électriques, une affirmation refait surface avec insistance sur les réseaux sociaux et dans certains articles : « Le compteur Linky a été conçu pour reconnaître la connexion d'une voiture à batterie. » La formule est efficace, presque inquiétante, et elle nourrit l'idée d'un État qui aurait anticipé depuis longtemps la surveillance des automobilistes électriques via leur compteur domestique.\r\n\r\nLe problème, c'est que cette affirmation est tout simplement fausse. Ou plus exactement : elle confond grossièrement ce que Linky mesure réellement et ce qu'on lui prête comme capacités. Pour comprendre pourquoi, il faut revenir aux fondamentaux de ce qu'est un compteur électrique, même \"intelligent\".\r\n\r\nCe que Linky mesure réellement\r\n\r\nUn compteur Linky, c'est avant tout un instrument de mesure. Il enregistre la consommation électrique globale du logement, en temps quasi réel, avec une précision bien supérieure à celle des anciens compteurs électromécaniques. Concrètement, il relève la puissance instantanée appelée par l'ensemble de l'installation, l'intensité du courant qui circule sur les phases, ainsi que quelques paramètres plus techniques comme les harmoniques — des perturbations du signal qui renseignent sur la qualité du courant.\r\n\r\nTout cela est agrégé. Linky voit un total, pas une ventilation appareil par appareil. Quand votre four à 3 kW se met en route, le compteur enregistre une montée de 3 kW. Quand une wallbox commence à charger une voiture à 3,7 kW, il enregistre une montée de 3,7 kW. Du point de vue de Linky, ces deux événements sont parfaitement indiscernables. Il n'a aucun moyen de savoir si l'électricité part vers une plaque de cuisson, un chauffe-eau, un radiateur ou une Tesla branchée au garage.\r\n\r\nC'est une limitation fondamentale, pas un oubli de conception : un compteur de tableau électrique se situe en amont de tout, sur l'arrivée générale. Il voit ce qui entre dans la maison, point final.\r\n\r\nCe que Linky ne sait pas faire — et ne saura jamais faire en l'état\r\n\r\nContrairement à ce que certains articles laissent entendre, Linky n'a aucune capacité à identifier la nature des appareils qui se branchent. Il ne reconnaît pas une voiture électrique, ne lit pas les protocoles de communication entre une borne et un véhicule (Type 2, CCS, CHAdeMO), ne dialogue ni avec le chargeur embarqué ni avec le BMS — le système de gestion de batterie qui pilote la charge côté voiture. Aucune de ces fonctions ne figure dans ses spécifications techniques, qui sont publiques et consultables.\r\n\r\nLinky n'est ni une prise connectée capable de profiler ce qui s'y branche, ni un analyseur de charge avancé, ni un dispositif de reconnaissance d'appareils par signature. C'est un compteur de facturation, conçu pour relever votre consommation à distance et permettre à votre fournisseur d'affiner les offres tarifaires (heures creuses dynamiques, par exemple). Tout le reste relève du fantasme ou de la confusion.\r\n\r\nD'où vient cette idée alors ?\r\n\r\nLa rumeur n'est pas née de nulle part. Elle s'enracine dans deux éléments réels, mais largement mal interprétés.\r\n\r\nLe premier, c'est l'existence de la TIC, la « télé-information client ». Il s'agit d'une interface physique présente sur le compteur Linky, qui diffuse en continu certaines données : puissance souscrite, puissance instantanée appelée, index de consommation, période tarifaire en cours. Cette interface est sortante : elle envoie des informations vers l'extérieur, vers des appareils domestiques compatibles, mais elle ne reçoit rien en retour.\r\n\r\nCertaines wallbox modernes sont capables de se brancher sur cette TIC pour lire en direct la puissance déjà consommée dans le logement. Elles ajustent alors automatiquement la puissance de charge de la voiture pour ne pas faire disjoncter l'installation : si quelqu'un allume le four pendant que la voiture charge, la borne réduit son appel de courant. C'est une fonction très utile, mais elle fonctionne dans un seul sens. La wallbox lit Linky. Linky ne lit pas la wallbox, et encore moins la voiture. Beaucoup de gens, en entendant parler de wallbox \"communiquant avec Linky\", imaginent un dialogue bidirectionnel qui n'existe pas.\r\n\r\nLe second élément, c'est l'arrivée du débat sur une taxe kilométrique. Avec la baisse des recettes de TICPE liée à l'électrification du parc automobile, plusieurs think tanks et rapports parlementaires ont effectivement évoqué l'idée de taxer les kilomètres parcourus en VE, et certains ont mentionné Linky parmi les outils techniques envisageables. De cette spéculation prospective, une partie du public a tiré la conclusion que le compteur était déjà équipé pour le faire. Or il y a un gouffre entre « on pourrait peut-être un jour utiliser Linky comme brique d'un dispositif fiscal » et « Linky a été conçu pour ça ». Le premier est une hypothèse politique discutable ; le second est un raccourci qui ne correspond à aucune réalité technique.\r\n\r\nEt techniquement, ce serait possible un jour ?\r\n\r\nC'est la question intéressante, et la réponse mérite plus de nuance qu'un simple oui ou non.\r\n\r\nIl existe effectivement un champ de recherche actif, baptisé NILM pour Non-Intrusive Load Monitoring. L'idée : analyser la courbe de consommation globale d'un logement pour en déduire, par traitement du signal et apprentissage automatique, quels appareils s'y trouvent et quand ils fonctionnent. Chaque appareil aurait, en théorie, une \"signature électrique\" reconnaissable — un profil d'appel de courant au démarrage, un comportement en régime, etc.\r\n\r\nEn pratique, l'exercice est très difficile, et il l'est particulièrement pour la recharge d'un véhicule électrique. Une borne en charge se comporte comme une charge quasi constante de plusieurs kilowatts pendant plusieurs heures. C'est une signature… qui ressemble énormément à celle d'un chauffe-eau, d'un convecteur, d'un sèche-linge en cycle long ou d'un radiateur à inertie. Sans cadence de fonctionnement caractéristique, sans pics distinctifs, sans cycles courts, il n'y a rien de très spécifique à exploiter. Identifier de manière fiable qu'on a affaire à une voiture et pas à un autre appareil de puissance similaire reste un problème ouvert dans la littérature scientifique.\r\n\r\nMais surtout, et c'est le point essentiel : Linky n'embarque aucun de ces algorithmes. Il transmet des données de comptage agrégées à Enedis, qui les utilise pour la facturation et la gestion du réseau. Enedis n'a ni la mission, ni le droit légal, ni l'infrastructure pour analyser appareil par appareil les usages domestiques de ses clients. Le cadre réglementaire français, notamment via la CNIL, encadre strictement ce qui peut être fait des données de consommation, et toute exploitation plus fine — même la courbe de charge à pas fin — nécessite le consentement explicite de l'abonné.\r\n\r\nCe qu'il faut retenir\r\n\r\nLe compteur Linky mesure votre consommation globale, c'est vrai. Il permet à certaines bornes de recharge de moduler intelligemment leur puissance via la TIC, c'est vrai aussi. Mais il ne reconnaît pas, n'identifie pas et ne distingue pas une voiture électrique des autres appareils du logement. Cette capacité n'existe ni dans son matériel, ni dans son logiciel, ni dans les données qu'il transmet à Enedis.\r\n\r\nL'affirmation selon laquelle « Linky a été conçu pour reconnaître la connexion d'une voiture à batterie » mélange donc trois choses très différentes : des capacités réelles mais limitées (mesure de puissance, interface TIC sortante), des usages techniques existants côté wallbox, et des hypothèses politiques sur de futurs dispositifs fiscaux. De cette confusion naît une rumeur frappante, mais infondée.\r\n\r\nLe débat sur la fiscalité des véhicules électriques est légitime et important. Il mérite mieux que des affirmations qui n'ont pas de base technique."},"score":0.75,"snippet":"…olitique discutable ; le second est un raccourci qui ne correspond à aucune réalité technique.\r\n\r\nEt techniquement, ce serait possible un jour ?\r\n\r\nC'est la question intéressante, et la réponse mérite plus de nuance qu'u…","tier":2},{"article":{"uuid":"5a0cced3-40d0-46bf-8501-b533f3c2608e","slug":"reparer-une-instance-uptime-kuma-installee-via-le-script-proxmox","title":"Réparer une instance Uptime Kuma installée via le script Proxmox","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2025-11-26 08:33","created_at":"2025-11-26 08:33:49","updated_at":"2026-05-12 09:16:00","plain":"Méthode basée sur l'installation via le script communautaire :\r\ncommunity-scripts.github.io/ProxmoxVE/scripts?id=uptimekuma\r\n\r\nSi tu utilises Uptime Kuma pour monitorer ton infra, tu finiras tôt ou tard par tomber sur un de ces grands classiques : le service qui refuse de démarrer après une mise à jour, des erreurs SQLite louches dans , ou pire — l'interface qui tourne mais ne remonte plus aucun heartbeat. Dans 90 % des cas, c'est la base SQLite qui a pris cher, souvent à cause d'un arrêt brutal du conteneur LXC ou d'une migration qui s'est mal passée.\r\n\r\nAvant de paniquer et de tout réinstaller, il y a une série d'étapes à dérouler. Je les mets ici dans l'ordre, parce que l'ordre compte : on commence toujours par le moins destructif.\r\n\r\nPourquoi SQLite et pas un vrai SGBD ?\r\n\r\nPetite parenthèse pour les juniors qui se demanderaient. Uptime Kuma embarque SQLite parce que c'est une appli pensée pour être facile à déployer : pas de serveur de base à installer à côté, pas de credentials à gérer, juste un fichier sur le disque. C'est génial pour démarrer, mais ça a un défaut majeur — SQLite n'aime pas du tout être coupé en plein milieu d'une écriture. Si ton LXC tombe pendant que Kuma écrit un heartbeat, tu peux te retrouver avec un fichier corrompu. D'où l'importance de toujours arrêter proprement le service avant de toucher au fichier.\r\n\r\n1. Arrêter le service proprement\r\n\r\n\r\n\r\nC'est la première chose à faire, toujours. Tant que le service tourne, il a un verrou sur et il continue d'y écrire. Tu peux ouvrir le fichier en lecture avec malgré ce verrou, mais dès que tu veux faire un ou un , tu vas soit avoir une erreur , soit — pire — corrompre encore plus la base si tu forces.\r\n\r\nVérifie que c'est bien arrêté avant de continuer :\r\n\r\n\r\n\r\nTu dois voir . Pas , pas , pas avec un process encore en l'air.\r\n\r\n2. Aller dans le dossier de l'app\r\n\r\nLe script communautaire installe Kuma dans :\r\n\r\n\r\n\r\nDans ce dossier, ce qui nous intéresse c'est le sous-dossier . C'est là que vit tout ce qui compte : le fichier (la base), les uploads, et quelques fichiers de config. Le reste (, , etc.) c'est le code de l'application — tu peux le casser, un ou une réinstallation le remettra en place. Mais , si tu le perds, tu perds toute ta config de monitoring.\r\n\r\n3. Sauvegarder avant de toucher à quoi que ce soit\r\n\r\nRègle d'or de l'ops : on ne touche jamais à une base de données sans avoir une copie au chaud. Jamais.\r\n\r\n\r\n\r\nLe te génère un suffixe du genre . Comme ça si tu fais plusieurs interventions dans la même semaine, tu sais laquelle date de quand, et tu ne risques pas d'écraser une sauvegarde par une autre.\r\n\r\nCette copie embarque :\r\nla base elle-même\r\nles fichiers WAL (, ) si SQLite est en mode Write-Ahead Logging — c'est important de les prendre avec, sinon ta sauvegarde est incomplète\r\nles uploads et certificats si tu en as\r\n\r\nSi tu sautes cette étape et que tu te plantes à l'étape 5 ou 6, tu n'auras aucun moyen de revenir en arrière. Sérieusement, fais-le.\r\n\r\n4. Vérifier l'intégrité de la base\r\n\r\n\r\n\r\n, c'est la commande de diagnostic native de SQLite. Elle parcourt toute la base, vérifie que les index pointent bien sur les bonnes lignes, que les pages ne sont pas corrompues, que les contraintes sont respectées. Deux issues possibles :\r\n* : la base est saine sur le plan structurel. Si Kuma ne démarre toujours pas, le problème vient probablement d'une migration coincée (voir étape 5) ou du code de l'app, pas du fichier.\r\nUne liste d'erreurs : il y a de la corruption. Selon ce qui est touché, on passera à l'étape 5 ou 6.\r\n\r\nPour les juniors qui découvrent SQLite : , c'est le mot-clé que SQLite utilise pour les commandes qui ne sont pas du SQL standard — c'est spécifique à SQLite, tu ne le verras pas dans PostgreSQL ou MySQL.\r\n\r\n5. Supprimer un paramètre de migration corrompu\r\n\r\nSur certaines versions de Kuma (notamment autour des montées de version qui touchent à l'agrégation des heartbeats), il y a un bug connu : l'entrée dans la table se retrouve dans un état incohérent, et le service refuse de démarrer parce qu'il pense être au milieu d'une migration qui n'avance plus.\r\n\r\nLa fix :\r\n\r\n\r\n\r\nCe qu'on fait, c'est qu'on dit à Kuma : \"oublie où tu en étais, repars de zéro sur ce point\". Au redémarrage, il va recréer la clé proprement et relancer la migration depuis le début. C'est non destructif pour tes données de monitoring — on ne touche qu'à un drapeau d'état interne.\r\n\r\nSi ce n'est pas ton problème (clé absente ou suppression sans effet), passe à la suite.\r\n\r\n6. Solution radicale : vider la table \r\n\r\nSi la corruption est concentrée sur l'historique de monitoring (et c'est souvent le cas, parce que c'est la table où Kuma écrit le plus souvent — un INSERT toutes les 20-60 secondes par sonde, ça finit par faire du volume), tu peux la vider :\r\n\r\n\r\n\r\nÀ lire attentivement : cette commande supprime tout l'historique des sondes. Tu perds les graphes de uptime, les SLA calculés sur les 30/90/365 derniers jours, tout. En revanche :\r\ntes sondes sont conservées (table )\r\ntes utilisateurs aussi (table )\r\ntes notifications également (table )\r\nta config générale est intacte (table )\r\n\r\nC'est à utiliser uniquement quand :\r\npointe vers des problèmes sur ou ses index\r\nKuma refuse de démarrer et l'étape 5 n'a rien donné\r\nou plus simplement, ta base a tellement grossi que Kuma rame et que tu acceptes de perdre l'historique pour repartir propre\r\n\r\nTant qu'à faire, profites-en pour faire un derrière, qui va vraiment libérer l'espace disque (un seul ne récupère pas la place sur le disque, il marque juste les pages comme libres pour réutilisation) :\r\n\r\n\r\n\r\n7. Redémarrer le service\r\n\r\n\r\n\r\nEt vérifie qu'il a bien démarré :\r\n\r\n\r\n\r\nTu dois voir . Si tu vois ou si le service redémarre en boucle, ne le laisse pas dans cet état — passe directement à l'étape 8 pour comprendre pourquoi.\r\n\r\n8. Lire les logs\r\n\r\n\r\n\r\nLe cible le service, le fait du (équivalent de ) — les nouvelles lignes s'affichent en temps réel. Laisse tourner pendant deux ou trois minutes, le temps que Kuma rejoue ses migrations, recharge ses sondes, et envoie les premiers heartbeats.\r\n\r\nCe qu'il faut chercher dans les logs :\r\nerreurs SQLite : , , — ça veut dire que t'as encore un problème de fichier, voire de permissions\r\nmigrations bloquées : des messages du genre qui ne sont jamais suivis d'un \r\npermissions : , — typiquement après une intervention faite en root sur des fichiers qui doivent appartenir à un autre utilisateur. Vérifie avec que les fichiers sont bien possédés par l'user qui fait tourner le service\r\nmodules Node manquants : — ça arrive après une mise à jour qui s'est mal passée. La fix, c'est généralement de relancer dans \r\nport déjà utilisé : — tu as un autre process qui squatte le port 3001 (ou celui que tu as configuré)\r\n\r\nPour sortir du , c'est .\r\n\r\nEt après ?\r\n\r\nUne fois que Kuma tourne propre, prends cinq minutes pour mettre en place ce qui t'aurait évité d'arriver ici :\r\n\r\n1. Une sauvegarde régulière de . Un simple cron qui fait du dossier vers un autre serveur, ça suffit largement pour un Kuma perso. Pense à arrêter le service avant le tar, ou utilise qui fait un snapshot cohérent sans devoir couper Kuma.\r\n2. Un monitoring du monitoring. Oui, c'est méta. Mais si Kuma tombe, c'est lui qui t'aurait alerté de la chute de tes autres services — donc personne ne te prévient. Un check externe (UptimeRobot gratuit, healthchecks.io, ou un autre Kuma sur une autre machine) qui ping ton instance, c'est cinq minutes à mettre en place.\r\n3. Garder ta sauvegarde au moins une semaine** avant de la supprimer. Au cas où un effet de bord apparaîtrait quelques jours plus tard.\r\n\r\nEt voilà. Avec ces huit étapes, tu couvres 95 % des cas de Kuma cassé. Pour les 5 % restants — typiquement quand le LXC lui-même a un souci de filesystem — c'est une autre histoire, et il faudra sortir l'artillerie côté Proxmox."},"score":0.75,"snippet":"…les pages ne sont pas corrompues, que les contraintes sont respectées. Deux issues possibles :\r\n* : la base est saine sur le plan structurel. Si Kuma ne démarre toujours pas, le problème vient probablement d'une migratio…","tier":2},{"article":{"uuid":"9f794c3d-714b-4b6d-8a5e-d56f7d984cc1","slug":"circuit-de-demodulation-ask","title":"Démodulation ASK","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-23 08:38:53","created_at":"2025-11-23 08:38:53","updated_at":"2025-11-23 08:38:53","plain":"Les compteurs électroniques Linky fournis par Enedis (anciennement EDF/ERDF) transmettent automatiquement leurs informations via une liaison Téléinformation (TIC). Cette liaison fonctionne comme une communication série, mais le signal brut n’est pas directement exploitable en TTL ou RS232 : il nécessite un conditionnement électrique pour être compatible avec un microcontrôleur ou un ordinateur. Une fois ce traitement effectué, il est possible de récupérer les données suivantes :\nla consommation instantanée,\nles index d’énergie (kWh),\nl’intensité utilisée,\nla puissance maximale autorisée,\net d’autres informations selon les modes du compteur.\n-- La transmission s’effectue via une modulation ASK (Amplitude Shift Keying) à 50 kHz :\n0 V → bit logique 1,\n10 V crête à 50 kHz → bit logique 0. Ainsi, le compteur encode les bits en faisant varier l’amplitude du signal. Pour être lisible par un microcontrôleur, ce signal doit être démodulé puis converti en signal logique TTL.\n-- L’accès à cette liaison se fait via les bornes I1 et A du compteur :\nSans charge connectée : tension jusqu’à 13 V RMS max.\nAvec récepteur : tension régulée autour de 6 V RMS ±10% à 50 kHz, soit environ 12 V pic, puissance minimale 130 mW. Cette alimentation est suffisante pour alimenter un optocoupleur.\n-- La sortie Téléinfo doit être protégée contre les court-circuits et l’interface doit pouvoir résister accidentellement à la tension secteur (230 V / 50 Hz) en cas de mauvais branchement. Enedis impose également que la charge maximale sur les bornes I1–A n’excède pas 2 kΩ en parallèle, pour que le compteur puisse délivrer correctement son signal.\n-- Pour réaliser mon interface Téléinfo vers Raspberry Pi, je me suis appuyé sur le schéma de Charles Hallard :\nOptocoupleur : isolation galvanique et conversion du signal modulé en TTL.\nRésistances adaptées : pour respecter la charge maximale Téléinfo et assurer un signal correct. Le matériel utilisé :\nPlaque pré-percée\n2 résistances\nOptocoupleur (SFH620 ou équivalent)\nBornier pour raccordement au compteur\nCâbles pour Raspberry Pi\nCâble réseau pour bornes TIC Ce montage fonctionnait bien avec un Raspberry Pi 2. Mais plus avec un ESP8266.\n-- Pourquoi ajouter un MOSFET dans l’interface Téléinfo ?\nHallard explique que l’opto-coupleur seul peut fournir un signal instable, peu compatible avec certains microcontrôleurs (ESP32, ESP8266, Raspberry Pi). (hallard.me) Le MOSFET N (ex. BS170) permet de :\nTampon logique : transforme le signal opto en un signal carré propre, avec des niveaux 0 V / Vcc conformes aux GPIO.\nCorrection de polarité : inverse le signal si nécessaire pour correspondre au protocole Téléinfo.\nFiabilité : front net et signal stable, même à 9600 bauds.\nRespect de la charge Téléinfo : limite la charge vue par le compteur tout en délivrant un signal TTL fiable.\n-- Décoder l’ASK =\nGrâce à l’interface (opto + MOSFET), la démodulation ASK est déjà assurée. Le flux Téléinfo est désormais disponible en signal TTL stable. Il suffit ensuite de lire ce flux série pour décoder les trames Téléinfo au format ASCII. Matériel conseillé :\nRaspberry Pi : analyser, stocker, ou intégrer les données dans un système domotique via Python ou Node-RED.\n Voir : \nESP32 / ESP8266 : lecture compacte et connectée, envoi vers serveur, MQTT, ou interface web.\n Voir : Ces équipements lisent le signal TTL, décodent les trames normalisées et rendent disponibles des informations comme : consommation instantanée, index, puissance souscrite, et états du compteur."},"score":0.75,"snippet":"…rsion du signal modulé en TTL.\nRésistances adaptées : pour respecter la charge maximale Téléinfo et assurer un signal correct. Le matériel utilisé :\nPlaque pré-percée\n2 résistances\nOptocoupleur (SFH620 ou équivalent)\nBor…","tier":2},{"article":{"uuid":"334bb56a-6ea0-4cbd-8cff-13af768a2b8e","slug":"teleinformation-compteur-electricite","title":"Télé-information client des compteurs d'électricité","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-19 07:03:16","created_at":"2025-11-19 07:03:16","updated_at":"2025-11-19 07:03:16","plain":"[Compteur électronique SAGEM S10-C4] Dans ce projet, je m'appuie sur un Rasbperry Pi pour réaliser un auto relevé. Il s'agit de retrouver un projet autour d'un Raspberry Pi pour récupérer de manière régulière et automatique les informations d'un compteur électronique d'électricité de votre distributeur d'électricité (alterna, direct energie, happ'e, proxelia, lampiris, engie, planete oui, edf, énergem, enercoop ...). On pourra relever l'intensité et la puissance instantanées, les index et quelques autres informations. Les compteurs électroniques, comme les SAGEM S10C1 S10C2 S10C3 et S10C4, possèdent une interface de communication. La réduction en volume et l'augmentation de la puissance de la micro informatique permettent de s'amuser avec ce port de communication, et faire un projet de domotique bien sympathique. Je vous invite avec une série d'articles à découvrir mes découvertes et tests. Table des matières\nIntroduction\nLe compteur électrique\n1. \n1. \n1. \nLe démodulateur\n1. \nLe Raspberry Pi\n1. \n1. \n1. \nL'ESP32\n1. \nLe protocole MQTT\n1. \nEnvoie des fichiers CSV à un service Web\n1. \n1."},"score":0.75,"snippet":"…1. \n1. \nLe démodulateur\n1. \nLe Raspberry Pi\n1. \n1. \n1. \nL'ESP32\n1. \nLe protocole MQTT\n1. \nEnvoie des fichiers CSV à un service Web\n1. \n1.","tier":2},{"article":{"uuid":"cfe738e9-7ac2-4c7e-9205-dab4957835c6","slug":"preparation-du-raspberry-pi","title":"Décoder les infos de la TIC et les communiquer","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-19 06:48","created_at":"2025-11-19 06:48:01","updated_at":"2026-05-12 17:38:19","plain":"Choix du Raspberry Pi\r\n\r\nL'objectif est de récupérer automatiquement et à intervalles réguliers les informations émises par un compteur Linky, puis de les rendre accessibles depuis l'extérieur du Raspberry Pi.\r\n\r\nTrois prérequis matériels s'imposent donc :\r\nune connexion réseau, pour exposer ou transmettre les données collectées ;\r\nun espace de stockage, suffisant pour l'OS, les outils et l'historique des relevés ;\r\nune liaison série, pour dialoguer avec la sortie TIC du compteur.\r\n\r\nLe choix s'est porté sur un Raspberry Pi 3, qui couvre ces trois besoins sans surcoût ni complexité supplémentaire. Le stockage est assuré par une carte SD, la liaison série est exposée sur le port GPIO, et la connectivité réseau bénéficie d'un atout pratique : l'armoire de brassage de la maison se trouve à quelques mètres du compteur électrique, ce qui permet d'envisager un raccordement filaire fiable plutôt qu'un lien sans fil.\r\n\r\nCôté logiciel, le système retenu est Raspberry Pi OS (anciennement Raspbian), recommandé par défaut sur cette plateforme. Cette distribution dérivée de Debian apporte tout l'écosystème GNU/Linux nécessaire : pile réseau TCP/IP, accès distant par SSH, synchronisation horaire NTP, gestion de bases de données, serveur web, interpréteurs PHP et Python. Autant de briques qui serviront aux étapes ultérieures du projet.\r\n\r\nCâblage\r\n\r\nLe compteur Linky émet la trame TIC sous forme d'un signal modulé en ASK (Amplitude Shift Keying). Ce signal n'est pas directement exploitable par l'UART du Raspberry Pi, qui attend un niveau logique TTL stable.\r\n\r\nUn démodulateur ASK est donc intercalé entre le compteur et le Raspberry Pi. Son rôle est de récupérer la porteuse modulée et de restituer en sortie un signal binaire TTL propre, directement lisible par le port série.\r\n\r\nLa chaîne complète est la suivante :\r\n\r\n\r\n\r\nLe câblage côté Raspberry Pi se résume à trois fils :\r\nBroche | Signal | Rôle |\r\n---|---|---|\r\nPin 1 | 3V3 | Alimentation du démodulateur |\r\nPin 6 | GND | Masse commune |\r\nPin 10 | RX (GPIO15) | Lecture de la sortie TTL du démodulateur |\r\n\r\nSchéma de câblage\r\n\r\n\r\n\r\nInstallation de l'OS\r\n\r\nLe déploiement de Raspberry Pi OS sur la carte SD suit la procédure standard décrite dans l'article [à compléter]. Un point d'attention : activer le service SSH dès la préparation de l'image, faute de quoi aucun accès distant ne sera possible au premier démarrage.\r\n\r\nUne fois le Raspberry Pi mis sous tension et raccordé au réseau, son adresse IP n'est pas connue à l'avance. Un balayage du réseau local avec permet de l'identifier :\r\nNote : la cible passée à est l'adresse du réseau (), pas celle de la passerelle. Le indique le masque de sous-réseau et délimite la plage scannée.\r\n\r\nUne fois l'adresse repérée, la connexion s'établit avec le compte et le mot de passe par défaut :\r\nPremier réflexe sécurité : changer immédiatement le mot de passe du compte avec , voire désactiver ce compte au profit d'un utilisateur dédié. Les identifiants par défaut sont connus de tous les scans automatisés."},"score":0.75,"snippet":"…u, pour exposer ou transmettre les données collectées ;\r\nun espace de stockage, suffisant pour l'OS, les outils et l'historique des relevés ;\r\nune liaison série, pour dialoguer avec la sortie TIC du compteur.\r\n\r\nLe choix…","tier":2},{"article":{"uuid":"72d50c35-9863-400b-8c5d-470c74bf2bd6","slug":"dimensionnement-des-cables-electriques-cuivre-230-v-monophase","title":"Dimensionnement des câbles électriques (cuivre, 230 V monophasé)","category":"travaux","author":"cedric@abonnel.fr","cover":"cover.jpg","published":true,"published_at":"2025-11-09 21:48","created_at":"2025-11-09 21:48:35","updated_at":"2026-05-12 17:00:04","plain":"Dimensionnement des câbles électriques (cuivre, 230 V monophasé)\r\n\r\nCe document présente deux approches complémentaires pour choisir la section d'un câble électrique :\r\n\r\n1. selon le courant admissible (échauffement du conducteur) ;\r\n2. selon la chute de tension (qui dépend également de la longueur).\r\n\r\nLes valeurs ci-dessous sont indicatives, données pour des câbles en cuivre, en pose domestique (encastrée ou en air libre), dans des conditions normales. Elles peuvent varier en fonction du mode de pose, du regroupement des conducteurs et de la température ambiante.\r\n⚠️ Pour toute installation électrique fixe, se référer à la norme NF C 15-100 et, au besoin, faire valider le dimensionnement par un professionnel.\r\n--\r\n\r\n1. Section / intensité / puissance (critère d'échauffement)\r\nSection (mm²) | Intensité max (A) | Puissance max à 230 V (W) | Usage typique |\r\n------------- | ----------------- | ------------------------- | ----------------------------------------------------------- |\r\n0,22 | 2 | 460 | Signaux, petits appareils électroniques |\r\n0,5 | 3 – 4 | 690 – 920 | Câbles souples, lampes, alimentation basse puissance |\r\n0,75 | 6 | 1 380 | Lampes, rallonges légères |\r\n1 | 10 | 2 300 | Éclairage, petits appareils |\r\n1,5 | 16 | 3 680 | Circuits prises ou éclairage |\r\n2,5 | 20 – 25 | 4 600 – 5 750 | Prises de courant, électroménager |\r\n4 | 32 | 7 360 | Plaques de cuisson, climatisation |\r\n6 | 40 | 9 200 | Chauffe-eau, four, cuisinière |\r\n10 | 63 | 14 490 | Tableau divisionnaire, pompe à chaleur |\r\n16 | 80 | 18 400 | Alimentation principale, borne de recharge VE |\r\n25 | 100 | 23 000 | Alimentation générale forte puissance |\r\n35 | 125 | 28 750 | Installation industrielle |\r\n--\r\n\r\n2. Section / intensité / longueur (critère de chute de tension)\r\n\r\nLe critère précédent ne suffit pas : sur une longue distance, un câble correctement dimensionné en courant peut tout de même engendrer une chute de tension excessive, ce qui dégrade le fonctionnement des récepteurs et augmente les pertes.\r\n\r\nLe tableau suivant indique la longueur maximale (aller simple) pour rester sous une chute de tension de 3 %, soit environ 6,9 V sur un réseau 230 V. Cette limite correspond à la recommandation de la NF C 15-100 pour la majorité des circuits domestiques.\r\nSection (mm²) | Intensité (A) | Longueur max pour ΔU ≤ 3 % (m) | Puissance max à 230 V (W) | Usage typique |\r\n------------- | ------------- | ------------------------------ | ------------------------- | ------------------------------ |\r\n0,75 | 6 | 14 | 1 380 | Lampes, rallonges légères |\r\n1 | 10 | 16 | 2 300 | Éclairage, petits appareils |\r\n1,5 | 16 | 19 | 3 680 | Circuits prises, éclairage |\r\n2,5 | 20 | 26 | 4 600 | Prises, électroménager |\r\n4 | 25 | 33 | 5 750 | Plaques, climatisation |\r\n6 | 32 | 39 | 7 360 | Chauffe-eau, four |\r\n10 | 40 | 52 | 9 200 | Tableau divisionnaire |\r\n16 | 63 | 58 | 14 490 | Borne de recharge VE |\r\n25 | 80 | 70 | 18 400 | Alimentation principale |\r\n35 | 100 | 80 | 23 000 | Installation industrielle |\r\n50 | 125 | 90 | 28 750 | Gros équipements |\r\n--\r\n\r\n3. Formule de calcul de la chute de tension\r\n\r\nEn monophasé, la chute de tension en volts est donnée par :\r\n\r\n$$\r\n\\Delta U = \\frac{2 \\times \\rho \\times L \\times I}{S}\r\n$$\r\n\r\navec :\r\n$\\rho$ = 0,0175 Ω·mm²/m (résistivité du cuivre à 20 °C) ;\r\n$L$ = longueur du câble (aller simple, en mètres) ;\r\n$I$ = intensité parcourant le câble (en ampères) ;\r\n$S$ = section du conducteur (en mm²).\r\n\r\nLe facteur 2 prend en compte le trajet aller-retour du courant (phase + neutre).\r\n\r\nPour obtenir la chute de tension en pourcentage, il suffit de diviser $\\Delta U$ par la tension nominale (230 V) :\r\n\r\n$$\r\n\\Delta U \\, (\\%) = \\frac{\\Delta U}{230} \\times 100\r\n$$\r\n\r\nExemple\r\n\r\nPour un câble de 2,5 mm², parcouru par 16 A, sur 25 m :\r\n\r\n$$\r\n\\Delta U = \\frac{2 \\times 0{,}0175 \\times 25 \\times 16}{2{,}5} = 5{,}6 \\text{ V}\r\n$$\r\n\r\nsoit environ 2,4 % — la longueur reste donc admissible.\r\n--\r\n\r\n4. Synthèse pratique\r\n\r\nPour dimensionner correctement un câble, il convient de :\r\n\r\n1. choisir une section qui supporte le courant maximal (tableau §1) ;\r\n2. vérifier que la longueur n'entraîne pas une chute de tension supérieure à 3 % (tableau §2 ou formule §3) ;\r\n3. retenir la section la plus grande issue de ces deux critères ;\r\n4. tenir compte du mode de pose, du regroupement des câbles et de la température ambiante, qui peuvent imposer un déclassement.\r\n\r\nEn cas de doute, mieux vaut surdimensionner légèrement la section : le surcoût est modeste et les bénéfices (pertes réduites, échauffement plus faible, marge pour évolutions futures) sont réels."},"score":0.75,"snippet":"…%, soit environ 6,9 V sur un réseau 230 V. Cette limite correspond à la recommandation de la NF C 15-100 pour la majorité des circuits domestiques.\r\nSection (mm²) | Intensité (A) | Longueur max pour ΔU ≤ 3 % (m) | Puissa…","tier":2},{"article":{"uuid":"ddb53aae-7214-4e3c-8af5-e42da60d8429","slug":"kobo-elipsa-2e-le-cahier-a4-numerique-qu-on-attendait-a-quelques-details-pres","title":"Kobo Elipsa 2E : le cahier A4 numérique qu'on attendait, à quelques détails près","category":"loisirs","author":"cedric@abonnel.fr","cover":"cover.jpg","published":true,"published_at":"2025-11-09 12:07","created_at":"2025-11-09 12:07:00","updated_at":"2026-05-12 01:43:39","plain":"Une liseuse qui n'en est plus tout à fait une\r\n\r\nPendant longtemps, le marché des liseuses s'est tenu à une règle non écrite : une liseuse, c'est petit, c'est noir et blanc, c'est fait pour lire des romans dans le métro. Les tentatives de sortir de ce cadre — Sony DPT-RP1, Onyx Boox, ReMarkable — restaient soit confidentielles, soit positionnées comme des outils de prise de notes pure, sans véritable identité de liseuse. Avec l'Elipsa 2E, Kobo assume frontalement l'hybridation. Ce n'est pas une liseuse à laquelle on a ajouté un stylet ; c'est un objet pensé dès le départ comme un cahier numérique qui sait aussi lire des livres.\r\n\r\nL'engin est imposant. Écran E-Ink Carta 1200 de 10,3 pouces, résolution 1404 × 1872 pour 227 ppi, processeur dual-core 2 GHz et 32 Go de stockage. Côté tarif, TechRadar la situe autour de 399 dollars ou 349 livres, ce qui la place dans une catégorie où on n'achète plus sur un coup de tête : à ce prix, on attend un usage précis, pas un gadget de chevet.\r\n\r\nLe format change tout\r\n\r\nTenir l'Elipsa 2E pour la première fois, c'est comprendre instantanément à qui elle parle. À 10,3 pouces, on est très proche d'une feuille A5, voire d'un cahier d'étudiant — un format qui colle naturellement aux PDF et aux documents grand format. Et c'est là que tout se joue.\r\n\r\nQuiconque a déjà tenté de lire un PDF technique sur une liseuse 6 ou 7 pouces sait à quel point l'exercice est frustrant : on zoome, on déplace, on perd la mise en page, les schémas explosent en morceaux. Avec l'Elipsa 2E, un PDF A4 passe à l'écran à une taille parfaitement lisible, sans gymnastique. Les manuels techniques, les articles scientifiques, les supports de cours, les rapports d'entreprise : tout ce qui était pénible devient confortable. C'est moins spectaculaire que la couleur d'une Libra Colour, mais sur un usage professionnel ou étudiant intensif, le format change littéralement la nature de l'objet.\r\n\r\nLe stylet, atout central — mais imparfait\r\n\r\nLe stylet est inclus dans la boîte. Détail qui n'a l'air de rien mais qui mérite d'être souligné, parce que l'usage prévu est clairement l'annotation directe sur les e-books et la prise de notes manuscrites. Pas de Kobo Stylus 2 à racheter en option, pas de configuration séparée : on déballe, on écrit.\r\n\r\nL'utilisation est exactement ce qu'on en attend. On peut surligner dans n'importe quel ePub, écrire dans la marge, créer des carnets vierges pour des notes manuscrites, dessiner des schémas à main levée. Tout ce qu'on griffonne reste dans le fichier, et — point essentiel — peut être ressorti ensuite. Le système prend en charge ePub, PDF, et accepte sans broncher les fichiers déposés par USB-C, Wi-Fi ou Bluetooth.\r\n\r\nMais il faut être honnête : la sensation d'écriture n'est pas au niveau de ce que proposent les meilleurs concurrents. eWritable est même cinglant, qualifiant l'expérience tactile d'« horrible » et pointant le choix par Kobo du protocole Microsoft Pen Protocol (MPP 2.0) plutôt que la technologie Wacom qui équipe le ReMarkable 2 et reste la référence du secteur. Concrètement, qu'est-ce que ça veut dire ? Que la pointe glisse un peu trop sur le verre, qu'il manque cette résistance subtile qui fait penser au crayon sur papier, et qu'à très haute vitesse d'écriture la latence devient perceptible. Pour quelqu'un qui annote ses lectures, surligne, prend des notes ponctuelles, c'est largement suffisant. Pour quelqu'un qui veut remplacer son carnet Moleskine en cours magistral et écrire trois pages d'affilée à vitesse normale, ce sera frustrant.\r\n\r\nC'est une différence de positionnement, pas un défaut technique grave : l'Elipsa 2E est d'abord une liseuse qui annote, pas un cahier qui sait aussi lire.\r\n\r\nL'export des annotations, ce qui fait vraiment la différence\r\n\r\nC'est probablement le point sur lequel Kobo creuse l'écart avec ses concurrents, et notamment avec le Kindle Scribe. Le manuel officiel explique qu'on peut exporter ses annotations sous forme de fichier .txt et le récupérer sur son ordinateur, mais en réalité l'écosystème va plus loin : les PDF annotés ressortent avec les annotations intégrées à la page, prêts à être imprimés ou partagés.\r\n\r\nCe flux, en apparence banal, change tout pour qui travaille sérieusement avec ses lectures. Un étudiant peut annoter ses cours et imprimer la version surlignée pour les révisions. Un enseignant peut corriger des copies en PDF et renvoyer le fichier annoté à l'élève. Un consultant peut lire un rapport, le commenter en marge, le réintégrer dans sa documentation projet. Aucune annotation perdue, aucune resaisie. Là où Kindle Scribe limite encore largement l'export de ses annotations, Kobo joue le jeu de l'ouverture.\r\n\r\nLe talon d'Achille : l'entrée des fichiers\r\n\r\nC'est ici que l'Elipsa 2E montre ses limites les plus tangibles, et il faut le savoir avant d'acheter. Contrairement à Kindle, il n'existe pas d'adresse e-mail officielle « envoyer à ma liseuse » : il faut transférer les fichiers manuellement, par USB ou via un service tiers comme Dropbox. Pour qui s'envoie régulièrement des articles ou des e-books depuis son ordinateur ou son téléphone, ce manque crée une vraie friction quotidienne.\r\n\r\nLes workarounds existent, à condition d'accepter de mettre un peu les mains dans le moteur. Un projet open source baptisé KoboMail propose un système d'envoi par e-mail pour certaines Kobo, et plus intéressant encore, un daemon Nextcloud-Kobo permet de synchroniser automatiquement un dossier Nextcloud via WebDAV vers la liseuse. C'est ouvert, c'est élégant, ça respecte le principe d'auto-hébergement — mais ce n'est pas du plug and play. Il faut un serveur Nextcloud opérationnel, savoir configurer une connexion WebDAV, et accepter que l'installation se fasse dans le dossier du système Kobo. Bref, c'est superbe pour qui maîtrise déjà son infrastructure ; c'est rédhibitoire pour qui veut juste une solution clé en main.\r\n\r\nSur ce point précis, Kobo et Amazon proposent deux philosophies opposées : le confort immédiat d'un écosystème fermé contre la liberté d'un écosystème ouvert mais exigeant. À vous de voir où vous vous situez.\r\n\r\nPour qui ce produit a-t-il du sens ?\r\n\r\nL'Elipsa 2E est faite pour vous si vous lisez beaucoup de documents grand format — PDF techniques, cours universitaires, rapports professionnels, partitions — et si l'idée d'annoter ces documents fait partie intégrante de votre flux de travail. Elle est faite pour vous si vous voulez un objet unique au lieu de jongler entre une liseuse classique et un cahier papier. Elle est faite pour vous, aussi, si vous avez déjà (ou êtes prêt à monter) un Nextcloud ou un Dropbox pour synchroniser vos fichiers proprement.\r\n\r\nElle ne l'est pas si votre priorité est la prise de notes manuscrite intensive et fluide : sur ce terrain, un ReMarkable 2 ou un Supernote restent supérieurs. Elle ne l'est pas non plus si vous attendez le confort de l'envoi par e-mail à la Kindle, ou si l'idée d'installer un plugin communautaire pour combler un manque officiel vous donne de l'urticaire. Et elle est sans doute disproportionnée si vous lisez essentiellement des romans : à ce moment-là, une Clara BW à 150 € vous donnera plus de plaisir, dans un format de poche.\r\n\r\nMon avis\r\n\r\nL'Elipsa 2E est un produit ambitieux qui réussit l'essentiel et trébuche sur quelques détails finalement révélateurs. L'essentiel, c'est le format, la qualité de l'écran, l'export des annotations, l'ouverture du système et l'autonomie typique d'une liseuse — autant de raisons qui en font la meilleure proposition du marché pour un usage documentaire sérieux à ce niveau de prix.\r\n\r\nLes détails, ce sont le ressenti perfectible du stylet et l'absence d'un système d'entrée des fichiers digne de 2026. Kobo aurait pu intégrer nativement WebDAV — ça lui coûterait à peu près rien — et opter pour une dalle Wacom — ça lui coûterait plus cher mais lui ferait gagner une catégorie entière d'utilisateurs. À la place, on hérite d'un produit excellent à 80 %, et qui demande qu'on accepte ses zones grises sur les 20 % restants.\r\n\r\nPour qui cherche un véritable cahier A4 numérique sans basculer dans une tablette Android Onyx — plus chère, plus complexe, et au confort de lecture moindre — l'Elipsa 2E reste, à mes yeux, le meilleur compromis du moment. Pas le produit parfait. Le meilleur compromis. Ce n'est pas la même chose, et c'est très bien aussi."},"score":0.75,"snippet":"…ia WebDAV vers la liseuse. C'est ouvert, c'est élégant, ça respecte le principe d'auto-hébergement — mais ce n'est pas du plug and play. Il faut un serveur Nextcloud opérationnel, savoir configurer une connexion WebDAV, …","tier":2},{"article":{"uuid":"5b7030fa-68da-42b1-b181-49af17132fdf","slug":"github-copilot-l-assistant-qui-a-declenche-une-tempete","title":"GitHub Copilot, l’assistant qui a déclenché une tempête","category":"actualité","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-05 07:17:49","created_at":"2025-11-05 07:17:49","updated_at":"2025-11-05 07:17:49","plain":"En 2022, Microsoft dévoile GitHub Copilot, un outil révolutionnaire : une intelligence artificielle capable d’aider les programmeurs en générant du code automatiquement. Derrière cette prouesse technologique, un secret de fabrication : Copilot a été entraîné sur des millions de lignes de code public, hébergées sur GitHub, la plateforme de partage de projets informatiques appartenant… à Microsoft.\r\n\r\nTrès vite, l’enthousiasme laisse place à la colère. Des milliers de développeurs réalisent que leur travail a servi à nourrir une machine commerciale, sans leur consentement ni la moindre compensation. Sur les forums et les réseaux, le mot circule : “extraction de travail gratuit”. Ce qui était autrefois perçu comme un espace de collaboration ouverte se transforme en champ de bataille juridique et éthique.\r\n\r\nAux États-Unis, une action collective est lancée contre Microsoft et OpenAI. Les plaignants accusent les géants de la tech de violer les droits d’auteur en utilisant du code sous licence open source pour former leur IA. L’affaire devient un symbole : jusqu’où peut-on aller dans la collecte des données publiques pour nourrir les intelligences artificielles ?\r\n\r\nLe débat dépasse vite le monde du code. Sur LinkedIn, certains s’interrogent : et si nos textes, nos idées, nos posts publics devenaient, eux aussi, la matière première des IA linguistiques ? Après tout, les mots que nous publions en ligne sont aux modèles de langage ce que le code open source était à Copilot : une ressource abondante, gratuite, mais pas nécessairement libre de droit.\r\n\r\nAinsi, l’histoire de GitHub Copilot n’est pas seulement celle d’une innovation technique — c’est le récit d’un nouvel âge de la création, où chaque ligne, chaque phrase partagée sur le web peut devenir une brique d’intelligence… parfois à notre insu."},"score":0.75,"snippet":"…de travail gratuit”. Ce qui était autrefois perçu comme un espace de collaboration ouverte se transforme en champ de bataille juridique et éthique.\r\n\r\nAux États-Unis, une action collective est lancée contre Microsoft et…","tier":2},{"article":{"uuid":"b0b3ac59-87c5-4598-a549-f3168abb4429","slug":"quand-les-conversations-sont-devenues-une-matiere-premiere","title":"Quand les conversations sont devenues une matière première","category":"loisirs","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-05 07:17","created_at":"2025-11-05 07:17:02","updated_at":"2026-05-12 01:49:27","plain":"Entre 2023 et 2024, quelque chose s'est rompu sur le web social. Pas un effondrement, pas une crise visible — plutôt un basculement discret, presque administratif, dans la manière dont les grandes plateformes ont commencé à regarder ce que produisaient leurs utilisateurs. Les messages, les fils de discussion, les commentaires sarcastiques sous une photo de chat, les longues confidences nocturnes sur Tumblr : tout cela, jusque-là considéré comme l'humus naturel des réseaux sociaux, est soudainement devenu autre chose. Une ressource. Un actif. Une matière brute.\r\n\r\nLe déclencheur s'appelle Reddit. Le 22 février 2024, le jour même où l'entreprise dépose son dossier d'introduction en Bourse, elle annonce un accord à 60 millions de dollars par an avec Google : le géant de la recherche pourra puiser dans les archives du forum, via son API, pour entraîner ses modèles d'intelligence artificielle. Quelques mois plus tard, OpenAI signe à son tour un accord similaire, estimé autour de 70 millions de dollars annuels par les analystes. Le message envoyé au marché est limpide : ces décennies de conversations humaines, agrégées par une communauté qui croyait simplement bavarder, valent désormais des centaines de millions de dollars. Steve Huffman, PDG de Reddit, vante un modèle économique enfin durable. Les analystes financiers, eux, parlent de mine d'or.\r\n\r\nTumblr rejoint la danse une semaine plus tard, mais par effraction. Le 27 février 2024, le site spécialisé 404 Media révèle qu'Automattic — la maison mère de Tumblr et WordPress.com — finalise des accords avec OpenAI et Midjourney pour leur fournir l'accès aux contenus publiés sur ses plateformes. La fuite est embarrassante : des documents internes montrent qu'une première extraction de données a même ratissé trop large, embarquant par erreur des posts privés, des blogs supprimés et des contenus normalement exclus. Automattic publie en urgence un communiqué annonçant un système d'opt-out — la possibilité pour les utilisateurs de refuser, à condition de cocher la bonne case dans les bons paramètres. Mais la communauté Tumblr, refuge historique d'artistes, d'écrivains amateurs, de communautés queer et de fanfic, n'a pas attendu la procédure officielle pour réagir : la nouvelle déclenche une vague de fermetures de comptes et d'effacements rétroactifs.\r\n\r\nX, sous la direction d'Elon Musk, emprunte un chemin parallèle mais plus solitaire. Plutôt que de vendre l'accès à ses données à des concurrents, Musk a verrouillé son robinet dès 2023 — au point d'introduire des plafonds de consultation tellement absurdes que la plateforme en est devenue inutilisable pendant quelques jours — et a réservé sa matière première à xAI, sa propre société d'intelligence artificielle, pour alimenter le chatbot Grok. En octobre 2024, X annonce une refonte de ses conditions d'utilisation, effective le 15 novembre. Le nouveau texte est explicite : tout contenu publié sur la plateforme peut être utilisé pour entraîner ses modèles d'apprentissage automatique, ainsi que ceux de « partenaires tiers » non nommés. L'option qui permettait jusque-là aux utilisateurs européens de refuser que leurs posts servent à entraîner Grok est, dans la foulée, devenue inaccessible pour beaucoup. Le principe reste le même que chez Reddit — les mots des utilisateurs deviennent du carburant — mais sans le détour d'un contrat externe.\r\n\r\nCar ce qui frappe, ce n'est pas tant chaque accord pris isolément que la rapidité avec laquelle l'idée s'est imposée. En quelques mois, exploiter les mots de ses utilisateurs pour entraîner de l'IA est devenu non plus une stratégie audacieuse, mais une évidence de marché. LinkedIn, propriété de Microsoft — qui se trouve aussi être le principal investisseur d'OpenAI —, suit le mouvement avec une discrétion remarquable. Le 18 septembre 2024, une mise à jour silencieuse de sa politique de confidentialité révèle que la plateforme entraîne déjà ses propres modèles d'IA générative à partir des posts, articles et données de profil de ses membres, partout dans le monde — y compris au Royaume-Uni. Personne n'a été prévenu en bonne et due forme ; le paramètre permettant de refuser ne se déclenche pas par défaut.\r\n\r\nL'épisode tourne court. En 48 heures, l'Information Commissioner's Office britannique, le régulateur des données, exige un arrêt immédiat de la pratique sur le territoire. Stephen Almond, son directeur exécutif chargé des risques réglementaires, déclare publiquement que la confiance du public dans l'IA générative dépend précisément du respect des droits à la vie privée dès le départ. LinkedIn suspend le traitement au Royaume-Uni, dans l'Espace économique européen et en Suisse. Pour le reste du monde — les États-Unis, l'Asie, le Canada, l'Amérique latine —, la collecte continue, opt-out par défaut.\r\n\r\nMais quelque chose, du côté des utilisateurs, n'a pas suivi.\r\n\r\nSur Reddit, des modérateurs ferment leurs subreddits en protestation. D'autres remplacent leurs anciens posts par des chaînes de caractères absurdes — du sabotage de données, en somme, pour rendre leurs contributions inutilisables. Sur Tumblr, on voit ressurgir un vieux geste internet : des comptes entiers passent en privé, des années d'écriture s'effacent en quelques clics. Des forums spécialisés évoquent une « grève des données ». Une phrase circule, amère, sur plusieurs plateformes à la fois : « Nos mots valent de l'or, mais pas pour nous. »\r\n\r\nC'est sans doute le paradoxe le plus profond de cette séquence. Pendant deux décennies, les grandes plateformes avaient bâti leur valeur sur un contrat tacite : vous nous donnez votre temps et votre attention, nous vous offrons un espace pour exister et nous monétisons votre regard auprès des annonceurs. Le deal était imparfait, mais lisible. À partir de 2024, un second contrat se superpose au premier sans avoir été négocié : votre langage, vos conversations, vos archives intimes deviennent aussi une matière première vendable, à votre insu le plus souvent, pour entraîner des intelligences qui à terme produiront le même langage que vous — mais en série, à coût marginal nul, et au bénéfice d'autres.\r\n\r\nLe web social était entré dans une nouvelle ère. Celle où les conversations des uns sont devenues l'apprentissage des autres.\r\n--\r\n\r\nSources\r\nVoici la liste des sources utilisées pour la vérification, organisée par thème pour que tu puisses les citer ou les ajouter en fin d'article.\r\n\r\nReddit – Google et OpenAI\r\nCBS News (23 février 2024) — Annonce de l'accord à 60 M$ entre Google et Reddit\r\nhttps://www.cbsnews.com/news/google-reddit-60-million-deal-ai-training/\r\nLutzker & Lutzker (18 mars 2024) — Analyse détaillée de l'accord et de l'usage de l'API Reddit\r\nhttps://www.lutzker.com/ipbitpieces/reddits-licensing-agreement-with-google/\r\nColumbia Journalism Review — Analyse de la stratégie globale de Reddit (mention de l'accord OpenAI à 70 M$/an)\r\nhttps://www.cjr.org/analysis/reddit-winning-ai-licensing-deals-openai-google-gemini-answers-rsl.php\r\n\r\nTumblr / Automattic – OpenAI et Midjourney\r\n404 Media (27 février 2024) — Article source qui a révélé l'affaire\r\nhttps://www.404media.co/tumblr-and-wordpress-to-sell-users-data-to-train-ai-tools/\r\nEngadget (27 février 2024) — Reprise détaillée avec la réponse officielle d'Automattic\r\nhttps://www.engadget.com/tumblr-and-wordpress-posts-will-reportedly-be-used-for-openai-and-midjourney-training-204425798.html\r\nWP Tavern (28 février 2024) — Angle communauté WordPress et critique de la politique d'opt-out\r\nhttps://wptavern.com/automattic-faces-scrutiny-over-ai-access-policy\r\nPopular Science (29 février 2024) — Mise en perspective sur l'inefficacité de l'opt-out\r\nhttps://www.popsci.com/technology/openai-wordpress-tumblr/\r\n\r\nX (Twitter) – Conditions d'utilisation et entraînement de Grok\r\nSocial Media Today (17 octobre 2024) — Analyse des nouvelles conditions effectives le 15 novembre 2024\r\nhttps://www.socialmediatoday.com/news/x-formerly-twitter-updates-terms-service/730223/\r\nCNN Business (21 octobre 2024) — Réaction des utilisateurs et flou sur l'opt-out\r\nhttps://www.cnn.com/2024/10/21/tech/x-twitter-terms-of-service\r\nCybernews (18 octobre 2024) — Sur la disparition de l'option d'opt-out\r\nhttps://cybernews.com/ai-news/updated-x-terms/\r\nGigazine — Déta#il des clauses ajoutées concernant les « partenaires tiers »\r\nhttps://gigazine.net/gscnews/en/20241018-x-privacy-policy-ai-training/\r\n\r\nLinkedIn – Intervention de l'ICO britannique\r\nTechCrunch (20 septembre 2024) — LinkedIn suspend l'entraînement IA au Royaume-Uni\r\nhttps://techcrunch.com/2024/09/20/linkedin-has-stopped-grabbing-u-k-users-data-for-ai/\r\nThe Record (Recorded Future News) (20 septembre 2024) — Le rôle de l'ICO dans l'arrêt\r\nhttps://therecord.media/uk-regulator-stops-linkedin-ai-models\r\nThe Hacker News (22 septembre 2024) — Synthèse incluant la mention de Meta en parallèle\r\nhttps://thehackernews.com/2024/09/linkedin-halts-ai-data-processing-in-uk.html\r\nLegal IT Insider (20 septembre 2024) — Citation complète de Stephen Almond (ICO)\r\nhttps://legaltechnology.com/2024/09/20/linkedin-suspends-opt-out-ai-model-training-for-uk-following-ico-concerns/"},"score":0.75,"snippet":"…iance du public dans l'IA générative dépend précisément du respect des droits à la vie privée dès le départ. LinkedIn suspend le traitement au Royaume-Uni, dans l'Espace économique européen et en Suisse. Pour le reste du…","tier":2},{"article":{"uuid":"5982deaf-f3de-4f65-9270-9849132e64f6","slug":"nos-donnees-a-l-ere-de-l-ia-l-affaire-linkedin-et-la-colere-des-utilisateurs","title":"Nos données à l’ère de l’IA : l’affaire LinkedIn et la colère des utilisateurs","category":"actualité","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-05 07:10:37","created_at":"2025-11-05 07:10:37","updated_at":"2025-11-05 07:10:37","plain":"Un matin d’automne, Léa ouvre son compte LinkedIn comme elle le fait chaque jour. Consultante indépendante, elle y partage des réflexions sur le travail à distance, y échange avec des collègues et y recrute parfois des partenaires. Rien de bien extraordinaire. Mais ce jour-là, un post attire son attention : « LinkedIn utilise vos données pour entraîner ses IA ».\r\n\r\nAu début, elle croit à une rumeur. Encore une de ces tempêtes numériques qui s’évanouissent aussi vite qu’elles éclatent. Puis elle lit plus attentivement : le réseau professionnel de Microsoft admet effectivement utiliser certaines données publiques — les profils, les publications, les interactions visibles — pour nourrir ses modèles d’intelligence artificielle.\r\n\r\nDe la mise en relation à la collecte invisible\r\n\r\nDepuis sa création, LinkedIn se présente comme une vitrine professionnelle : un espace où chacun peut exposer son parcours, ses compétences, ses ambitions. En échange, la plateforme promet visibilité, opportunités et réseau. Mais derrière cette promesse, un autre marché s’est peu à peu installé : celui des données.\r\n\r\nChaque clic, chaque mise à jour de poste, chaque mot-clé devient une pièce d’un immense puzzle comportemental. Ce puzzle, jusqu’ici utilisé pour cibler des offres d’emploi ou des publicités, se retrouve désormais au cœur de quelque chose de beaucoup plus vaste : l’entraînement des intelligences artificielles.\r\n\r\nMicrosoft, maison mère de LinkedIn, investit des milliards dans l’IA. Or, pour qu’une IA apprenne, il lui faut une matière première : les mots, les textes, les interactions humaines. Et LinkedIn en regorge.\r\n\r\nLa ligne floue entre le “public” et le “privé”\r\n\r\nTechniquement, LinkedIn affirme ne collecter que les informations publiques. Mais qu’est-ce que cela signifie vraiment ? Léa n’a jamais donné son accord explicite pour que ses publications servent à entraîner des algorithmes de génération de texte. Elle les a partagées pour échanger avec des pairs, pas pour devenir une donnée parmi des millions d’autres.\r\n\r\nC’est là que le malaise grandit.\r\nLes utilisateurs découvrent que la frontière entre ce qu’ils publient volontairement et ce qui peut être réutilisé s’estompe. Dans les conditions d’utilisation, tout est mentionné — quelque part, en petits caractères. Mais rares sont ceux qui lisent jusqu’à la dernière ligne.\r\n\r\nLe choc du consentement absent\r\n\r\nLes réactions ne se font pas attendre : des posts indignés envahissent la plateforme même.\r\n« On n’est pas des cobayes ! » écrit un utilisateur.\r\n« Nos profils sont devenus des datasets », dénonce une autre.\r\n\r\nCe qui choque, ce n’est pas seulement l’usage, mais la manière dont il a été introduit : sans consultation, sans transparence, presque à bas bruit.\r\n\r\nLes défenseurs du projet rétorquent que l’IA ne “lit” pas nos données comme un humain. Qu’elle analyse des tendances, pas des personnes. Que tout est anonymisé.\r\nMais cette défense sonne creux pour beaucoup : anonymiser ne supprime pas la question éthique. À partir du moment où nos mots, nos idées, nos réflexions alimentent un système dont nous ne maîtrisons ni les usages ni les bénéfices, une part de notre autonomie numérique s’érode.\r\n\r\nUne affaire de confiance\r\n\r\nLinkedIn n’est pas la première plateforme à faire face à cette controverse. Reddit, X (ex-Twitter) et même Meta ont adopté des politiques similaires, justifiant ces pratiques par la nécessité d’améliorer leurs modèles d’IA.\r\nMais LinkedIn occupe une place particulière : il s’agit du réseau professionnel par excellence. Ici, les utilisateurs partagent des informations sensibles — leur parcours, leur entreprise, leurs compétences — souvent avec leur vrai nom.\r\n\r\nLa relation de confiance entre l’utilisateur et la plateforme est donc essentielle. Et c’est justement cette confiance qui vacille.\r\n\r\nLéa et le dilemme numérique\r\n\r\nQuelques jours plus tard, Léa se rend dans les paramètres de confidentialité.\r\nElle découvre, cachée dans une section sobrement intitulée « Utilisation des données pour l’IA », une mention : « Nous pouvons utiliser vos informations publiques pour améliorer nos produits et services, y compris les technologies d’intelligence artificielle. »\r\n\r\nIl existe bien une option d’exclusion, mais difficile à trouver. Léa la décoche, sans savoir si cela changera vraiment quelque chose.\r\nElle ressent un mélange de soulagement et de résignation.\r\n\r\nCar au fond, la question dépasse LinkedIn. Elle touche à une réalité plus vaste : dans l’ère de l’intelligence artificielle, nos données sont devenues la nouvelle énergie, le carburant invisible qui alimente des machines toujours plus puissantes.\r\n\r\nVers une prise de conscience collective\r\n\r\nL’affaire LinkedIn agit comme un électrochoc. Elle révèle à quel point le consentement numérique reste un concept fragile, souvent illusoire. Elle invite chacun à repenser ce qu’il partage en ligne, mais aussi à exiger des plateformes une vraie transparence.\r\n\r\nLes régulateurs européens, via le RGPD, commencent à se saisir du sujet. Certains experts appellent à créer un « droit à l’exclusion des IA », un cadre légal obligeant les entreprises à obtenir un consentement explicite avant toute utilisation des données à des fins d’entraînement algorithmique.\r\n\r\nMais pour l’instant, la balle reste surtout dans le camp des utilisateurs — ceux qui, comme Léa, naviguent entre pragmatisme et inquiétude, entre le besoin de visibilité et la peur d’être instrumentalisés.\r\n--\r\n\r\n Entre progrès et perte de contrôle\r\n\r\nL’IA promet des avancées spectaculaires. Elle transforme nos métiers, nos outils, nos manières de communiquer. Mais elle pose une question fondamentale : qui possède les données qui la nourrissent ?\r\n\r\nLinkedIn n’est peut-être qu’un exemple parmi d’autres, mais il symbolise un tournant.\r\nDans cette ère où chaque mot que nous tapons peut devenir une donnée d’apprentissage, la véritable ressource n’est plus la technologie, mais la confiance.\r\nEt cette confiance, aujourd’hui, semble s’effriter à mesure que les algorithmes se renforcent.\r\n--\r\n\r\nVoici les risques autour de l’utilisation des données des utilisateurs par LinkedIn (et d’autres plateformes) pour l’IA\r\n\r\n1. Atteinte à la vie privée et au consentement\r\n\r\nMême si LinkedIn affirme n’utiliser que des données “publiques”, cela ne signifie pas que les utilisateurs ont consenti explicitement à cet usage.\r\n\r\n Les informations partagées à des fins professionnelles (CV, publications, commentaires) peuvent être réutilisées hors contexte.\r\n Le consentement est souvent implicite, enfoui dans les conditions d’utilisation.\r\n L’utilisateur perd le contrôle sur ce qu’il partage : il ne sait pas exactement comment ni par qui ses données seront exploitées.\r\n\r\n➡️ Exemple concret : ton texte sur la gestion d’équipe pourrait servir à entraîner une IA d’entreprise sans que tu le saches, ni que ton nom y soit associé.\r\n--\r\n\r\n2. Profilage et reconstitution d’identité\r\n\r\nL’agrégation massive des données permet aux IA d’identifier des schémas comportementaux et professionnels :\r\n\r\n Les algorithmes peuvent déduire des informations sensibles (habitudes de travail, orientation politique, situation financière, etc.) à partir de simples interactions.\r\n Ces profils peuvent être utilisés pour le ciblage commercial, le recrutement automatisé, voire l’évaluation de performance dans certains contextes.\r\n\r\n➡️ Risque : un recruteur ou un système d’IA pourrait juger ton profil ou ton style d’écriture sans ton accord.\r\n--\r\n\r\n3. Appropriation intellectuelle et perte de la valeur de ton contenu\r\n\r\nLes textes, publications et commentaires des utilisateurs servent de matière première à l’entraînement de modèles d’intelligence artificielle.\r\n\r\n Tes contributions (même originales ou expertes) peuvent être intégrées à des IA génératives qui, ensuite, produiront du contenu similaire sans mentionner leur source.\r\n Cela pose une question d’éthique et de propriété intellectuelle : tu deviens fournisseur involontaire de savoir gratuit.\r\n\r\n➡️ Exemple : une IA générative pourrait reformuler ou réutiliser tes analyses dans un contexte commercial sans te citer.\r\n--\r\n\r\n4. Risque de réidentification\r\n\r\nMême si LinkedIn ou Microsoft annoncent que les données sont “anonymisées”, des études montrent qu’il est souvent possible de réidentifier des individus à partir de fragments de données combinées.\r\n\r\n Les publications, les dates d’emploi ou les noms d’entreprises peuvent suffire à retrouver une personne réelle.\r\n Cela peut exposer à du harcèlement, du doxing (divulgation d’infos perso) ou du recrutement non sollicité.\r\n--\r\n\r\n5. Érosion de la confiance numérique\r\n\r\nChaque nouvelle utilisation non transparente des données creuse le fossé entre utilisateurs et plateformes.\r\n\r\n Les professionnels peuvent se censurer, publier moins, ou quitter la plateforme.\r\n Cela nuit à la qualité du réseau et à la diversité des échanges.\r\n\r\n➡️ Risque collectif : LinkedIn perd son rôle de réseau professionnel ouvert, et les utilisateurs deviennent méfiants ou silencieux.\r\n--\r\n\r\n6. Exploitation commerciale asymétrique\r\n\r\nLes utilisateurs fournissent la matière (leurs données), mais ne bénéficient pas des revenus générés par les IA entraînées sur ces données.\r\n\r\n Les plateformes en tirent un profit direct (via les produits IA, la publicité ou les abonnements premium).\r\n Les utilisateurs, eux, deviennent des ressources gratuites sans contrepartie.\r\n--\r\n\r\n7. Sécurité des données à long terme\r\n\r\nUne fois intégrées dans des modèles d’IA, les données ne peuvent pas toujours être effacées.\r\n\r\n Même si tu supprimes ton compte, l’empreinte de tes données peut subsister dans les systèmes d’apprentissage.\r\n Cela entre en tension avec le droit à l’oubli, garanti par le RGPD.\r\n--\r\n\r\nExemples concrets et projections permettant de bien mesurer les conséquences réelles (et à venir) de cette collecte de données par LinkedIn et les IA associées.\r\nVoici une série d’illustrations réalistes, plausibles et documentées, suivies de projections futures si la tendance se poursuit.\r\n\r\n💼 1. Exemple actuel : ton profil devient un “modèle” de compétence\r\n\r\nUn consultant publie régulièrement des analyses sur la transformation digitale. Ses posts sont publics, bien écrits et souvent partagés.\r\n👉 Ces textes peuvent être intégrés (sans qu’il le sache) dans des ensembles de données qui servent à entraîner une IA professionnelle de rédaction ou de recrutement.\r\nRésultat : une IA générative pourrait ensuite produire des articles ou des messages LinkedIn similaires au sien, imitant son ton et sa structure — sans jamais le créditer.\r\n\r\n📍 Projection 2026 : les entreprises paieront pour des outils d’IA “experts en communication LinkedIn”, entraînés sur des millions de publications d’utilisateurs. Ces contenus originaux deviendront des modèles commerciaux... sans rémunération pour leurs auteurs.\r\n--\r\n\r\n🔍 2. Exemple : profilage algorithmique dans le recrutement\r\n\r\nLinkedIn est déjà utilisé pour le tri automatisé des candidatures. En combinant ces données avec des modèles d’IA, une entreprise pourrait prédire les “traits de personnalité” d’un candidat à partir de son profil, de son vocabulaire ou de son historique de publications.\r\n\r\n➡️ Risque concret :\r\nUne IA pourrait écarter un profil jugé “instable” ou “non aligné culturellement” simplement parce qu’elle a repéré des posts critiques sur le management — sans intervention humaine.\r\n\r\n📍 Projection 2027 : des recruteurs utilisent des IA pour “noter” automatiquement les profils selon leur probabilité de succès dans une entreprise, créant des discriminations invisibles et difficilement contestables.\r\n--\r\n\r\n✍️ 3. Exemple : appropriation intellectuelle déguisée\r\n\r\nImaginons une chercheuse en RH qui publie des posts détaillant sa méthode d’évaluation des compétences.\r\nQuelques mois plus tard, une IA professionnelle (issue d’un modèle Microsoft ou OpenAI) reprend des formulations et des idées très proches dans un produit commercial.\r\n\r\n➡️ Risque : sa méthode devient une fonctionnalité d’un logiciel RH, sans reconnaissance ni rémunération.\r\n\r\n📍 Projection 2028 : les IA intègrent massivement du contenu “crowdsourcé” depuis LinkedIn, Reddit ou Medium. Les créateurs deviennent fournisseurs involontaires de savoir, pendant que les entreprises vendent des outils basés sur leurs contributions.\r\n--\r\n\r\n🧠 4. Exemple : inférences comportementales non désirées\r\n\r\nUne IA peut déduire plus que ce que l’utilisateur pense partager.\r\n➡️ Par exemple :\r\n\r\n Un rythme de publication irrégulier peut être interprété comme un “manque de disponibilité”.\r\n Un enchaînement de changements de poste peut être lu comme un “instinct d’instabilité”.\r\n Le ton ou la fréquence des commentaires peut servir à classer les utilisateurs selon leur “influence sociale”.\r\n\r\n📍 Projection 2026-2030 : ces données comportementales nourrissent des scores de réputation professionnelle invisibles, que certaines entreprises ou plateformes utilisent pour classer les candidats, partenaires ou clients potentiels.\r\n--\r\n\r\n💰 5. Exemple : création de produits IA entraînés sur les utilisateurs\r\n\r\nMicrosoft développe des outils d’IA intégrés à LinkedIn Learning ou à Microsoft 365 Copilot.\r\n➡️ Les modèles peuvent s’inspirer des tendances, expressions et structures de pensée des utilisateurs LinkedIn pour proposer des conseils personnalisés (“Voici comment rédiger une offre d’emploi efficace”).\r\n\r\n📍 Projection 2030 :\r\nLes modèles d’IA deviennent si performants qu’ils proposent des stratégies RH, des analyses de marché ou des lettres de motivation entières, entraînées sur les contenus des utilisateurs — mais commercialisées sous licence Microsoft.\r\nLes utilisateurs deviennent littéralement la matière première de produits IA vendus à d’autres professionnels.\r\n--\r\n\r\n🔒 6. Exemple : difficulté d’effacement ou de contrôle\r\n\r\nUn utilisateur décide de supprimer son compte LinkedIn.\r\n➡️ Problème : ses anciens posts, déjà utilisés pour l’entraînement de modèles, ne peuvent pas être “désappris” par ces IA.\r\nLes traces textuelles persistent dans les modèles, parfois indéfiniment.\r\n\r\n📍 Projection 2029 : même avec le droit à l’oubli renforcé, la récupération complète des données dans les modèles devient quasi impossible. Les régulateurs européens devront imposer des procédures d’“oubli algorithmique”, très coûteuses à mettre en œuvre.\r\n--\r\n\r\n🌍 7. Projection sociétale globale : le paradoxe de la transparence\r\n\r\nÀ long terme, la généralisation de ces pratiques pourrait produire un effet de censure douce :\r\n\r\n Les utilisateurs partagent moins d’analyses authentiques, de peur d’être copiés ou profilés.\r\n Les publications deviennent plus neutres, plus polies, moins spontanées.\r\n Le réseau perd de sa valeur humaine et se transforme en vitrine aseptisée.\r\n\r\nEn parallèle, les grandes entreprises technologiques accumulent des quantités massives de données textuelles qui leur donnent un avantage compétitif durable**.\r\nLes utilisateurs, eux, deviennent invisibles dans la chaîne de valeur de l’intelligence artificielle."},"score":0.75,"snippet":"…LinkedIn se présente comme une vitrine professionnelle : un espace où chacun peut exposer son parcours, ses compétences, ses ambitions. En échange, la plateforme promet visibilité, opportunités et réseau. Mais derrière c…","tier":2},{"article":{"uuid":"8ed45b6e-d89b-4ae9-94e2-ed8476c00080","slug":"creer-son-propre-mini-framework-php-from-scratch","title":"Créer son propre mini-framework PHP from scratch","category":"informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-04 22:07:52","created_at":"2025-11-04 22:07:52","updated_at":"2025-11-04 22:07:52","plain":"Tout commence avec une idée simple : bâtir un système web léger, modulaire et compréhensible, sans dépendre d’un framework externe.\r\nUn framework maison, conçu pour gérer efficacement des posts, des commentaires et des pièces jointes, tout en respectant les principes de l’architecture MVC.\r\n\r\nL’objectif\r\n\r\nDisposer d’une base claire et extensible, où chaque brique du système — du routeur aux modèles — reste transparente et entièrement maîtrisable.\r\n--\r\n\r\nLa structure du projet\r\n\r\nL’application s’organise autour d’une arborescence simple et logique.\r\n\r\nAu sommet, le dossier joue le rôle de porte d’entrée du site, avec un fichier qui orchestre tout : c’est lui qui intercepte chaque requête et la transmet au routeur.\r\n\r\nDans le dossier , on retrouve le cœur de la logique métier :\r\n\r\n contient les fondations : le routeur et la classe de base des contrôleurs.\r\n regroupe les différentes logiques d’action (posts, commentaires, pièces jointes).\r\n gère la persistance des données — ici stockées dans des fichiers JSON pour plus de simplicité.\r\n\r\nChaque couche a un rôle précis, et l’ensemble reste clair, modulaire et facile à maintenir.\r\n--\r\n\r\nLe routeur : le cerveau du système\r\n\r\nAu cœur du projet, le fichier agit comme un chef d’orchestre.\r\nIl écoute les requêtes entrantes, analyse leur méthode (, , , etc.) et les fait correspondre à la bonne route.\r\n\r\nGrâce à un jeu de regex, le routeur reconnaît des chemins dynamiques comme et transmet automatiquement les paramètres au contrôleur concerné.\r\nUne architecture élégante, minimaliste et pourtant très puissante.\r\n--\r\n\r\nL’entrée principale : \r\n\r\nTout commence dans .\r\nAprès avoir chargé les classes nécessaires, on y définit les routes — une à une — comme les règles d’un jeu.\r\n\r\nChaque route associe une méthode HTTP à une action précise :\r\n\r\n Afficher tous les posts\r\n Créer un nouveau post\r\n Mettre à jour, publier ou masquer un post\r\n Ajouter un commentaire ou une pièce jointe\r\n\r\nUne fois toutes les routes enregistrées, le routeur intercepte la requête HTTP réelle et la redirige vers le bon contrôleur.\r\nC’est simple, direct et parfaitement lisible.\r\n--\r\n\r\nLes contrôleurs : la logique métier\r\n\r\nPrenons comme exemple.\r\nChaque méthode correspond à une action concrète du système : afficher la liste des posts, en créer un, le modifier, le publier ou le masquer.\r\n\r\nLes contrôleurs sont stateless : ils reçoivent les données, invoquent le modèle correspondant, puis renvoient une réponse JSON propre et explicite.\r\nAucune dépendance superflue, aucun artifice — le code parle de lui-même.\r\n--\r\n\r\nLes modèles : la mémoire du système\r\n\r\nLes modèles (, , ) assurent la gestion des données.\r\nIci, les informations sont stockées dans des fichiers JSON — un choix volontairement simple, idéal pour le prototypage ou les petits projets.\r\n\r\nMais la structure est pensée pour pouvoir évoluer facilement vers une base de données réelle (MySQL, SQLite, etc.) via PDO.\r\nChaque modèle sait comment lire, créer, modifier et sauvegarder ses propres objets, garantissant ainsi une séparation claire des responsabilités.\r\n--\r\n\r\nUne API claire et RESTful\r\n\r\nLes routes suivent une logique RESTful, simple et cohérente :\r\n\r\n\r\n\r\nL’API est lisible, homogène et prête à être consommée par n’importe quel front-end — qu’il soit en Vue.js, React, ou même une interface HTML minimale.\r\n--\r\n\r\nPourquoi cette approche séduit\r\n\r\nCe mini-framework maison présente plusieurs atouts :\r\n\r\n Zéro dépendance externe : tout est sous ton contrôle.\r\n Architecture claire et didactique : parfaite pour comprendre la mécanique interne d’un framework.\r\n Routing dynamique et élégant : les paramètres d’URL sont gérés naturellement.\r\n Extensibilité : tu peux facilement ajouter l’authentification, des middlewares ou la validation des données.\r\n Légèreté : un cœur minimal, mais robuste et fonctionnel.\r\n--\r\n\r\nEt après ?\r\n\r\nLa prochaine étape : implémenter la gestion complète des fichiers uploadés, avec vérification du type MIME, stockage sécurisé dans , et possibilité de masquer les pièces jointes à la demande.\r\n\r\nPetit à petit, ton framework prend forme — un système MVC léger, propre et totalement maîtrisé.\r\nTu n’utilises plus un framework : tu en construis un."},"score":0.75,"snippet":"…des posts, des commentaires et des pièces jointes, tout en respectant les principes de l’architecture MVC.\r\n\r\nL’objectif\r\n\r\nDisposer d’une base claire et extensible, où chaque brique du système — du routeur aux modèles —…","tier":2},{"article":{"uuid":"3d6d8b38-c514-46dc-93dc-b4b2f19112e9","slug":"l-histoire-du-million-de-dollars-offert-par-george-clooney","title":"L'histoire du million de dollars offert par George Clooney","category":"loisirs","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-04 22:02:12","created_at":"2025-11-04 22:02:12","updated_at":"2025-11-04 22:02:12","plain":"Le Dîner aux Quatorze Valises\r\n\r\nL’air de Los Angeles avait ce soir-là une douceur presque irréelle. Le soleil s’était retiré derrière les collines, laissant sur la ville un voile d’or et de pourpre. Dans sa villa perchée sur les hauteurs, George Clooney observait le crépuscule à travers les baies vitrées. Il tenait un verre de tequila — pas encore la sienne, pas encore Casamigos — et laissait son esprit vagabonder vers le passé.\r\n\r\nDepuis quelques années, tout semblait lui sourire. Les films, les récompenses, la reconnaissance. Pourtant, au fond de lui, subsistait un souvenir tenace : celui des jours sans gloire, des auditions ratées, des loyers impayés, des doutes qui rongent. Et dans chacun de ces souvenirs, un visage revenait, puis un autre, et encore un autre. Ses amis. Ceux qui avaient cru en lui avant tout le monde.\r\n« S’ils ne m’avaient pas aidé, je n’aurais rien aujourd’hui », murmura-t-il.\r\n\r\nC’est à cet instant que naquit l’idée. Folle. Impossible. Parfaite.\r\n--\r\n\r\nLe Plan Clooney\r\n\r\nQuelques jours plus tard, l’acteur décrocha son téléphone. À l’autre bout du fil, un vieil ami, discret, habitué à gérer des affaires où la confidentialité valait plus que l’or.\r\nClooney parla calmement, comme s’il commandait un dîner.\r\n— J’aurais besoin de quatorze valises.\r\n— Quatorze valises ? Pour voyager ?\r\n— Non. Pour les remplir.\r\n— Les remplir de quoi ?\r\n— De cash. Un million dans chacune.\r\n\r\nUn silence. Puis un rire, incrédule. Mais Clooney ne riait pas.\r\n\r\nL’homme comprit. Ce n’était pas une blague. Le lendemain, ils se retrouvèrent dans une salle sécurisée d’une banque privée. Les employés, discrets et médusés, empilaient des liasses de billets de 20 dollars, soigneusement compressées, jusqu’à atteindre la somme vertigineuse de 14 millions.\r\nLes valises en cuir sombre furent disposées comme dans une scène d’Ocean’s Eleven. Sauf que cette fois, George Clooney ne tournait pas un film : il écrivait sa propre légende.\r\n--\r\n\r\nLe Dîner\r\n\r\nNous sommes en 2013. Le ciel de Californie s’enrobe de lumière chaude.\r\nClooney organise un dîner chez lui. Rien d’extravagant à première vue — juste une soirée entre amis, ces mêmes amis qu’il connaît depuis vingt, trente ans. Des visages familiers : Rande Gerber, Mike Meldman, Grant Heslov, Richard Kind, Tom Mathews… et d’autres dont le monde n’aura jamais le nom.\r\n\r\nIls arrivent un à un, souriants, décontractés. Sur la grande table, dressée simplement, chaque convive remarque une valise en cuir posée à sa place. Ils se jettent des regards curieux, croyant à une plaisanterie.\r\n\r\nLe dîner se déroule dans les rires et les souvenirs. Puis, entre deux verres de vin, Clooney se lève. Le silence s’installe. Il les regarde, les uns après les autres. Ses amis. Sa famille de cœur.\r\n« Les gars, vous avez été là quand je n’avais rien. Quand je dormais sur vos canapés, quand je n’avais pas de rôle, ni d’argent, ni de plan. Vous avez cru en moi. Vous avez partagé vos repas, vos toits, votre temps. Aujourd’hui, j’ai envie de vous dire merci. »\r\n\r\nIl désigne les valises.\r\n« Chacune contient un million de dollars en cash. C’est ma façon de vous rendre ce que vous m’avez donné : la chance, la loyauté, l’amitié. »\r\n\r\nUn murmure traverse la pièce. Certains rient nerveusement, d’autres restent figés.\r\nClooney ouvre une valise. Des liasses impeccables, empilées comme dans les films. Le choc est réel.\r\n\r\nPuis il ajoute, avec ce demi-sourire qu’on lui connaît :\r\n« Et avant que vous ne paniquiez, j’ai aussi payé les impôts pour vous. Vous n’aurez rien à déclarer. C’est du net. »\r\n--\r\n\r\nLes Réactions\r\n\r\nRande Gerber, son plus proche complice, éclate de rire avant de secouer la tête.\r\n— George, je ne peux pas accepter ça.\r\n\r\nClooney lui répond calmement :\r\n— Si tu refuses, personne ne reçoit rien.\r\n\r\nAlors Gerber accepte. Et, plus tard, il reverse son million à une œuvre caritative.\r\nCe geste, à lui seul, résume toute la soirée : de la générosité en cascade.\r\n\r\nLes autres ouvrent leurs valises, les mains tremblantes, mi-hilaires, mi-hébétés. Dans cette maison perchée sur les collines, les dollars ne représentent plus la richesse — mais la gratitude.\r\n--\r\n\r\nL’Héritage d’un Geste\r\n\r\nL’histoire reste secrète pendant des années.\r\nC’est seulement en 2017, quand Rande Gerber la raconte publiquement, que le monde découvre ce qu’on appellera bientôt “Le Coup de Clooney”.\r\n\r\nBeaucoup y voient une extravagance hollywoodienne, un coup d’éclat digne d’un scénario. Mais ceux qui connaissent Clooney savent que c’est autre chose. C’est la reconnaissance d’un homme qui n’a jamais oublié les soirs de galère, ni les mains tendues.\r\n“J’ai pensé : si je me fais renverser par un bus demain, je suis comblé.\r\nMais tout ça n’aurait aucun sens si je n’avais pas ces gars à mes côtés.”\r\n— George Clooney, dans GQ, 2020\r\n--\r\n\r\nÉpilogue\r\n\r\nAujourd’hui encore, la légende circule à Hollywood comme un conte moderne.\r\nQuatorze valises, quatorze millions, quatorze amitiés.\r\nUne scène digne d’un film — mais sans caméra, sans public, sans scénario.\r\n\r\nSeulement un homme, ses amis, et un merci plus fort que tout l’or du monde."},"score":0.75,"snippet":"…as encore la sienne, pas encore Casamigos — et laissait son esprit vagabonder vers le passé.\r\n\r\nDepuis quelques années, tout semblait lui sourire. Les films, les récompenses, la reconnaissance. Pourtant, au fond de lui, …","tier":2},{"article":{"uuid":"83cabd62-617e-418c-a890-76e205bf5551","slug":"rejet-des-mails-avec-l-en-tete-received-spf","title":"Filtrer les mails selon le résultat SPF","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2025-05-20 16:46","created_at":"2025-05-20 16:46:00","updated_at":"2026-05-12 11:17:15","plain":"Quand on gère un serveur de messagerie, le SPF (Sender Policy Framework) est l'un des premiers remparts contre l'usurpation d'identité. Concrètement, il permet à un domaine de déclarer dans son DNS quelles adresses IP ont le droit d'envoyer des mails en son nom. À la réception, le serveur vérifie cette correspondance et écrit le résultat dans un en-tête : .\r\n\r\nReste à savoir quoi faire de ce résultat. Tous les verdicts SPF ne se valent pas, et rejeter trop large revient vite à perdre des mails légitimes.\r\n\r\nLes codes de retour SPF\r\n\r\nVoici les sept valeurs qu'on peut rencontrer dans , et ce qu'il faut en faire :\r\nCode | Signification | Rejet conseillé |\r\n------|---------------|-----------------|\r\n| L'IP est explicitement autorisée par le domaine | Non |\r\n| L'IP n'est pas autorisée | Oui |\r\n| L'IP n'est probablement pas autorisée | Optionnel |\r\n| Le domaine ne se prononce pas | Non |\r\n| Pas d'enregistrement SPF publié | Optionnel |\r\n| Erreur permanente (syntaxe SPF invalide, boucle…) | Oui |\r\n| Erreur temporaire (DNS injoignable, timeout) | Non recommandé |\r\n\r\nLes deux candidats évidents au rejet automatique sont * et . Le premier dit clairement « cette IP n'a rien à faire ici » ; le second signale un enregistrement cassé, ce qui est rare chez un expéditeur sérieux.\r\n\r\n est plus délicat : beaucoup de domaines mal configurés y atterrissent, donc rejeter sur ce critère seul génère des faux positifs. Mieux vaut l'utiliser comme un signal parmi d'autres (typiquement via un score SpamAssassin) plutôt que comme motif de rejet sec.\r\n\r\n ne doit jamais déclencher un rejet définitif : le problème vient d'un DNS qui ne répond pas, pas du mail lui-même. Un rejet temporaire (code 4xx) est en revanche acceptable, le serveur émetteur réessaiera.\r\n\r\nMise en pratique avec Postfix\r\n\r\nPostfix permet de filtrer sur les en-têtes via la directive . Dans :\r\n\r\n\r\n\r\nPuis dans :\r\n\r\n\r\n\r\nAprès modification, recharger Postfix :\r\n\r\n\r\n\r\nÀ noter : agit sur les en-têtes déjà présents. Si on veut que la vérification SPF soit faite par Postfix lui-même au moment de la réception, le bon outil est plutôt policyd-spf** (paquet sous Debian), qui s'intègre via et permet de rejeter avant même que le mail soit accepté.\r\n\r\nL'approche par scoring avec SpamAssassin\r\n\r\nPlutôt que de couper net, on peut intégrer SPF à un score global. SpamAssassin expose plusieurs règles dédiées :\r\n: ajoute un score significatif\r\n: score modéré\r\n: signale une config cassée\r\n: échec sur l'identité HELO\r\n\r\nL'intérêt du scoring, c'est de combiner SPF avec d'autres signaux (DKIM, DMARC, listes noires, contenu). Un mail qui échoue uniquement à SPF mais passe tout le reste mérite peut-être un passage en spam plutôt qu'un rejet pur. Inversement, un cumul + DKIM cassé + IP sur une RBL ne laisse pas beaucoup de doute.\r\n\r\nQuelques précautions avant de mettre en production\r\n\r\nAvant d'activer un rejet sur , deux réflexes utiles :\r\n\r\nD'abord, regarder les logs en mode passif pendant quelques jours. Loguer les verdicts SPF sans rejeter permet de mesurer le volume concerné et de repérer les expéditeurs légitimes mal configurés (il y en a toujours, y compris des prestataires connus).\r\n\r\nEnsuite, vérifier que les mails forwardés ne sont pas pénalisés. Un mail transféré perd souvent son alignement SPF puisque l'IP de réémission n'est pas celle déclarée par le domaine d'origine. C'est précisément le problème que DKIM et ARC sont censés résoudre, mais tous les serveurs ne les implémentent pas correctement.\r\n\r\nLe SPF est un bon premier filtre, pas une solution complète. Combiné à DKIM et DMARC, il forme la base de l'authentification mail moderne ; isolé, il reste utile mais imparfait."},"score":0.75,"snippet":"…ls en son nom. À la réception, le serveur vérifie cette correspondance et écrit le résultat dans un en-tête : .\r\n\r\nReste à savoir quoi faire de ce résultat. Tous les verdicts SPF ne se valent pas, et rejeter trop large r…","tier":2},{"article":{"uuid":"5510b12a-d647-4b1a-90ba-d421a4927ff7","slug":"configurer-un-client-oauth-2-0-dans-keycloak-guide-complet","title":"Configurer un client OAuth 2.0 / OIDC dans Keycloak","category":"informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-05-16 23:33","created_at":"2025-05-16 23:33:31","updated_at":"2026-05-12 20:39:53","plain":"Keycloak est une solution open source de gestion des identités et des accès (IAM). Cet article décrit la configuration d'un client OAuth 2.0 / OpenID Connect dans Keycloak, en détaillant les options importantes et en montrant comment restreindre l'accès aux utilisateurs ou groupes autorisés.\r\nNote de version. L'interface d'administration a été refondue à partir de Keycloak 19. La notion d'Access Type ( / / ) a disparu au profit des toggles Client authentication et Authorization. Ce guide suit l'UI actuelle (Keycloak 24+).\r\n--\r\n\r\n1. Prérequis\r\nUne instance Keycloak fonctionnelle (version 24 ou supérieure recommandée).\r\nDes droits d'administration sur un realm.\r\nUne application destinée à s'authentifier via OAuth 2.0 / OIDC.\r\nTLS activé sur Keycloak et sur l'application cliente (obligatoire en production).\r\n--\r\n\r\n2. Qu'est-ce qu'un client dans Keycloak ?\r\n\r\nDans Keycloak, un client représente une application ou un service qui interagit avec le serveur d'authentification, soit pour authentifier des utilisateurs, soit pour obtenir des informations sur eux, soit pour protéger ses propres ressources. Il peut s'agir d'une application web, d'une API, d'une application mobile, d'un service interne ou d'un partenaire tiers.\r\n\r\nChaque client est rattaché à un realm (l'espace logique d'authentification) et identifié par un unique. Cet identifiant est transmis lors de toute demande d'authentification ou d'obtention de jeton.\r\n\r\nLa configuration d'un client définit notamment :\r\nles flux OAuth 2.0 autorisés (, , etc.) ;\r\nla capacité ou non du client à conserver un secret (client confidentiel vs public) ;\r\nles URI de redirection acceptées et les origines CORS ;\r\nla durée de vie des jetons et la composition des claims (mappers) ;\r\nles politiques d'autorisation associées (rôles, groupes, attributs).\r\n--\r\n\r\n3. Création du client\r\n\r\n1. Se connecter à la Keycloak Admin Console.\r\n2. Sélectionner le realm cible.\r\n3. Menu Clients > Create client.\r\n\r\nÉtape « General settings »\r\nChamp | Valeur recommandée | Description |\r\n------------------ | ----------------------------------- | ---------------------------------------------------------------------------- |\r\nClient type | | Protocole utilisé. Choisir uniquement pour des intégrations SAML 2.0. |\r\nClient ID | | Identifiant unique du client dans le realm. Apparaît dans les jetons (). |\r\nName | | Libellé d'affichage (facultatif, peut être localisé). |\r\nDescription | Texte libre | Aide à la maintenance. |\r\n\r\nÉtape « Capability config »\r\nToggle | Valeur recommandée | Détail |\r\n------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------ |\r\nClient authentication | pour un backend, pour un SPA | rend le client confidentiel (un secret est généré). rend le client public. |\r\nAuthorization | | À activer uniquement si l'on souhaite utiliser le moteur d'autorisations fine (RBAC/ABAC) de Keycloak. |\r\nStandard flow | | Active le flux Authorization Code, à utiliser systématiquement. |\r\nDirect access grants | | Flux — déconseillé par OAuth 2.1, à n'utiliser que pour des outils internes legacy. |\r\nImplicit flow | | Déprécié par OAuth 2.1, ne pas activer. |\r\nService accounts roles | si clientcredentials | Permet au client de récupérer un jeton pour son propre compte (machine-to-machine). |\r\nOAuth 2.0 Device Auth Grant | (sauf besoin spécifique) | Pour les appareils sans navigateur (TV, CLI sans IHM locale). |\r\nOIDC CIBA Grant | (sauf besoin spécifique) | Authentification déportée (canal hors-bande). |\r\n\r\nÉtape « Login settings »\r\nChamp | Exemple | Description |\r\n----------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------- |\r\nRoot URL | | URL de base de l'application. Permet d'utiliser des chemins relatifs dans les champs suivants. |\r\nHome URL | | Page par défaut après login. |\r\nValid redirect URIs | | URI exactes autorisées pour la redirection après authentification. Éviter les wildcards larges. |\r\nValid post logout redirect URIs | | URI autorisées pour la redirection après déconnexion (RP-Initiated Logout). |\r\nWeb origins | | Origines CORS autorisées. La valeur reprend automatiquement les redirect URIs ; est à proscrire. |\r\nAdmin URL | | Utilisé pour les notifications backchannel (logout global, push not-before). |\r\nBonne pratique. Les redirect URIs doivent être en en production (sauf pour le développement). Spécifier des chemins aussi précis que possible plutôt qu'un wildcard .\r\n--\r\n\r\n4. Authentification du client (Credentials)\r\n\r\nL'onglet Credentials n'apparaît que si Client authentication est sur . Plusieurs méthodes sont disponibles :\r\nMéthode | Usage |\r\n-------------------------------- | ---------------------------------------------------------------------- |\r\nClient Id and Secret | Secret partagé classique. À stocker dans un coffre-fort (Vault, env vars chiffrées). |\r\nSigned JWT | Le client signe un JWT d'assertion avec sa clé privée. Plus sûr qu'un secret. |\r\nSigned JWT with Client Secret | Variante symétrique (HMAC). |\r\nX.509 Certificate | mTLS — recommandé pour les contextes à forte exigence (FAPI, banque). |\r\nImportant. Le secret ne doit jamais être commité dans Git ni embarqué dans un binaire distribué. Pour un projet où les secrets vivent dans , ne commiter que .\r\n--\r\n\r\n5. Types de clients\r\n\r\nDepuis Keycloak 19, le « type » est déduit de la combinaison des toggles. La terminologie OAuth reste utile :\r\nType | Configuration Keycloak | Cas d'usage |\r\n--------------- | ------------------------------------------------------------------- | ------------------------------------------------------------ |\r\nConfidentiel | | Backend serveur (PHP, Node, Java…), BFF, service-to-service. |\r\nPublic | + + PKCE | SPA (React, Vue, Angular), application mobile, CLI native. |\r\nService account | + | Communication machine-to-machine (). |\r\n\r\nLe type « bearer-only » a été retiré : pour une API qui se contente de valider des jetons sans déclencher d'authentification, créer un client confidentiel et n'activer aucun flux.\r\n--\r\n\r\n6. PKCE — recommandé pour tous les clients\r\n\r\nPKCE (Proof Key for Code Exchange, RFC 7636) protège le flux Authorization Code contre l'interception du code d'autorisation. Conçu initialement pour les clients publics, il est aujourd'hui recommandé pour tous les clients, y compris confidentiels, et obligatoire dans OAuth 2.1.\r\n\r\nActivation dans Advanced > Proof Key for Code Exchange Code Challenge Method > .\r\nNe jamais utiliser ; est la seule valeur acceptable.\r\n--\r\n\r\n7. Restreindre l'accès aux utilisateurs ou groupes\r\n\r\nPar défaut, tout utilisateur du realm peut se connecter via n'importe quel client. Deux approches permettent de restreindre cet accès.\r\n\r\nApproche 1 — Authentification basée sur les rôles (simple)\r\n\r\n1. Créer un rôle client dédié, par exemple , dans l'onglet Roles du client.\r\n2. Assigner ce rôle aux utilisateurs ou groupes autorisés (Users > user > Role mapping, ou Groups > group > Role mapping).\r\n3. Dans Authentication > Flows, ajouter une exécution au flux Browser, configurée avec le rôle requis et .\r\n\r\nCette méthode bloque l'authentification elle-même : un utilisateur sans le rôle ne pourra pas se connecter au client.\r\n\r\nApproche 2 — Authorization Services (granulaire)\r\n\r\nÀ utiliser pour gérer des permissions plus fines (ressources, scopes, conditions).\r\n\r\n1. Activer Authorization sur le client.\r\n2. Onglet Authorization > Policies > créer une Group Policy ou Role Policy listant les utilisateurs/groupes autorisés.\r\n3. Onglet Permissions > créer une Scope-Based Permission ou Resource-Based Permission liée à la policy.\r\n4. Côté application, utiliser l'endpoint UMA ou l'adaptateur Keycloak pour évaluer les permissions.\r\n\r\nApproche 3 — Limiter le client scope « roles »\r\n\r\nDans Client scopes > > Scope, désactiver Full scope allowed et n'autoriser que les rôles pertinents. Cela réduit la taille des jetons et limite ce que le client peut « voir » des rôles utilisateurs.\r\n--\r\n\r\n8. Client scopes et mappers\r\n\r\nLes client scopes déterminent les claims présents dans les jetons ( et ).\r\nLes scopes Default sont systématiquement ajoutés à chaque jeton.\r\nLes scopes Optional ne sont ajoutés que si l'application les demande via le paramètre lors de l'authentification.\r\n\r\nPour exposer les groupes d'un utilisateur dans le token :\r\n\r\n1. Créer un client scope (ou réutiliser celui existant).\r\n2. Ajouter un mapper de type Group Membership :\r\nToken Claim Name : \r\nFull group path : (sauf besoin d'arborescence)\r\nAdd to ID token / Access token / Userinfo : selon l'usage.\r\n3. Attacher le scope au client (Default ou Optional).\r\n--\r\n\r\n9. Réglages avancés à connaître\r\nSection | Réglage | Recommandation |\r\n---------------------------------- | -------------------------------- | ---------------------------------------------------------------- |\r\nAdvanced > Fine grain OpenID Connect configuration | | (par défaut) ou pour FAPI. |\r\nAdvanced > Advanced settings | | . |\r\nAdvanced > Advanced settings | | sauf si l'application implémente correctement la spec OIDC Front-Channel Logout. |\r\nAdvanced > Advanced settings | | Renseigner pour une déconnexion globale propre. |\r\nAdvanced > Token Lifespan | | Court (5–15 min). Le refresh token prend le relais. |\r\nSessions | | Aligner sur la politique de session de l'organisation. |\r\n\r\nPour appliquer automatiquement un ensemble cohérent de règles, utiliser les Client Policies du realm (profils pré-définis et ).\r\n--\r\n\r\n10. Checklist de sécurité\r\n[ ] pour tout client qui peut conserver un secret.\r\n[ ] PKCE activé.\r\n[ ] Implicit flow et Direct access grants désactivés.\r\n[ ] Redirect URIs en et sans wildcard inutile.\r\n[ ] Web origins explicites (pas de ).\r\n[ ] Secret stocké dans un coffre-fort, jamais commité.\r\n[ ] Access token court (≤ 15 min) et refresh token rotatif.\r\n[ ] Accès restreint via rôle dédié ou Authorization Services.\r\n[ ] Full scope allowed désactivé si les rôles transportés doivent être limités.\r\n[ ] Logout backchannel ou front-channel configuré.\r\n--\r\n\r\nConclusion\r\n\r\nLa configuration d'un client OAuth 2.0 dans Keycloak repose sur quelques choix structurants — confidentiel ou public, flux activés, PKCE, restriction d'accès — qui ont chacun des implications de sécurité fortes. S'aligner sur OAuth 2.1 (PKCE systématique, pas d'implicit flow, pas de password grant) et utiliser les Client Policies** pour appliquer ces règles à l'échelle du realm évite la plupart des configurations à risque."},"score":0.75,"snippet":"…rtenaire tiers.\r\n\r\nChaque client est rattaché à un realm (l'espace logique d'authentification) et identifié par un unique. Cet identifiant est transmis lors de toute demande d'authentification ou d'obtention de jeton.\r\n…","tier":2},{"article":{"uuid":"ca8c6097-1382-485b-a9b3-eebd6917ded0","slug":"api-first-concevoir-ses-applications-autrement","title":"🚀 API-First : Concevoir ses applications autrement","category":"informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-05-16 23:16:00","created_at":"2025-05-16 23:16:00","updated_at":"2025-05-16 21:19:41","plain":"Et si on arrêtait de développer des applications \"comme avant\" ? L’approche API-First propose de repenser la manière dont nous concevons nos systèmes d’information. Fini le back-end monolithique couplé à un front rigide : place aux APIs, universelles, testables, et réutilisables.\r\n\r\nAPI-First, ce n’est pas seulement exposer des endpoints REST : c’est un changement de paradigme.\r\n--\r\n\r\nQu’est-ce que l’approche API-First ?\r\n\r\nConcrètement, cela signifie que toute la logique métier est exposée via une API, dès la conception. Que ce soit le site web, l'application mobile, ou même un script en ligne de commande, tout passe par l’API, sans exception.\r\n\r\nL’interface utilisateur ne fait que consommer l’API, comme n’importe quel client.\r\n--\r\n\r\nPourquoi adopter cette approche ?\r\n\r\n1. Séparation claire des responsabilités\r\n\r\nL’API devient la \"source de vérité\" métier. Le front peut évoluer sans impacter la logique back, et inversement. On peut même changer totalement de techno front (passer de PHP à React ou Flutter) sans toucher au cœur de l'application.\r\n\r\n2. Réutilisation multi-clients\r\n\r\nUne fois développée, l’API peut être utilisée :\r\n\r\n par le site web,\r\n par une appli mobile,\r\n par un back-office,\r\n par des scripts automatisés,\r\n voire par des clients externes si l'API est publique.\r\n\r\n3. Testabilité et documentation\r\n\r\nEn adoptant une spec comme OpenAPI (Swagger), l’API peut être testée indépendamment de l’interface, documentée automatiquement, et même simulée dès la phase de conception.\r\n\r\n4. Sécurité centralisée\r\n\r\nEn isolant la logique serveur dans une API, on peut gérer :\r\n\r\n l’authentification (token, JWT),\r\n les droits (ACL, RBAC),\r\n les logs d’accès,\r\n la limitation de débit.\r\n--\r\n\r\nQuels défis à relever ?\r\n\r\n1. Organisation du projet\r\n\r\nL’API devient le cœur de l’application. Cela nécessite :\r\n\r\n une couche de services bien définie,\r\n des conventions strictes de nommage, versionnage, structure des réponses.\r\n\r\n2. Gestion des sessions côté client\r\n\r\nOn passe de la session PHP classique à des tokens (Bearer, JWT) stockés dans le client (cookies sécurisés, localStorage, etc.).\r\n\r\n3. Montée en compétences\r\n\r\nLes équipes front doivent apprendre à consommer efficacement une API, à gérer les erreurs, les délais, les formats JSON.\r\n--\r\n\r\nBonnes pratiques\r\n\r\n Spécifier l’API dès la phase de design (OpenAPI / Swagger)\r\n Documenter tous les endpoints avec exemples concrets\r\n Gérer finement les statuts HTTP, les erreurs, et les droits\r\n Tester chaque endpoint indépendamment\r\n Prévoir le versionnage de l’API\r\n--\r\n\r\nExemple concret\r\n\r\nUn projet en PHP peut tout à fait être API-first :\r\n\r\n\r\n\r\nLe front appelle ces endpoints via ou , et les réponses sont des objets JSON formatés uniformément.\r\n--\r\n\r\nEn conclusion\r\n\r\nL’approche API-First est plus qu’un buzzword : c’est une architecture moderne, modulaire et pérenne. Elle impose de penser son application comme une plateforme ouverte, documentée et testable, au bénéfice de toute l’équipe projet.\r\n\r\nElle favorise la qualité, la scalabilité et la maintenabilité. Et dans un monde où les interfaces se multiplient (web, mobile, IoT…), c’est probablement le meilleur choix à long terme.\r\n--\r\n\r\n✉️ Pour aller plus loin :\r\n\r\n https://swagger.io\r\n https://jsonapi.org\r\nhttps://restfulapi.net"},"score":0.75,"snippet":"…rquoi adopter cette approche ?\r\n\r\n1. Séparation claire des responsabilités\r\n\r\nL’API devient la "source de vérité" métier. Le front peut évoluer sans impacter la logique back, et inversement. On peut même changer totaleme…","tier":2},{"article":{"uuid":"e6379d0c-98a6-46ee-bed7-91edeea7b1d7","slug":"domotique-invitation-a-comprendre-avant-d-installer","title":"Domotique : invitation à comprendre avant d’installer","category":"domotique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-05-15 18:00:00","created_at":"2025-05-15 18:00:00","updated_at":"2025-05-01 04:29:30","plain":"J’ai pris un moment pour poser les idées, pour raconter ce que je vois, ce que je comprends, ce que je ressens autour de la domotique moderne. Alors j’ai allumé la caméra, branché le micro, et j’ai enregistré une vidéo : Comprendre Zigbee, Zigbee2MQTT, MQTT et Home Assistant.\r\n\r\nCe n’est pas un tutoriel pur. Ce n’est pas non plus une conférence. C’est un peu entre les deux. Une sorte de récit guidé, où j’essaie de mettre en lumière la logique globale d’une installation domotique, en partant de la base : Zigbee, Zigbee2MQTT, le protocole MQTT, et enfin Home Assistant comme cerveau central. \r\n\r\nL’idée, c’est de partager ma vision. Pas une vérité universelle, mais ma lecture de l’architecture domotique idéale. Comment les objets communiquent entre eux, comment les messages circulent sans bruit, comment chaque brique s’imbrique. On parle souvent de Zigbee sans vraiment comprendre ce qu’il transporte, de MQTT sans réaliser à quel point c’est la colonne vertébrale silencieuse de tout un écosystème. Alors j’ai voulu mettre du sens derrière ces acronymes. Montrer l'enchaînement naturel entre les technologies, sans jargon inutile.\r\n\r\nDans la vidéo, je prends le temps de poser chaque couche. Le protocole Zigbee, d’abord, comme langage radio basse consommation, conçu pour relier des capteurs, des ampoules, des interrupteurs… Puis Zigbee2MQTT, comme traducteur : cette passerelle entre le monde des ondes et celui des messages numériques. Ensuite, MQTT lui-même, léger, rapide, fiable, capable de faire transiter toutes les données entre les composants. Et enfin, Home Assistant, le chef d’orchestre, qui interprète tout ça, prend des décisions, pilote l’ensemble. \r\n\r\nCe n’est pas une vidéo \"plug and play\", mais plutôt une invitation à comprendre avant d’installer. À bâtir une domotique qui ne dépend pas d’un cloud obscur, qui respecte nos choix, notre vie privée, notre indépendance technique. Une domotique qui nous ressemble, parce qu’on la comprend.\r\n\r\nAlors si ça vous intrigue, si vous voulez voir comment je relie les points entre les couches, jettez un œil : \r\n👉 https://youtu.be/TYAPWFvT68Y"},"score":0.75,"snippet":"…tir une domotique qui ne dépend pas d’un cloud obscur, qui respecte nos choix, notre vie privée, notre indépendance technique. Une domotique qui nous ressemble, parce qu’on la comprend.\r\n\r\nAlors si ça vous intrigue, si v…","tier":2},{"article":{"uuid":"9f49d737-0aa4-47f8-bc56-059c531fb60e","slug":"home-assistant-la-version-2025-4-c-est-l-heure-de-continuer-les-tableaux-de-bord","title":"Home Assistant : La version 2025.4 : C'est l'heure de continuer les tableaux de bord !","category":"domotique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-05-01 06:20:00","created_at":"2025-05-01 06:20:00","updated_at":"2025-05-01 04:24:48","plain":"Voici un résumé des principales nouveautés de la version 2025.4 de Home Assistant, publiée le 2 avril 2025 :\r\n--\r\n\r\n🧭 Dashboards\r\nNouveau tableau de bord expérimental \"Areas\" : Génère automatiquement un tableau de bord basé sur les zones définies dans votre maison, avec une interface moderne utilisant des sections et des cartes tuiles. \r\nCarte Horloge : Ajout d'une nouvelle carte affichant l'heure actuelle, avec des options de personnalisation telles que la taille, le fuseau horaire, l'affichage des secondes et le format 12h/24h. \r\n--\r\n\r\n🗣️ Assistant Vocal\r\nAssistant vocal proactif : Votre assistant peut désormais initier des conversations de manière proactive, par exemple pour vous rappeler de fermer une porte laissée ouverte. \r\nConversations continues avec les LLMs : Possibilité de maintenir une conversation fluide avec des modèles de langage, sans avoir à répéter le mot d'activation.\r\nAssistant vocal sur appareils ESPHome : Les assistants vocaux basés sur ESPHome peuvent désormais initier des conversations, élargissant les possibilités d'automatisation vocale. \r\n--\r\n\r\n☁️ Sauvegarde et Restauration\r\nRestauration depuis le Cloud lors de l'onboarding : Si vous utilisez Home Assistant Cloud, vous pouvez désormais restaurer une sauvegarde directement depuis le cloud lors de la configuration initiale d'une nouvelle installation. \r\n--\r\n\r\n🧩 Intégrations\r\nNouvelles intégrations : Ajout de nouvelles intégrations pour étendre la compatibilité avec divers appareils et services.\r\nAméliorations des intégrations existantes : Des améliorations ont été apportées aux intégrations existantes pour une meilleure stabilité et performance.\r\n--\r\n\r\n🧠 Templates\r\nNouvelles fonctions de template : Ajout de nouvelles fonctions pour faciliter la création de templates complexes, offrant plus de flexibilité aux utilisateurs avancés.\r\n--\r\n\r\n⚡ Gestion de l'Énergie\r\nHiérarchie des appareils : Introduction d'une hiérarchie des appareils pour une meilleure organisation et visualisation de la consommation énergétique dans le tableau de bord énergie.\r\n--\r\n\r\nPour plus de détails, consultez l'article officiel de la version 2025.4 sur le site de Home Assistant : 2025.4 Time to continue the dashboards! - Home Assistant"},"score":0.75,"snippet":"…répéter le mot d'activation.\r\nAssistant vocal sur appareils ESPHome : Les assistants vocaux basés sur ESPHome peuvent désormais initier des conversations, élargissant les possibilités d'automatisation vocale. \r\n--\r\n\r\n☁️ …","tier":2},{"article":{"uuid":"55a2c5eb-74d2-4c58-a7d1-19d1d824adf1","slug":"incident-acegrp-lan-2-tout-s-explique-enfin","title":"Incident acegrp.lan (2) : Tout s’explique enfin !","category":"domotique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-04-30 18:01:00","created_at":"2025-04-30 18:01:00","updated_at":"2025-05-01 04:30:09","plain":"Nous sommes lundi matin. Le silence numérique est assourdissant. Aucun service interne ne répond, et les plateformes A5L sur Internet sont totalement inaccessibles. Rien ne fonctionne. C’est un black-out complet. Le genre de panne qui érode patiemment ton calme et ton raisonnement, heure après heure. La veille, j’avais déjà tout tenté ou presque, sans succès. Et maintenant, le temps presse. Je décide de rapatrier la machine hôte qui fait tourner le NAS, la pièce centrale du puzzle. Ce mini-serveur, habituellement discret et stable, est suspect numéro un. Peut-être qu’en le branchant localement, j’aurai enfin un retour vidéo. Je tente une nouvelle approche : je le connecte à un boîtier d’acquisition HDMI, en utilisant simplement un câble DisplayPort vers HDMI. L’idée est de faire apparaître quelque chose, n’importe quoi, dans OBS, sur mon poste de travail. Mais tout ce que j’obtiens, c’est un écran noir. Rien. Pas un pixel.\r\n\r\nÀ cet instant, tout devient flou. Je commence à remettre en question chaque élément de la chaîne. Le boîtier d’acquisition : fonctionne-t-il réellement ? Le câble : est-il compatible ? Le port DisplayPort : est-il actif au démarrage ? Et la machine elle-même ? Est-ce qu’elle boote seulement ? Je doute de tout. Ce sont les moments les plus pénibles. Quand la panne est silencieuse. Quand tout semble à la fois en cause, et que rien ne parle. C’est dans ces phases de doute profond que je suis le plus vulnérable. J’ai souvent réagi à l’instinct dans ces moments-là, en allant droit vers des actions irréversibles. Formater un disque, réinstaller un système, démonter un châssis complet… sans prendre le temps d’analyser, de poser les bonnes questions. Je le sais, je l’ai déjà vécu, mais aujourd’hui, j’essaie de faire mieux. Je prends une pause. J’observe. J’écoute.\r\n\r\nJe redémarre plusieurs fois la machine, et à chaque fois, j’entends trois bips, espacés, lents, presque inquiétants. Le disque dur semble tournoyer, sans conviction. Pas de réelle activité. L’écran reste noir. Et c’est là que je me souviens d’un paramètre que je n’ai pas vérifié : la configuration de sortie dans OBS. J’ouvre les paramètres d’entrée vidéo, et je me rends compte que la résolution, la fréquence, tout est réglé comme si j’attendais le signal d’une console de jeu en 1080p. Mais un BIOS ? Il sort en 640x480, peut-être 800x600 dans le meilleur des cas… Je change les réglages, ajuste la fréquence, et je relance.\r\n\r\nEt là, comme un miracle numérique, l’image apparaît. Épurée. Grise. En anglais. \r\n« Press \nCree le: 06/04/2020 a 20h38; Nom: Dupont; Prenom: Jean; Naissance: 01/01/1970 a Lyon; Adresse: 999 avenue de france 75001 Paris; Sortie: 06/04/2020 a 20h38; Motifs: \nSource : https:www.lemondeinformatique.fr/actualites/lire-attestation-de-deplacement-sur-mobile-le-generateur-de-qr-code-disponible-78675.html\nCovid-19 : Google libère les données de géolocalisation dans 131 pays\nQuelques jours après Orange, c'est au tour de Google de lâcher dans la nature les données de géolocalisation - anonymisées - des centaines de millions d'utilisateurs de son service Maps. « À partir d'aujourd'hui, nous publions une version anticipée de nos rapports sur la mobilité communautaire COVID-19 pour donner un aperçu de ce qui a changé en réponse au travail à domicile, au logement sur place et à d'autres politiques visant à aplanir la courbe de cette pandémie, a expliqué la société dans un billet de blog. Au total, une analyse de l'évolution des déplacements a été effectuée pour 131 pays dont la France, accessible depuis ce site. Les données pour la France sont assez représentatives des conséquences des mesures de confinement prises par le gouvernement pour faire face à la pandémie Covid-19 qui affecté 59 105 personnes et provoqué le décès de 4 503 d'entre elles d'après les données de Santé Publique France au 2 avril 2020. Parmi les principaux enseignements du rapport concernant l'Hexagone, Google fait état d'une chute de 88% des déplacements pour se rendre dans des magasins, restaurants, cafés ou encore des parcs de loisirs, musés, bibliothèques ou encore cinémas. Covid-19 Evolution des déplacements en France selon les données de géolocalisation anonymisées émanant de Google Maps. (crédit : Google) Concernant les commerces alimentaires et les pharmacies, la baisse est moindre (-72%) qui s'explique par la mise en place de dérogations pour permettre aux Français de se rendre dans des commerces pour répondre à des besoins de première nécessité. Les trajets vers les parcs et places publiques sont aussi en chute libre (-82%), tout comme les grands lieux de transits et de transports (stations, gares...) affichant un recul abyssal de 87%. En revanche, les déplacements vers les lieux de travail sont, certes, également touchés (-56%) preuve que le télétravail - ou la contrainte liée au chômage partiel et donc le fait de rester confiné à la maison - fonctionnent à plein mais aussi qu'une bonne partie de la population poursuit ses déplacements à titre professionnel vers leurs lieux de travail, bénéficiant également d'une possible dérogation. A noter que l'étude de Google s'intéresse aux évolutions des déplacements par régions. L'occasion de remarquer par exemple que l'Ile-de-France tient la palme en matière de recul des déplacements vers les lieux de travail (-63%), pouvant s'expliquer pour une prédisposition « naturelle » des salariés pour le télétravail. Source : https:www.lemondeinformatique.fr/actualites/lire-covid-19-google-libere-les-donnees-de-geolocalisation-dans-131-pays-78674.html\n3 000 machines avec SQL Server infectées par jour depuis 2018\nChaque jour depuis deux ans entre 2 à 3 000 serveurs dédiés à Microsoft SQL Server sont contaminés dans le monde. D'après une dernière étude de Guardicore, les principaux pays concernés sont la Chine, l'Inde, les Etats-Unis, la Corée du Sud et la Turquie. Les entreprises ayant des activités à l'international dans ces pays ont donc intérêt à redoubler de vigilance, leurs systèmes étant susceptibles d'être victimes d'attaques aussi variées que redoutables : DDoS, backdoors, exécution de logiciels malveillants de contrôle d'accès à distant, cryptomineurs en font parti. « Les victimes appartiennent à divers secteurs industriels, notamment les soins de santé, l'aviation, l'informatique et les télécommunications et l'enseignement supérieur », indique Guardicore Labs. Le premier incident de ce type a avoir été identifé par Guardicore Labs remonte à mai 2018 via son réseau de capteurs mondial (Global Sensors Network) servant d'honeypot. Depuis, un pic d'attaques ciblant les serveurs MS SQL Server a été enregistré en décembre dernier. En analysant de près les fichiers de logs, les chercheurs en sécurité du fournisseur ont été en mesure de déterminer que 60% des machines touchées restent infectées pour une période courte de temps, mais que près de 20% restent vulnérables pendant une semaine voire plus laissant le temps aux cyberattaquants d'agir. « Nous avons remarqué que 10% des victimes ont été re-infectés par un malware », indique Guardicore Labs. « Ce modèle de réinfection a déjà été observé dans l'analyse de la campagne Smominru, et suggère que la suppression des logiciels malveillants se fait souvent de manière partielle, sans enquête approfondie sur la cause profonde de l'infection ».\nEliminer la concurrence pour régner en maitre sur les systèmes infectés Au global, ces attaques baptisées « Vollgar » par Guardicore Labs émanent de plus de 120 adresses IP. La brèche initiale exploitée commence avec des attaques par force brute pouvant aboutir à des changements de configuration dans les bases de données permettant de préparer le terrain à de futures exécutions de commandes malveillantes. Par la suite, les pirates effectuent plusieurs étapes pour rendre le système le plus ouvert possible, en commençant par la validation de certaines classes COM (WbemScripting.SWbemLocator, Microsoft.Jet.OLEDB.4.0 et Windows Script Host Object Model. « Ces classes prennent en charge à la fois les scripts WMI et l'exécution de commandes via MS-SQL, qui seront ensuite utilisées pour télécharger le binaire malveillant initial », indique le fournisseur. « L'attaquant Vollgar s'assure également que les fichiers stratégiques tels que cmd.exe et ftp.exe disposent des autorisations d'exécution ». De quoi permettre l'installation de backdoors et des attaques par escalade de privilèges utilisateurs. Bien souvent les pirates essaient par tous les moyens d'éliminer la concurrence. Sans surprise, c'est également le cas ici encore avec des efforts réalisés en semant leur trace. Cela passe par l'effacement de la clé HKLM\\SOFTWARE\\Microsoft\\Command Processor\\Autorun utilisée pour des attaques persistantes ou encore de valeurs depuis Image File Execution Options. « En supprimant ces valeurs, Vollgar garantit qu'aucun autre malware n'est attaché aux processus légitimes, tels que cmd.exe, ftp.exe, net.exe et les hôtes de script Windows tels que wscript.exe et cscript.exe ». Des charges malveillantes peuvent ensuite être activées. « La charge utile initiale, nommée SQLAGENTIDC.exe ou SQLAGENTVDC.exe, commence par exécuter taskkill sur une longue liste de processus, dans le but d'éliminer les concurrents et de gagner plus de ressources informatiques. Ces processus incluent Rnaphin.exe, xmr.exe et winxmr.exe, pour n'en nommer que quelques-uns. Ensuite, la charge utile se copie dans le dossier AppData de l'utilisateur et exécute la copie. Le nouveau processus vérifie la connectivité Internet, puis interroge Baidu Maps pour obtenir l'IP et la géolocalisation de la victime qu'il envoie ensuite au C&C. Ensuite, quelques charges utiles supplémentaires sont téléchargées sur la machine infectée - plusieurs modules RAT et un cryptominer basé sur XMRig ».\nDeux serveurs C&C opérés depuis la Chine Deux serveurs de commande et de contrôle (C&C) ont été identifiés par Guardicore Labs en lien avec les attaques Vollgar, dotés de capacités en téléchargement de fichiers, installation de services Windows, enregistreurs de frappes, captures d'écran, exécution d'un terminal shell dynamique, activation des caméras et microphones, initialisation d'attaques DDoS... Pour se prémunir de ce type d'attaques, le fournisseur propose un script Powershell permettant de détecter ce vecteur d'attaque. Contrôler les communications réseau avec des serveurs distants et activer des blocages en conséquence est bien évidemment recommandé, en se basant par exemple sur un service de réputation adossé à son firewall. Source : https:www.lemondeinformatique.fr/actualites/lire-3-000-machines-avec-sql-server-infectees-par-jour-depuis-2018-78660.html\nLe ransomware visant Marseille perturbe le décompte des décès Covid-19\nLes dommages des ransomwares ont parfois des conséquences inattendues et celui qui a touché la ville de Marseille il y a quelques semaines refait ainsi parler de lui. Alors que la ville se remet petit à petit des impacts sur son système d'information de cette cyberattaque - à l'image d'Antibes et également de la Métropole Provence Alpes Côte d'Azur - l'INSEE a publié vendredi dernier les données de mortalité liées au coronavirus. Quel rapport ? En raison du ransomware, les services administratifs de la ville de Marseille n'ont pas pu faire remonter les informations requises à des fins de traitement statistiques demandées par l'institut. « La rapidité de remontée de ces informations varie également selon les départements et pourrait être perturbée par les mesures de confinement, de même que le choix des modalités de transmission (dématérialisé ou courrier postal). Les dernières données quotidiennes sont donc à prendre avec précaution ; elles seront révisées », a précisé l'INSEE dans une note méthodologique. « Depuis le 13 mars, la mairie de Marseille n’a pu transmettre aucun nouveau décès du fait d’un problème technique. C’est pourquoi les données des Bouches-du-Rhône sont pour le moment arrêtées au 11 mars ».\nUn retour temporaire au registre papier Contactée par notre confrère LCI, l'INSEE a apporté la précision suivante : « La comptabilisation des décès est, en effet, suspendue en raison d’un problème informatique à la mairie de Marseille [...] La seule commune de Marseille enregistrant la moitié des décès pour toutes les Bouches-du-Rhône, publier des résultats de ce département sans ses chiffres serait peu représentatif ». Et la mairie de Marseille d'indiquer de son côté : « L'attaque a mis à mal nos capacités et nous n'avons pas pu envoyer nos informations à l'Insee dans les délais requis. » En attendant la mise à jour du logiciel habituellement utilisé pour saisir et transmettre ses données à l'Insee et à la Préfecture, la ville de Marseille se résout en attendant à tenir à jour un registre papier. Ce problème intervient dans un contexte de tensions autour du protocole à base de chloroquine promue par la professeur Raoult de l'IHU Méditerranée. Source : https:www.lemondeinformatique.fr/actualites/lire-le-ransomware-visant-marseille-perturbe-le-decompte-des-deces-covid-19-78684.html\nles dépenses en infrastructure cloud ont dépassé les dépenses en infrastructure informatique traditionnelle\nSelon le cabinet de recherche IDC, le total des dépenses des utilisateurs finaux en produits d'infrastructure informatique (serveur, stockage d'entreprise et commutateur réseau) pour les environnements cloud, y compris le cloud public et privé, a renoué avec la croissance au quatrième trimestre 2019 après deux trimestres consécutifs de baisse. La croissance de 12,4 % d'une année sur l'autre au 4T19 a généré 19,4 milliards de dollars de dépenses. Les résultats du quatrième trimestre ont également permis de faire passer l’année au vert avec une croissance annuelle de 2,1 % et des dépenses totales de 66,8 milliards de dollars pour 2019. Parallèlement, le marché global des infrastructures informatiques a éprouvé de la difficulté après sa solide performance en 2018, en hausse de 3,3 % à 38,1 milliards de dollars au 4T19 mais en baisse de 1,1 % à 134,4 milliards de dollars pour l'ensemble de l'année. L'infrastructure informatique non cloud a baissé de 4,6 % à 18,7 milliards de dollars pour le trimestre et a baissé de 4,1 % à 67,7 milliards de dollars pour l'année. Au 4T19, la croissance des dépenses en infrastructure informatique cloud a été tirée par le segment du cloud public, qui a augmenté de 14,5 % d'une année sur l'autre pour atteindre 13,3 milliards de dollars; le cloud privé a augmenté de 8,2 % pour atteindre 6,1 milliards de dollars. Comme le segment global est généralement à la hausse, il a tendance à être plus volatil au niveau trimestriel, car une partie importante du segment informatique du cloud public est représentée par quelques fournisseurs de services à grande échelle. Après un milieu d'année plus faible, le cloud public a terminé 2019 à peine en hausse de 0,1 % à 45,2 milliards de dollars. Le cloud privé a augmenté de 6,6 % en 2019 pour atteindre 21,6 milliards de dollars. Alors que les investissements dans l'infrastructure informatique cloud continuent d'augmenter, avec des fluctuations durant les trimestres intermédiaires, IDC note que ce secteur approche le point où les dépenses en infrastructure informatique cloud dépassent systématiquement les dépenses en infrastructure informatique non cloud. Le quatrième trimestre 2019 a marqué le troisième trimestre consécutif de leadership informatique cloud avec une part annuelle légèrement inférieure au point médian (49,7 %). Désormais, IDC s'attend à ce que l'infrastructure informatique cloud reste au-dessus de 50 % du marché de l'infrastructure informatique aux niveaux trimestriel et annuel, atteignant 60,5 % par an en 2024. Dans les trois domaines technologiques de l'infrastructure informatique, les plateformes de stockage ont connu la croissance la plus rapide d'une année sur l'autre au 4T19 à 15,1 %, les dépenses atteignant 6,6 milliards de dollars. Les plateformes de calcul ont augmenté de 14,5 % d'une année sur l'autre avec 10,8 milliards de dollars de dépenses, tandis que les commutateurs réseau ont diminué de 3,9 % pour s'établir à 2,0 milliards de dollars. Pour l'ensemble de l'année 2019, les commutateurs réseau ont dominé avec une croissance d'une année sur l'autre de 5,0 % et 8,2 milliards de dollars de dépenses, suivis des plateformes de stockage avec une croissance de 1,9 % et des dépenses de 23,1 milliards de dollars, et des plateformes de calcul avec une croissance de 1,5 % et des dépenses de 35,5 milliards de dollars. Prévisions du marché de l'infrastructure informatique cloud Après avoir pris en comptes les répercussions de la pandémie COVID-19 et de la crise économique qui s’en est suivi, IDC estime qu’en 2020 les dépenses en infrastructure informatique cloud vont s’élever à 69,2 milliards de dollars, soit une augmentation annuelle prévue de 3,6 % par rapport à 2019. Les dépenses d'infrastructure informatique non cloud sont devrait reculer de 9,2 % pour atteindre 61,4 milliards de dollars en 2020. Ensemble, les dépenses globales en infrastructure informatique devraient reculer de 2,9 % pour s'établir à 130,6 milliards. La pandémie de COVID-19 représente une grave menace pour la croissance mondiale. Avant l'épidémie, la croissance mondiale prévue était de 2,3 % (aux taux de change du marché) en 2020. L'émergence de l'épidémie en Chine change la donne et la croissance attendue pour 2020 est désormais de -0,2 %, la plus lente depuis la crise financière mondiale. L'effet négatif sur la croissance proviendra à la fois des canaux de demande et d'approvisionnement. D'une part, les mesures de quarantaine, la maladie et le sentiment négatif des consommateurs et des entreprises vont supprimer la demande dans des domaines spécifiques, tandis que certaines poches de demande feront surface, telles que les plateformes cloud pour les charges de travail de communication et de collaboration. Dans le même temps, la fermeture de certaines usines et la perturbation des chaînes d'approvisionnement créeront des goulots d'étranglement. IDC s'attend à ce que ces effets soient répartis de manière inégale dans le paysage du marché. « Alors que le début de 2020 a été marqué par des problèmes de chaîne d'approvisionnement qui devraient être résolus avant la fin du deuxième trimestre, l'impact économique négatif affectera les dépenses en CAPEX des entreprises », a déclaré Kuba Stolarski, directeur de la recherche, Infrastructure Systems, Platforms and Technologies. chez IDC. « Alors que les budgets informatiques des entreprises se resserrent tout au long de l'année, le cloud public verra une augmentation de la demande de services. Cette augmentation proviendra en partie de la montée en puissance des employés travaillant à domicile utilisant des outils de collaboration en ligne, mais aussi de la migration de la charge de travail vers le cloud public tandis que les entreprises cherchent des moyens d'économiser de l'argent pour l'année en cours. Une fois la pandémie passée, IDC s'attend à ce qu'une partie de cette nouvelle demande de services cloud reste constante à l'avenir ». Les nouvelles prévisions quinquennales d'IDC prévoient que les dépenses d'infrastructure informatique cloud atteindront 100,1 milliards de dollars en 2024 avec un taux de croissance annuel composé (TCAC) de 8,4 %. Les dépenses d'infrastructure informatique hors cloud diminueront légèrement à 65,3 milliards de dollars avec un TCAC de -0,7 %. L'infrastructure informatique totale devrait croître à un TCAC de 4,2 % et produire des dépenses de 165,4 milliards de dollars en 2024. Source : IDC Source : https:cloud-computing.developpez.com/actu/299145/IDC-les-depenses-en-infrastructure-cloud-ont-depasse-les-depenses-en-infrastructure-informatique-traditionnelle-pour-le-troisieme-trimestre-consecutif/\nZoom a routé des appels vers la Chine\nZoom a routé des appels vers la Chine. Le 3 avril, Eric Yuan, CEO de Zoom, a admis que des appels dans son application avaient été routés par erreur vers la Chine. Cela s’est déroulé au démarrage de la pandémie, quand l’entreprise a augmenté sa capacité à gérer la demande, en commençant par Wuhan. Dans la précipitation, l’Américain avoue ne pas avoir appliqué ses habituelles bonnes pratiques de géo-fencing. Les chercheurs canadiens qui ont identifié le problème ont également découvert que le contenu de conversations Zoom entre deux utilisateurs nord-américains pouvait être chiffré avec des clés venant de serveurs situés en Chine. De nouveaux problèmes pour l’Américain déjà fortement critiqué pour ses failles de sécurité. Source : https:www.lemondeinformatique.fr/actualites/lire-telex-ap-hp-imprime-des-equipements-en-3d-zoom-a-route-des-appels-vers-la-chine-edge-detrone-firefox-78687.html\nChrome : face au coronavirus, Google fait marche arrière vis-à-vis des cookies\nAfin d’assurer la stabilité des sites web en ces temps de crise, Google a décidé de suspendre une importante mesure de sécurité introduite en février dernier. Face à la crise du Covid-19, Google rétropédale sur une nouvelle mesure de sécurité introduite en février dernier avec l’arrivée de Chrome 80. A savoir le blocage par défaut des cookies de tiers. Ces derniers, en effet, peuvent représenter un risque de vol de données personnelles ou de piratage (attaques de type Cross-Site Request Forgery). Pour éviter le blocage de cookies tiers, les éditeurs de site sont désormais contraints de les identifier explicitement, et donc de donner d’une certaine manière leur approbation. Concrètement, cela revient à rajouter un tag baptisé « SameSite » dans le code du site web pour l’ensemble des cookies utilisés.\nA découvrir aussi en vidéo Mais avec la crise du coronavirus, beaucoup d’organisations n’ont pas eu le temps d’appliquer ces changements. Et dans certains cas, cela risque de casser le fonctionnement de leur site. C’est le cas, par exemple, si elles utilisent des services d’identification tiers tels que Facebook Login. Afin de préserver la stabilité des sites, Google a donc décidé de suspendre cette mesure de sécurité. Source : Google Source : https:www.01net.com/actualites/chrome-face-au-coronavirus-google-fait-marche-arriere-vis-a-vis-des-cookies-1889721.html\nAu Royaume-Uni, des antennes 5G incendiées à cause d’une théorie du complot\nBirmingham, Liverpool, Melling (Meyerside)… au cours de la semaine écoulée, trois antennes téléphoniques ont été incendiées au Royaume-Uni, rapporte la presse britannique. Au moins quatre antennes ont été visées par des tentatives de dégradations durant le week-end du 4 et 5 avril, rapporte l’opérateur Vodafone — un départ d’incendie a également été signalé à Belfast, en Irlande du Nord. Ces trois incendies, dont l’origine criminelle ne fait guère de doute, se sont produits alors qu’une théorie du complot très populaire outre-Manche fait le lien entre l’apparition du coronavirus et le déploiement des antennes 5G dans le pays. Particulièrement fantasque, cette hypothèse, dont il existe plusieurs variantes, prétend soit que l’épidémie a été « inventée » pour « couvrir » les conséquences sur la santé de la 5G, soit que les ondes 5G « chassent » l’air des poumons et ont facilité ou provoqué les contaminations de Covid-19. Ces théories ont également été propagées par certaines célébrités britanniques, dont Amanda Holden, la juge de l’émission de télé-réalité « Britain’s got talent », qui a diffusé, à ses presque deux millions d’abonnés Twitter, une pétition liant la 5G à l’épidémie. Dans un communiqué, le régulateur des télécommunications britannique précise : « Nous avons reçu plusieurs rapports de vandalisme visant des antennes téléphoniques, mais aussi d’agressions d’employés des télécommunications, inspirées par des théories cinglées du complot qui circulent sur Internet. Les responsables de ces actes seront poursuivis avec la plus grande sévérité. » Des salariés d’une filiale de British Telecom (BT) chargés d’installer les raccordements à Internet dans les foyers britanniques ont également publié plusieurs appels au calme sur les réseaux sociaux, après plusieurs incidents au cours desquels des employés ont été menacés dans la rue. Le maire de Liverpool, Joe Anderson, a dit avoir reçu des menaces après avoir dénoncé ces théories.\nDes limitations sur les réseaux sociaux Certains réseaux sociaux, dont YouTube, ont annoncé qu’ils mettraient en place de nouvelles mesures pour limiter la diffusion des vidéos complotistes liant la technologie 5G à l’épidémie de Covid-19 : « Nous avons commencé à diminuer la place des vidéos qui promeuvent les théories du complot sur la 5G et l’épidémie, qui désinforment nos utilisateurs de manière dangereuse. » Les vidéos devraient désormais apparaître moins fréquemment dans les suggestions de vidéos à regarder, qui sont une gigantesque source de trafic sur la plate-forme. Sur Facebook, une recherche « 5G coronavirus » affiche, dans ses premiers résultats, plusieurs messages défendant cette théorie du complot, avant ceux des autorités sanitaires, a pu constater Le Monde, lundi matin. Mais le problème ne touche pas que les réseaux sociaux : le régulateur des médias britannique a également sanctionné une radio locale qui avait donné une large place sur son antenne à une personne propageant cette théorie.\nLire aussi Facebook, YouTube… les grandes plates-formes d’Internet face au défi du coronavirus Ces attaques contre le réseau téléphonique inquiètent également les responsables du réseau de santé britannique. Stephen Powis, le directeur médical du National Health Service, le service de santé britannique, a vivement dénoncé ces actes de vandalisme : « La réalité est que les réseaux mobiles sont absolument critiques pour nous tous, alors que nous demandons à tous les citoyens de rester chez eux et de ne pas voir leurs parents et amis. Mais plus particulièrement, ces réseaux sont utilisés par nos services de secours et les travailleurs du système de santé, et je suis totalement furieux, totalement dégoûté de voir qu’il y a des attaques contre les infrastructures mêmes qui nous permettent de répondre à cette urgence sanitaire. » Les antennes incendiées ces derniers jours n’étaient pas toutes des antennes 5G. Selon la BBC, au moins l’une des tours incendiées semblait ne pas contenir d’antenne 5G. Source : https://www.lemonde.fr/pixels/article/2020/04/06/au-royaume-uni-des-antennes-5g-incendiees-a-cause-d-une-theorie-du-complot-sur-le-coronavirus60357184408996.html"},"score":0.75,"snippet":"…pes différentes", explique Royal Hansen, l'un des premiers responsables SRE pour Gmail et l'actuel vice-président de l'ingénierie de la sécurité de Google. "La fonction SRE est une approche de la fiabilité qui est la mei…","tier":2},{"article":{"uuid":"9710aeae-eadf-4f2e-b776-c6e1c2f10d33","slug":"l-assurance-maladie-me-doit-l-argent","title":"L'Assurance Maladie me doit de l'argent » : anatomie d'une arnaque par hameçonnage","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:05","created_at":"2020-04-17 18:05:20","updated_at":"2026-05-12 20:26:45","plain":"Un beau matin, un courriel atterrit dans la boîte de réception. L'expéditeur affiche fièrement « Assurance Maladie », l'objet annonce un remboursement à percevoir, et un lien promet d'expliquer la marche à suivre pour récupérer la somme due. Tout semble en ordre. Et pourtant, à peine la souris approchée du lien, plusieurs garde-fous se déclenchent les uns après les autres : Thunderbird signale une tentative de fraude, Firefox refuse de charger la page, et le site cible n'a rien à voir avec . Bienvenue dans le monde du phishing, ou hameçonnage en français.\r\n\r\n\r\n\r\nCe billet revient sur l'anecdote en détail, mais surtout l'utilise pour décortiquer le mécanisme général de ce type d'arnaque, comprendre pourquoi elle fonctionne sur tant de personnes, et adopter quelques réflexes simples qui suffisent à s'en prémunir dans la quasi-totalité des cas.\r\n\r\n1. Qu'est-ce que le phishing ?\r\n\r\nLe terme phishing est un mot-valise construit sur l'anglais fishing (la pêche) et phreaking (piratage téléphonique). L'image est exacte : l'escroc lance un appât — un message crédible — et attend qu'une victime morde. Sa cible n'est pas un ordinateur ni une faille technique, c'est un humain. Plus précisément, c'est la confiance, l'inattention ou l'envie de cette personne.\r\n\r\nConcrètement, une attaque par hameçonnage consiste à se faire passer pour un organisme légitime (banque, impôts, Assurance Maladie, opérateur télécom, service de livraison, etc.) afin d'obtenir de la victime qu'elle livre d'elle-même des informations sensibles : identifiants de connexion, numéro de carte bancaire, copie de pièce d'identité, parfois même un virement direct.\r\n\r\nTrois ingrédients reviennent à chaque fois :\r\nUne marque connue dont l'identité visuelle est imitée (logo, couleurs, ton du message).\r\nUn prétexte émotionnel qui pousse à agir vite : remboursement à percevoir, colis bloqué, compte suspendu, amende impayée.\r\nUn lien qui paraît légitime mais redirige en réalité vers un site contrôlé par l'attaquant.\r\n\r\nL'arnaque ameli.fr coche les trois cases.\r\n\r\n2. Décorticage du courriel reçu\r\n\r\nLe message annonce un versement de l'Assurance Maladie. Le scénario est habilement choisi : recevoir de l'argent flatte, intrigue, et désarme la vigilance. Personne ne se méfie d'un cadeau. Pourtant, en regardant de plus près le lien embarqué dans le message, on découvre une adresse pour le moins surprenante :\r\n\r\n\r\n\r\nTrois éléments doivent immédiatement alerter :\r\n\r\n1. Le domaine n'est pas . Le vrai domaine, lu de droite à gauche en partant du dernier point, est — un hébergeur sud-coréen. Le reste () est un sous-domaine, et le mot n'est qu'un nom de fichier choisi pour tromper. Aucun service public français n'héberge ses pages chez un hébergeur étranger commercial.\r\n2. Le protocole est , pas . Toute page officielle traitant de données personnelles ou bancaires utilise aujourd'hui une connexion chiffrée. Un site qui demande des informations sensibles en clair signe son illégitimité.\r\n3. Les segments sont des marqueurs typiques de campagnes de phishing automatisées : chaque destinataire reçoit un identifiant unique, ce qui permet à l'attaquant de suivre qui a cliqué et d'affiner ses prochaines vagues.\r\n\r\nLire l'adresse d'un lien avant de cliquer dessus est donc la première compétence à acquérir. Sur un ordinateur, il suffit de survoler le lien sans cliquer : l'adresse réelle apparaît en bas de la fenêtre du navigateur ou du client de messagerie.\r\n\r\n3. Les garde-fous techniques font (parfois) leur travail\r\n\r\nDans le cas raconté ici, les outils ont parfaitement joué leur rôle. Thunderbird, le client de messagerie, a détecté que le texte affiché du lien ne correspondait pas à sa destination réelle et a affiché un avertissement clair.\r\n\r\n\r\n\r\nCette détection repose sur une règle simple mais efficace : si le texte visible du lien ressemble à une URL (par exemple ) mais que la destination effective pointe ailleurs, c'est un signal extrêmement fort de tentative de tromperie. Aucun site légitime ne fait cela.\r\n\r\nLe second rempart est intervenu côté navigateur. Firefox, en suivant malgré tout le lien, a interrogé une base de sites malveillants connus (le service Google Safe Browsing, partagé entre les principaux navigateurs) et a bloqué l'accès.\r\n\r\n\r\n\r\nCes protections sont précieuses, mais il faut bien comprendre leurs limites :\r\nElles arrivent toujours en retard. Une nouvelle campagne de phishing fonctionne pendant plusieurs heures, parfois plusieurs jours, avant d'être signalée et ajoutée aux listes noires. Les premières victimes ne sont jamais protégées par ces filtres.\r\nElles peuvent être contournées. L'utilisateur a la possibilité d'ignorer l'avertissement, comme dans l'exemple où la curiosité l'a emporté.\r\nElles ne couvrent pas tous les canaux. Un SMS, un appel téléphonique, un message sur les réseaux sociaux ne déclenchent pas ces alertes.\r\n\r\nLa vigilance humaine reste donc l'ultime ligne de défense, et c'est précisément sur elle que mise l'escroc.\r\n\r\n4. Pourquoi ça marche aussi bien\r\n\r\nComprendre pourquoi tant de personnes se font piéger malgré les avertissements aide à mieux résister. Plusieurs ressorts psychologiques sont systématiquement exploités.\r\n\r\nL'argument d'autorité\r\n\r\nLe message émane d'un organisme officiel, dont la légitimité ne se discute pas. L'Assurance Maladie, les impôts, la banque, La Poste : la marque seule impose le respect et désamorce le doute. L'escroc le sait et choisit toujours une institution familière de sa cible.\r\n\r\nL'urgence ou l'opportunité\r\n\r\nLe cerveau humain traite mal les décisions rapides. Soit le message annonce une catastrophe imminente (« votre compte sera suspendu sous 24 h »), soit il fait miroiter un gain immédiat (« un remboursement de 38,47 € vous attend »). Dans les deux cas, la fenêtre de réflexion se réduit, et c'est exactement l'effet recherché.\r\n\r\nLe mimétisme visuel\r\n\r\nLogos, couleurs, polices, pieds de page : tout est copié à l'identique depuis le vrai site. Pour un œil non entraîné, rien ne distingue le faux du vrai. Et pour cause, le faux a souvent été fabriqué en quelques minutes à partir du code source du vrai.\r\n\r\nLe coût de la vérification\r\n\r\nVérifier prend du temps : ouvrir un onglet, taper l'adresse, se connecter, retrouver son mot de passe. Cliquer ne coûte rien. À court terme, le cerveau choisit toujours la voie la moins coûteuse — et c'est par là que l'escroc s'invite.\r\n\r\n5. La règle d'or : ne jamais cliquer sur un lien d'argent\r\n\r\nDe cette anecdote se dégage un principe qui mérite d'être affiché en grand au-dessus de chaque boîte de réception :\r\nLorsqu'un organisme annonce un versement, un remboursement, un trop-perçu ou tout autre mouvement d'argent en sa faveur, on ne clique jamais sur le lien du courriel. On accède au site par ses propres moyens.\r\n\r\nConcrètement, cela signifie :\r\nOuvrir un nouvel onglet du navigateur.\r\nTaper l'adresse à la main dans la barre d'adresse, ou la sélectionner dans ses favoris.\r\nSe connecter à son espace personnel comme on le fait d'habitude.\r\nVérifier si l'information annoncée par le courriel s'y retrouve réellement.\r\n\r\nDans neuf cas sur dix, l'espace personnel ne mentionne aucun remboursement, et l'origine frauduleuse du message est confirmée. Dans le dixième cas, le remboursement est bien réel, et il sera traité depuis la source officielle sans avoir suivi le moindre lien suspect.\r\n\r\n\r\n\r\nCette règle vaut pour tous les organismes : Assurance Maladie, banques, impôts, CAF, opérateurs, plateformes de commerce. Elle ne demande aucune compétence technique et bloque l'écrasante majorité des tentatives.\r\n\r\n6. Les autres signaux qui doivent éveiller le doute\r\n\r\nAu-delà du lien lui-même, plusieurs détails trahissent souvent un courriel d'hameçonnage. Aucun n'est rédhibitoire à lui seul, mais leur cumul ne trompe pas.\r\n\r\nL'adresse de l'expéditeur. Le nom affiché peut être falsifié à volonté, mais l'adresse email réelle est plus difficile à maquiller. Une adresse en n'a rien d'officiel : seules les adresses se terminant par ou le sont. La règle se généralise : le domaine légitime de chaque organisme est un et un seul, et il s'apprend une fois pour toutes.\r\n\r\nLes fautes d'orthographe et de syntaxe. Une administration française dispose de relecteurs. Un escroc traduit souvent depuis une autre langue, parfois à l'aide d'outils automatiques. Tournures bancales, accents oubliés, fautes d'accord doivent mettre la puce à l'oreille. À noter cependant : avec la généralisation des modèles de langue, ces erreurs disparaissent et ce critère perd progressivement de sa fiabilité.\r\n\r\nUne formule de politesse impersonnelle. « Cher client », « Madame, Monsieur », « Cher utilisateur » : une administration qui dispose de l'état civil de ses assurés s'en sert. Un escroc qui a acheté une liste d'adresses email ne dispose, lui, que de l'adresse.\r\n\r\nUne demande d'informations qu'on ne devrait jamais avoir à fournir. Aucun service public ne demande par courriel un numéro de carte bancaire complet, un mot de passe, un code reçu par SMS, ou la photo d'une pièce d'identité. Si la page d'arrivée réclame ce genre de données, c'est le moment de fermer l'onglet.\r\n\r\nUne pièce jointe inattendue. Une « facture » au format ou envoyée par un organisme public est presque toujours malveillante. Les administrations mettent leurs documents à disposition dans l'espace personnel, pas en pièce jointe.\r\n\r\n7. Que faire en cas de doute, ou en cas d'erreur\r\n\r\nRecevoir un courriel suspect n'est ni grave ni rare. Cliquer dessus par mégarde l'est davantage, mais reste rattrapable. Quelques gestes simples permettent de limiter la casse et de protéger les autres.\r\n\r\nSignaler le message. Le dispositif officiel français s'appelle Signal Spam et permet, via une extension de navigateur ou de client mail, de transmettre les courriels frauduleux aux autorités compétentes et aux fournisseurs d'accès. Pour les SMS, le numéro 33700 joue le même rôle. Pour les tentatives plus sophistiquées, la plateforme Pharos recueille les signalements.\r\n\r\nPrévenir l'organisme usurpé. L'Assurance Maladie dispose d'une adresse dédiée pour transférer les courriels suspects : . La plupart des grandes administrations et entreprises ont une adresse équivalente.\r\n\r\nEn cas de clic accidentel, ne rien saisir et fermer la page. Tant qu'aucune donnée n'a été tapée, le risque est limité au chargement du site, qui peut éventuellement tenter d'exploiter une faille du navigateur. Maintenir son navigateur à jour suffit à neutraliser l'essentiel.\r\n\r\nEn cas de saisie de données, agir vite. Si un mot de passe a été tapé sur le faux site, le changer immédiatement sur le vrai site, et partout ailleurs s'il était réutilisé. Si des données bancaires ont été communiquées, appeler sa banque pour faire opposition. Si une pièce d'identité a été transmise, déposer plainte et demander un signalement auprès de FranceConnect pour surveiller toute usurpation.\r\n\r\n8. Le réflexe à long terme\r\n\r\nAu fil des années, un principe simple et robuste s'impose : considérer par défaut qu'un courriel non sollicité demandant une action en ligne est suspect, et le vérifier par un canal indépendant. Cette posture coûte quelques secondes par message. Elle a évité, chez la plupart de ceux qui l'adoptent, l'écrasante majorité des arnaques en circulation.\r\n\r\nL'anecdote racontée ici se termine bien : les outils ont alerté, la curiosité s'est arrêtée à temps, et l'absence de la moindre saisie sur le faux site a évité tout dégât. Mais elle illustre parfaitement combien le scénario est crédible et combien il est facile, dans un moment de distraction, de baisser la garde.\r\n\r\nLa meilleure protection contre le phishing n'est ni un antivirus, ni un filtre anti-spam, ni un navigateur particulièrement vigilant : c'est l'habitude, lentement acquise, de séparer le messager du message. Un courriel n'est qu'une invitation à vérifier. La vérification, elle, se fait toujours à la source."},"score":0.75,"snippet":"…e messagerie, a détecté que le texte affiché du lien ne correspondait pas à sa destination réelle et a affiché un avertissement clair.\r\n\r\n\r\n\r\nCette détection repose sur une règle simple mais efficace : si le texte visibl…","tier":2}]