L'Agenda du Libre

Logiciels, Arts, Données, Matériels, Contenus, Communs, Internet...

À proximité

Actualités des organisations

April

Tribune « Comment s’émanciper des Gafam ? »


France
Publié le
vendredi 23 janvier 2026 14h28
Importé le
vendredi 23 janvier 2026 21h03

Magali Garnero, présidente de l'April, a publié le 14 janvier 2026 dans L'Humanité une tribune sur la thématique « Comment s’émanciper des GAFAM ? » (réservée aux personnes abonnées). Nous vous proposons ci-dessous le texte de la tribune.

Le texte publié est légèrement différent du texte envoyé par Magali. Dans le texte envoyé il y avait notamment des références au collectif CHATONS à DéMAILnagement, à Libre à vous !, à Adieu Windows, bonjour le Libre !. Nous vous proposons le texte original de la tribune.

Leurs milliards de profits financent un lobbying contre toute réglementation. S’en libérer, c’est reprendre le contrôle sur nos outils et nos données.

Les multinationales comme Google, Amazon, Meta, Apple et Microsoft dominent par leur pouvoir économique, politique et technologique. Leurs milliards1 de profits financent un lobbying massif contre toute régulation2. Tout cet argent, c'est indécent. Les droits humains et la planète3 comptent bien moins que leurs intérêts. Elles imposent leurs standards, nous enferment dans des services soi-disant «gratuits», surveillent nos données, programment l’obsolescence, monopolisent le marché et menacent nos libertés. Comme dans 1984 d'Orwell, je me sens épiée, manipulée, paranoïaque. Notre société ressemble de plus en plus à celle d'Océania et, je ne sais pas vous, mais moi, il m'est impossible de vivre dans une société orchestrée par les GAFAM.

Depuis plus de 30 ans, une communauté d'irréductibles libristes se bat pour proposer des alternatives basées sur les logiciels libres, respectant les quatre libertés : utiliser le logiciel sans restriction, l’étudier et l’adapter, le redistribuer et l’améliorer pour que toustes en profitent. Ces valeurs — transparence, accessibilité, coopération — forment un socle éthique qui s’oppose radicalement aux écosystèmes «privateurs» des GAFAM. J’utilise chaque jour des alternatives libres comme Firefox, Signal, Nextcloud, LibreOffice, Inkscape… Vous les connaissez peut-être ? Ces logiciels sont portés par des bénévoles et quelques entreprises engagées, avec des moyens dérisoires face aux milliards des géants. Et ce qui est accompli est fabuleux!

Un boycott inconfortable est indispensable: Se libérer des GAFAM, c’est reprendre le contrôle sur nos outils et nos données, changer nos habitudes. Il existe des centaines de logiciels libres pour remplacer les privateurs, et, pour chacun, une communauté qui maintient, améliore, promeut.

Il nous faut aussi changer nos réflexes sur internet. Les services « gratuits » nous espionnent, nous manipulent. Heureusement, des initiatives comme les CHATONS ou DéMAILnagement permettent de quitter ces pièges. PeerTube, OpenStreetMap, Wikipédia et le Fediverse sont autant d’outils pour se réapproprier le numérique.

Collectivement, on a plus de pouvoir ! Alors quand les politiques ne défendent pas l’intérêt général. il nous faut agir : en adhérant à des associations comme l'April, en rejoignant des organisations locales listées sur l'Agenda du Libre, en organisant ou visitant le Village du Libre à la Fête de l'Huma, en s'informant grâce à des émissions dédiées (comme Libre à vous !), en alertant les collectifs, syndicats, partis, en mobilisant l’opinion publique comme l’opération Adieu Windows, bonjour le libre !, et en faisant pression sur les élues et élus pour qu'iels signent le Pacte du Logiciel Libre.

Chaque action compte et peut avec certitude faire la différence. Il faut constamment se battre, argumenter et sensibiliser. Il est temps de nous rassembler pour changer le système, de sortir de nos prisons trop confortables et de nous émanciper numériquement.

Magali Garnero, alias Bookynette.

Présidente de l'April et membre de Framasoft.

April

#265 - C&F éditions - « Désescalade numérique » - « Pris dans la toile » - « Libre à vous ! » diffusée mardi 13 janvier 2026 sur radio Cause Commune


France
Publié le
vendredi 23 janvier 2026 13h55
Importé le
vendredi 23 janvier 2026 21h03

Libre à vous !, l’émission de l’April, l’association de promotion et de défense du logiciel libre. Prenez le contrôle de vos libertés informatiques, découvrez les enjeux et l’actualité du libre.

Au programme de la 265e émission :

  • sujet principal : la maison d’édition C&F éditions, avec Hervé Le Crosnier. Sujet animé par Laurent Costy
  • la chronique Que libérer d’autre que du logiciel d’Antanak sur « Désescalade numérique »
  • la chronique Lectures buissonnières de Vincent Calame sur « Pris dans la toile » de Sébastien Broca
  • quoi de Libre ? Actualités et annonces concernant l'April et le monde du Libre

Écouter les podcasts

S'abonner au podcast

S'abonner à la lettre d'actus

April

#266 - Parcours libriste de Booteille - Mes excuses à Flatpak - Où sont les femmes* ? - « Libre à vous ! » diffusée mardi 20 janvier 2026 sur radio Cause Commune


France
Publié le
vendredi 23 janvier 2026 09h48
Importé le
vendredi 23 janvier 2026 13h03

Libre à vous !, l’émission de l’April, l’association de promotion et de défense du logiciel libre. Prenez le contrôle de vos libertés informatiques, découvrez les enjeux et l’actualité du libre.

Au programme de la 266e émission :

  • sujet principal : Parcours libriste de Booteille
  • chronique Les humeurs de Gee
  • chronique F/H/X de Florence Chabanois
  • Quoi de Libre ? Actualités et annonces concernant l'April et le monde du Libre

Écouter les podcasts

S'abonner au podcast

S'abonner à la lettre d'actus

Ethiciel

Système d'Accumulateur Énergétique à Acide Formique (HCOOH/H₂)


Île-de-France
Publié le
vendredi 23 janvier 2026 01h00
Importé le
vendredi 23 janvier 2026 13h03

Fiche Technique : Système d’Accumulateur Énergétique à Acide Formique (HCOOH/H₂)🔗

Commentaires🔗

Cette proposition est le fruit d’une discussion avec Mistral AI. Ces informations doivent être vérifiées par des experts, je n’ai pas les connaissances pour remettre en cause chacune de ces affirmations. Cependant, si cela peut être implémenté, ce serait sûrement une source d’énergie intéressante ne comportant aucun risque majeur industriel.

Une solution révolutionnaire pour stocker l’énergie proprement ?🔗

Imaginez un système capable de stocker de l’énergie renouvelable (solaire, éolienne) sous forme d’un liquide inoffensif, l’acide formique, puis de la restituer sous forme d’électricité quand on en a besoin. Ce n’est pas de la science-fiction, mais une technologie émergente qui combine chimie, biologie et recyclage intelligent. Le principe est simple : on utilise du CO₂ (un déchet industriel ou atmosphérique) et de l’eau pour produire de l’acide formique, un liquide facile à stocker. Ensuite, ce liquide est décomposé pour libérer de l’hydrogène, qui alimente une pile à combustible et génère de l’électricité. L’avantage majeur ? Ce système fonctionne avec très peu d’énergie externe. Il peut exploiter la chaleur douce de la géothermie (50-70°C) ou la chaleur perdue des usines d’incinération ou des fourneaux industriels. Pas besoin de brûler du charbon ou du gaz : on recycle ce qui est déjà là. C’est une solution idéale pour les régions volcaniques, les zones industrielles, ou même les villes équipées de réseaux de chauffage urbain. En somme, on transforme des “déchets” (CO₂, chaleur perdue) en une ressource précieuse : une énergie propre et stockable.

Une technologie sûre et adaptée aux infrastructures existantes🔗

Contrairement aux batteries lithium-ion, qui nécessitent des métaux rares et posent des risques d’incendie, ce système repose sur des composants simples : de l’eau, du CO₂, et des catalyseurs (enzymes ou métaux comme le fer). L’acide formique, le liquide utilisé pour stocker l’énergie, est bien moins dangereux que l’hydrogène gazeux, car il est stable et non explosif. En fonctionnement normal, le système ne rejette que de l’eau et du CO₂, qui est immédiatement recyclé. Aucune émission polluante, aucun déchet toxique. Côté sécurité, les risques sont maîtrisables. En cas de fuite, l’acide formique est irritant mais peut être neutralisé avec de la soude. Une fuite d’hydrogène, bien que rare, est détectable et peut être gérée avec des systèmes de ventilation standard. Les usines d’incinération ou les sites géothermiques, déjà équipés de capteurs et de protocoles de sécurité stricts, sont des candidats idéaux pour accueillir cette technologie. En cas d’accident grave (explosion, panne majeure), les risques sont limités à la zone immédiate de l’usine, sans impact environnemental durable, car les produits chimiques impliqués se dégradent rapidement en composés inoffensifs.

Pourquoi cette solution pourrait changer la donne énergétique🔗

Ce système a le potentiel de résoudre deux problèmes majeurs de la transition énergétique : le stockage des énergies renouvelables (intermittentes par nature) et la valorisation des déchets industriels. En utilisant des infrastructures existantes (incinérateurs, réseaux géothermiques), il réduit les coûts et les délais de déploiement. De plus, il est modulaire : on peut l’adapter à une petite communauté rurale comme à une grande ville industrielle. Son autre atout est sa circularité. Contrairement aux énergies fossiles, qui extraient et brûlent des ressources limitées, ce système fonctionne en boucle fermée. Le CO₂ est sans cesse recyclé, et l’eau est le seul sous-produit. Enfin, il ouvre la voie à une économie locale de l’énergie, où les usines, les fermes, ou les quartiers pourraient produire et stocker leur propre électricité, réduisant ainsi leur dépendance aux réseaux centralisés. À terme, cette technologie pourrait rendre nos sociétés plus résilientes, tout en luttant contre le changement climatique.

Détails🔗

1. Principe général🔗

Système de stockage d’énergie en boucle fermée utilisant :

  • Entrées : CO₂ + H₂O + énergie renouvelable/chaleur résiduelle.
  • Sorties : Électricité + H₂O (recyclable).
  • Intermédiaire de stockage : Acide formique (HCOOH, liquide stable).

2. Étapes du procédé et caractéristiques techniques🔗

Étape 1 : Production d’acide formique (HCOOH) à partir de CO₂ + H₂O🔗

  • Réaction : CO₂ + H₂O → HCOOH + ½ O₂
  • Catalyseurs :
    • Enzymes : Formiate déshydrogénases (FDH) ou bactéries modifiées (E. coli, Cupriavidus necator).
    • Catalyseurs chimiques : Complexes de ruthénium ou de fer (moins coûteux).
  • Conditions optimales :
    • Température : 50-70°C (compatibles avec géothermie basse énergie ou chaleur résiduelle).
    • pH : 6-8 (neutre).
    • Pression : 1 atm (pas de besoin en haute pression).
  • Rendement : 80-85 %.
  • Source d’énergie :
    • Électricité renouvelable (pour activer les enzymes).
    • Lumière solaire (photosynthèse artificielle).

Étape 2 : Décomposition de l’acide formique (HCOOH) en H₂ + CO₂🔗

  • Réaction : HCOOH → H₂ + CO₂
  • Catalyseurs :
    • Enzymes : Hydrogénases (ex. : HydA de Clostridium).
    • Catalyseurs chimiques : Ruthénium, fer, ou palladium (supportés sur charbon actif).
  • Conditions optimales :
    • Température : 50-80°C.
    • pH : 3-6 (légèrement acide).
  • Rendement : 75-80 %.
  • Source de chaleur : Géothermie ou chaleur résiduelle (incinérateur/fourneau).

Étape 3 : Conversion de l’hydrogène (H₂) en électricité🔗

  • Technologie : Pile à combustible à membrane échangeuse de protons (PEMFC).
  • Rendement : 50-60 %.
  • Sous-produits : H₂O (eau) + chaleur (recyclée pour les étapes 1 et 2).
  • Puissance typique :
    • Prototype : 1-10 kW.
    • Industriel : 100 kW - 1 MW (modulaire).

Étape 4 : Recyclage du CO₂🔗

  • Capture du CO₂ : Par absorption chimique (amines) ou membranes.
  • Réinjection : Dans l’étape 1 pour produire à nouveau du HCOOH.
  • Bilan carbone : Neutre (aucune émission nette).

3. Besoins énergétiques et sources de chaleur🔗

ÉtapeBesoin énergétique principalSource de chaleur compatible
Production HCOOHÉlectricité (enzymes) ou lumière solaireGéothermie (50-70°C) ou chaleur résiduelle
Décomposition HCOOHChaleur (catalyse)Géothermie (50-80°C) ou incinérateur
Pile à combustibleAucune (autonome)Recyclage de la chaleur produite

4. Sécurité et risques industriels🔗

Fonctionnement normal🔗

  • Émissions : Aucune (CO₂ recyclé, H₂O comme sous-produit).
  • Sous-produits :
    • Eau (H₂O).
    • Traces de catalyseurs (recyclables).

Risques en cas d’accident🔗

RisqueCause possibleImpactMitigation
Fuite de H₂Défaillance de la pile à combustibleExplosion (en milieu confiné)Détecteurs de H₂ + ventilation forcée
Fuite de CO₂Fuite dans le système de recyclageAsphyxie (en espace clos)Capteurs de CO₂ + alarme
Fuite de HCOOHRupture de réservoirIrritation (peau/yeux)Neutralisation à la soude (NaOH)
SurchauffeDéfaillance du système de refroidissementEndommagement des catalyseursSystème de refroidissement redondant

5. Intégration industrielle et économie circulaire🔗

  • Sources de CO₂ :
    • Émissions industrielles (cimenteries, aciéries).
    • Biogaz (méthanisation).
    • Air ambiant (capture directe, mais moins efficace).
  • Sources de chaleur :
    • Géothermie : Idéale pour les sites proches de sources chaudes.
    • Incinérateurs/fourneaux : Récupération de chaleur fatale.
    • Solaire thermique : Pour les régions ensoleillées.
  • Valorisation des sous-produits :
    • Eau : Réutilisable dans le procédé ou pour l’irrigation.
    • Soufre/Cendres (si traitement de H₂S) : Vendu à l’industrie des engrais.

6. Coûts et rentabilité (estimations 2026)🔗

Poste de coûtCoût estimé (€/kWh stocké)Remarques
Catalyseurs enzymatiques0,05-0,10Coût en baisse avec les progrès biotech
Catalyseurs métalliques0,02-0,05Ruthénium > Fer (moins cher)
Pile à combustible (PEMFC)0,10-0,15Prix en baisse avec la production de masse
Infrastructure (réservoirs)0,03-0,08Acide formique : stockage peu coûteux
Coût total estimé0,20-0,40 €/kWhCompétitif avec les batteries lithium-ion

7. Comparaison avec d’autres technologies de stockage🔗

TechnologieRendementDurée de vieCoût (€/kWh)Stockage facileÉmissions CO₂
Acide formique (HCOOH)> 70 %10-15 ans0,20-0,40Oui (liquide)Neutre
Batteries Li-ion85-95 %5-10 ans0,10-0,30Non (métaux rares)Faible (extraction)
Hydrogène comprimé50-60 %15-20 ans0,30-0,60Difficile (gaz)Neutre
Stockage par air comprimé40-50 %20-30 ans0,10-0,20MoyenNeutre

8. Applications industrielles clés🔗

  • Stockage d’énergies renouvelables : Lisser la production intermittente (solaire/éolien).
  • Valorisation des déchets : Couplage avec des incinérateurs ou des usines émettant du CO₂.
  • Autonomie énergétique : Sites isolés (îles, zones rurales) ou industries lourdes.
  • Mobilité durable : Alimentation de piles à combustible pour véhicules (camions, bus).

9. Perspectives et développement🔗

  • Recherche en cours :
    • Optimisation des enzymes pour augmenter les rendements (> 90 %).
    • Développement de catalyseurs à base de fer (moins chers que le ruthénium).
    • Intégration avec des panneaux solaires pour une production directe de HCOOH.
  • Projets pilotes :
    • Allemagne : Projet “Hydrogenious LOHC” (stockage d’hydrogène dans des liquides organiques).
    • Japon : Utilisation de l’acide formique pour alimenter des piles à combustible dans des bâtiments.
  • Défis restants :
    • Réduire les coûts des catalyseurs.
    • Optimiser la durabilité des enzymes/bactéries en conditions industrielles.

10. Conclusion et recommandations pour les industriels🔗

Pourquoi adopter ce système ?🔗

Boucle fermée : Pas de déchets, CO₂ recyclé.

Faible empreinte carbone : Compatible avec les objectifs climatiques.

Modulaire et scalable : Adaptable aux petits et grands sites.

Sécurité : Moins risqué que l’hydrogène gazeux ou les batteries lithium.

Coûts compétitifs : Potentiellement moins cher que les batteries à long terme.

Prochaines étapes pour un déploiement industriel🔗

  1. Évaluer les sources locales de CO₂ et de chaleur (géothermie, incinérateurs).
  2. Tester un prototype pilote (10-50 kW) pour valider les rendements sur site.
  3. Collaborer avec des fournisseurs de catalyseurs (ex. : entreprises spécialisées en biotech ou chimie verte).
  4. Intégrer des systèmes de sécurité (détecteurs de gaz, ventilation, neutralisation du HCOOH).
  5. Explorer les subventions pour les technologies vertes (UE, États, régions).

Ressources utiles🔗

Rédigé avec Mistral AI.

ritimo

Que signifie le journalisme de paix pour les journalistes en Afrique de l'Est ?


Île-de-France
Publié le
jeudi 22 janvier 2026 16h09
Importé le
jeudi 22 janvier 2026 21h05

Cet article aborde le journalisme de paix comme approche alternative de reportage qui met l'accent sur les causes structurelles des conflits, les interactions entre multiples parties et les possibilités de construction de la paix, notamment grâce à une attention minutieuse portée au choix des mots et aux cadres narratifs adoptés.

- Articles et traductions / Kenya, Rwanda, information, droits humains, résolution des conflits, médias, conflit, Ouganda, veille internationale, article, Soudan du Sud
Club1

Comment j'ai eu un rdv médical grâce à une tâche CRON


Île-de-France
Publié le
jeudi 22 janvier 2026 12h00
Importé le
jeudi 22 janvier 2026 13h03

Un peu de contexte

Cet article est une anecdote personnelle d'un membre de CLUB1. Dans celui-ci, Vincent nous présente un usage du serveur un peu moins connu que l'hébergement de sites Web.

Désert médical

Dans le coin du Lot où j'habite, ya pas foule au niveau des médecins généralistes. On peut même dire que j'habite dans un désert médical. J'ai voulu prendre un rdv, sauf que tout était bouché. L'un des seul cabinet de Cahors qui accueille des nouveau·elles patients s'appelle : Agir pour Mieux Vivre et la seule façon de prendre RDV est sur la plateforme en ligne https://www.maiia.com/ (qui semble assez équivalente à Doctolib).

La plateforme annonce des RDV dispo dans 8 jours, sauf que, je n'ai pas le droit de réserver de première consultation dans des délais supérieurs à 72h (3 jours). Ça semble un paramètre réglable du site, ce qui veut dire que c'est un parti pris du cabinet médical.

J'aurais pu me dire que c'était une situation exceptionnelle, sauf que ma coloc m'avait prévenu qu'elle n’avait jamais réussi à prendre rendez-vous quand elle était allée voir sur le site.

Bon eh bien il ne me reste plus qu'à retourner consulter cette page plusieurs fois pas jour dans l'espoir de tomber sur une annulation récente.

Ou alors....

Faire qu'un programme informatique consulte la page pour moi !

En fait ça m'a rappelé la période du COVID, pendant laquelle des scripts avaient émergés pour "choper les RDV dès qu'ils sont dispo", par exemple avec : DoctoShotGun
Bon là ça va méga loin car le programme s'occupe même de prendre le RDV.

De mon côté je me suis dit que si j'arrivai à faire une sorte d'alerte, ça serait déjà pas mal.

frappe chirurgicale

Je commence donc à essayer de comprendre le fonctionnement du site pour voir si il est possible de "scrapper" les infos qui m'intéressent.
Je suis un peu dérouté car je ne suis pas très familier de ce genre de Web-app où tout est chargé en cours de route via du Javascript. J'ai donc bien pataugé au début.
Par exemple j'ai perdu 5 minutes à bugger sur le script suivant :

tarteaucitron ?? Mais trop chelou d'avoir appelé un de leur scripts comme ça !!! 😵‍💫 je me suis demandé si c'était un nom généré aléatoirement pour camoufler leur fonctionnement. Bon, finalement il s'avère que c'était juste le code de la bannière de cookie 😑

En fait, plutôt que regarder le code, j'ai compris qu'avec ce genre de site, il valait mieux regarder les requêtes que celui-ci effectue. Et là j'ai trouvé en deux secondes !

On voit (en bas à gauche) que la page Web effectue 118 requêtes vers leur serveur et d'autres lorsque je demande d'afficher la page.

🔎 Pour info, on peut voir ça dans Firefox en ouvrant l'inspecteur (touche F12 ou la combinaison Ctrl Maj I), puis en sélectionnant l'onglet "⇅ réseau". En rechargeant la page, on voit alors tout les aller-retours entre notre ordinateur et le(s) serveur(s).

J'avais déjà vu le mot "availability" en auscultant un peu le HTML, j'ai donc filtré les requêtes utilisant ce mot. Et ça n'a pas loupé ! Je découvre une requête effectuée vers l'URL suivante :

https://www.maiia.com/api/pat-public/availability-closests?centerId=64abbc120870ca46e93017b2&from=2025-10-31T16%3A39%3A00.000Z&limit=200&page=0

availability-closests ? Tiens tiens... 🕵️

Et c'est bingo, car derrière cette URL, on obtient des données structurées sous forme d'un JSON :

{ "availabilityCount": 1, "closestPhysicalAvailability": { "id": "6904d42d025862180fb450c0", "practitionerId": "64abbc120870ca46e93017b7", "centerId": "64abbc120870ca46e93017b2", "timeSlotId": "68216a1c285d2850f0ca1edd", "weekId": "68216a1c285d2850f0ca1eb3", "weekTemplateCycleId": "64ad0f8ca12ada5dd802c793", "consultationReasonId": "66e00827bd69f40b1a87387c", "creationDate": "2025-10-31T15:22:21.860Z", "updateDate": "2025-10-31T15:22:21.860Z", "startDateTime": "2025-11-05T07:30:00.000Z", "endDateTime": "2025-11-05T07:45:00.000Z", "percentageNewPatient": 0.0, "usedResource": [] }, "firstAvailabilityStartDateTime": "2025-11-05T07:30:00.000Z", "firstPhysicalStartDateTime": "2025-11-05T07:30:00.000Z" }

Alors il-y-a toute une section closestPhysicalAvailability qui ne m'intéresse pas trop car c'est en fait des suggestions d'autres endroit où consulter à proximité. Mais en bas, on peut trouver firstAvailabilityStartDateTime et firstPhysicalStartDateTime. J'imagine que le premier intègre les RDV en visio, ce qui ne m'intéresse pas.
En tout cas, ça fait plaisir de voir une belle chaîne de caractères représentant une date ! Et surtout avec une une précision de l'ordre du millième de seconde 🤪.

2025-11-05T07:30:00.000Z

Tout ça s'avère être de bonne augure quant à la faisabilité d'un petit logiciel qui vérifierait cette URL régulièrement en mesurant si la date fournie est dans moins de 72h.

Écriture d'un Scénario

J'avais déjà en tête les outils qui pourrait m'aider sur ce coup là. C'est une combinaison assez classique de programmes qu'on trouve souvent déjà installés avec Linux (l'Operating System installé sur le serveur CLUB1).
Je ne vais donc pas "coder" tout un logiciel, mais plutôt mettre un peu de glue entre des logiciels existants pour former un outil minimaliste. Dans le jargon informatique, on appelle ça "un script" (scénario). J'ai choisi d'appeler le mien apmv.sh.

Équipe de choc

Bon, j'ai vraiment fait une équipe cheaté, j'ai mis que des gros bangers de la ligne de commande. Matez moi cette équipe de fou :

  • curl va contacter le serveur grâce au bon vieux protocole HTTP 🚀
  • jq arrive à extraire l'info importante du fichier formaté en JSON 📂
  • date sait lire les dates et les convertir 📅
  • crontab permet de déclencher régulièrement une action ⌛️
  • mailx envoie un email vite fait bien fait ✉️

Chronique des titans

Attardons nous un peu sur le délicieux crontab. C'est ce qu'on appelle communément "les tâches CRON" (sûrement une ref à ce bon vieux Cronos le titan). C'est un outil qui, lorsqu'il est lancé sur un serveur, tourne constamment en arrière plan et va déclencher régulièrement des tâches. Une tâche ? C'est un peu tout ce qu'on voudra, il faut surtout retenir que CRON n'est qu'un déclencheur. Le seul truc qu'il va falloir régler c'est donc la fréquence du déclenchement. Et la façon de la définir est assez déroutante au premier abord :

* * * * * 'truc à faire'

Ceci ne signifie pas un hôtel 5 étoiles, mais "une fois par minute". Vous l'aviez sûrement deviné, mais je le dis quand même ; Chaque partie séparée par un espace signifie dans l'ordre : minute, heure, jour, mois et jour de la semaine.

Par exemple :

15 14 1 * *

Signifie "chaque premier du mois à 14h15" en langage CRON.

Heureusement, on peut se faire aider par ce guru qui traduit en langue de Shakespeare la noble langue de Cron.

Au final, pour mon projet, c'était pas très compliqué :

*/10 * * * * /home/vincent/scripts/apmv.sh

Autrement dit : "lance le script apmv.sh toute les dix minutes !"

Moi aussi je veux trop avoir une tâche CRON !!!

C'est sûrement ce que vous vous dites. Ce rêve n'est peut-être pas si lointain. Par exemple si vous avez un compte sur un serveur, que vous avez la possibilité et la détermination pour vous connecter en SSH et que le logiciel crontab est installé. Eh bien, vous pouvez !

Pour créer sa première tâche cronique, vous devez lancer la commande suivante :

crontab -e

On atterrit dans l'éditeur de fichier par défaut sur ce serveur. En bas du fichier, chaque ligne correspond à une tâche. Vous pouvez par exemple ajouter :

0 10 * * 4 echo '🗑️ ne pas oublier de sortir les poubelles ce soir !'

Normalement echo renvoie un message dans le terminal, mais ici, vu qu'il s'agit d'une cronerie, on va recevoir le message sur notre adresse perso. (Bon il faut que le serveur gère les emails aussi, c'est le cas de club1 par exemple)

Ça marche aussi pour les anniversaires :

0 0 1 12 * echo '🎂 souhaiter son anniversaire à Vincent'

Avec la tâche ci-dessus, on recevra un email chaque premier décembre à minuit (l'heure du crime). Mais tant qu'à faire, autant rendre le truc encore plus déshumanisé en l'automatisant au max (parce que c'est bien ça qu'on veut !) :

3 0 1 12 * echo 'Je te souhaite un très bon anniversaire ! (sincèrement)' | mailx -s '🎉 surprise...' -- vincent@club1.fr

Tadaaa ! Cette fois ci la tâche est directement d'envoyer un email à la personne dont c'est l'anniversaire (en l'occurence moi). Encore une fois on est libéré des vielles traditions sociales qui nous enchaînaient grâce à l'informatique ! Que vas t'on pouvoir faire de tout le temps libre qu'on a acquis ? 🤔
(Vous noterez que j'ai mis la tâche CRON à 00h03 pour que ça fasse plus humain 😎)

curling de date

C'est bon ? tout le monde a sa tâche CRON ? On va pouvoir avancer sur notre shmilblik.

Dans mon cas, je n'avais pas envie de recevoir un email toute les 10 minutes m'indiquant la dispo des RDV. Mon script va d’abord vérifier la disponibilité avant de me prévenir par email. Sa première action est de contacter le serveur Maiia grâce à l'URL que j'ai identifé lors de mon enquête. Cette fois c'est le job de curl :

curl -s 'https://www.maiia.com/api/pat-public/availability-closests?centerId=64abbc120870ca46e93017b2&consultationReasonName=Soins%20non%20programm%C3%A9s%20%28acc%C3%A8s%20libre%29&consultationReasonType=PHYSICAL&from=2025-10-25T18%3A35%3A00.000Z&limit=200&page=0&specialityId=5e185ddfb5346d1863161b4b'

D'ailleurs vous pouvez lancer cette commande sur votre ordinateur si vous avez un terminal et curl d'installé.

Pour filtrer les infos qui nous intéressent, on envoie ça dans jq grâce à un tuyaux | ("pipe" en anglais). Puis rebelote, on envoie la sortie de jq dans date. Ça donne ça :

curl -s 'https://www.maiia.com/api...' | jq -r .firstAvailabilityStartDateTime | date -f -

Lorsque je lance cette commande, le message suivant s'affiche en retour. C'est en français car mon ordinateur est réglé dans cette langue.

mer. 05 nov. 2025 08:30:00 CET

Ce genre de plomberie informatique est une des façon les plus courante pour combiner des logiciels entre eux.

Éviter de spammer

Dans la version simple de mon programme, j'avais donc une vérification toute les 10 minutes de la disponibilité d'un RDV dans moins de 72h. À chaque fois que c'était vrai, je recevrai un email.

Si on chipote un peu, on peut y voir un petit soucis. Lorsque qu'un RDV est dispo longtemps je vais recevoir des emails en boucle jusqu'à ce qu'il soit pris. Par exemple si un·e client·e annule son rdv à une heure du mat', je risque de me réveiller et découvrir une bonne quarantaine d'emails. À vous de voir si c'est si terrible que ça.

Le fait est que j'avais prévu de rajouter les adresses emails de mes colocs au script : une responsabilité supplémentaire. J'ai donc fait en sorte que, lorsque la vérification donne une réponse positive, en plus d'envoyer un petit mail, un fichier vide est également créé à un endroit précis dans mon espace sur le serveur. Je rajoute ensuite une condition disant que : si le fameux fichier existe, on laisse tomber la vérification. Cela signifie qu'un email a déjà été envoyé, on évite ainsi au script de se répéter. Le fichier joue le rôle d'interrupteur ! Si je le supprime ça va ré-activer le programme et il fonctionnera jusqu'au prochain RDV trouvé.

Assemblage

Voici le fameux script combinant tout ce qui a été évoqué ci-dessus. J'ai ajouté des petits commentaires pour décrire les différentes parties. Ce sont les lignes qui commencent par un croisillon #.

#/bin/bash -e # check la dispo des rdv sur le site Maiia # si le fichier interrupteur existe, on arrête le script if test -e /home/vincent/apmv-off then exit 0 fi # récupération de la date du prochain RDV avail=$(curl -s 'https://www.maiia.com/api/pat-public/availability-closests?centerId=64abbc120870ca46e93017b2&consultationReasonName=Soins%20non%20programm%C3%A9s%20%28acc%C3%A8s%20libre%29&consultationReasonType=PHYSICAL&from=2025-10-25T18%3A35%3A00.000Z&limit=200&page=0&specialityId=5e185ddfb5346d1863161b4b'| jq -r .firstAvailabilityStartDateTime | date +%s -f - ) in3days=$(date --date='72 hours' +%s) # si la date de dispo est dans plus de trois jours, on arrête le script if test $avail -gt $in3days then exit 0 fi # envoi de l'email echo 'go prendre un rdv\n' \ | mailx -s '🚀 rdv disponible chez Agir pour mieux vivre' -- vincent@club1.fr # crée le fichier interupteur touch /home/vincent/apmv-off

Oasis is good

Vendredi 31 octobre, 9h00, Pantin : le script apmv.sh détecte un créneau de disponible dans moins de 72h et déclenche l'envoi d'un email.

Quelques minutes plus tard, je consulte mon téléphone et check mes emails. En découvrant la nouvelle, je me précipite sur le site pour vérifier qu'il ne s'agit pas d'un faux positif. Heureusement le créneau est bien là ! Je n'ai qu'à cliquer dessus pour le réserver.

Tel un oasis dans le désert médical, grâce à ce script et aux vénérables logiciels à moins de cinq lettres, j'ai pu décrocher un rendez-vous chez le médecin ! 🎉

Est ce que ça résout la problématique du manque de personnel médical ? Pas du tout. Ça illustre par contre le pouvoir qu'apporte la connaissance des technologies qui nous entourent. Et c'est plutôt flippant que ça ne soit qu'entre les mains d'une élite d'informaticiens comme moi. Donc j'espère que ça pourra inspirer des personnes ou des groupes à s'approprier ces outils pour faire des trucs chouettes !

UNIX vibe

Dans ce projet, j'ai fortement tiré parti de ce qu'on appelle la philosophie UNIX :

Écrivez des programmes qui effectuent une seule chose et qui le font bien.
Écrivez des programmes qui collaborent.
Écrivez des programmes pour gérer des flux de texte [en pratique des flux d'octets], car c'est une interface universelle.

C'est une citation de Douglas McIlroy, l'inventeur des tuyaux UNIX. Les programmes qu'il évoque sont ceux que j'ai appelé "les membres de mon équipe". Ils ne font chacun qu'une chose limitée, mais combiné à d'autres, ont peut alors réaliser des actions complexes et puissantes.

C'est une façon de voir les outils informatiques qui diffère totalement de la vision dominante actuelle. On connaît mieux les logiciels monolithique qui sont complexes et riches en fonctionnalités. Par exemple Microsoft Word, Excel, Photoshop ou même Firefox.

Il y a des différences dans la courbe d'apprentissage ainsi qu'au niveau de l'agentivité induite par ces deux approches. Je dirais que les petits outils Unix sont au moins aussi complexes que les gros logiciels à apprendre. Mais une bascule opère lorsque l'on veut faire quelque-chose qui est légèrement en dehors des possibilités permises par un outil monolithique. À ce moment là, on est un peu coincé et il faut chercher un autre programme qui fera exactement ce dont on a besoin. Et si on n'en trouve pas, abandonner, car c'est trop complexe de le coder soi-même. À l'inverse, si l'on maîtrise déjà quelques petits outils, on n'aura souvent qu'à chercher un module manquant pour le combiner à ceux que l'on connaît déjà et arriver à ses fins.

Bon c'est une version un peu idéaliste, mais qui permet de saisir la différence fondamentale. À titre personnel j'étais très content de découvrir une autre façon d'utiliser les ordinateurs. En composant à chaque fois de petits scénarios (les scripts) sur mesure, on passe du statut d'utilisateur à celui de compositeur·ice. Ça a son importance car les outils que nous utilisons nous conditionnent dans une certaine mesure.

Cette approche n'est pas nouvelle car UNIX est un système d'exploitation (OS) déchu datant des années 70 ! Il servira cependant d'inspiration à Linux, d'où la consonance.

Tools shape practices / Les outils influent les pratiques

Pour aller plus loin

Pour apprendre progressivement à utiliser ces petits outils, j'ai entamé mon propre mémo accessible en ligne. Ça me permet de retrouver plus vite mes réglages favoris pour chaque commande.

Et voici quelques pistes à explorer pour creuser le sujet :

The map is the territory

The map is the territory est un fanzine écrit par Zach AKA CoolGuy qui présente la pratique de la ligne de commande d'une façon spirituelle ! C'est en anglais car ce cool guy est australien. Mais on a justement entrepris de le traduire en français avec Nouckey !

Projet de traduction sur le forum Club1

Pas encore de lien sûr car la traduction n'est pas finie.

Le blog d'Arthur Pons

http://arthur.bebou.netlib.re/

J'ai rencontré Arthur à Strasbourg, il est membres du collectif Katzele qui explore l'usage convivial de l'informatique. Son son blog personnel regorge de réflexions sur l'usage de l'ordinateur proche de celui qui est évoqué dans cet article.

Serveur tildes

Les serveur tildes sont une famille de serveurs qui permettent à leurs membres d'y accéder via SSH, leur permettant ainsi de construire des scripts. Le plus connu étant le https://tilde.club/. On peut dire que club1 est une sorte de serveur tilde.

Numericatous

Indépendance technologique : il est temps d’agir


Centre-Val de Loire
Publié le
jeudi 22 janvier 2026 10h15
Importé le
jeudi 22 janvier 2026 13h03
Nous utilisons tous le numérique, personnellement ou professionnellement, au quotidien. Mais à qui appartiennent les outils et services que nous utilisons ? Très souvent, ils appartiennent à des géants américains. Des géants qui se moquent de nos tentatives de régulation, qui se moquent de nos valeurs, qui se moquent de notre économie. Mais qui pillent […]
BxLUG

Installation Linux à la Bibliothèque d'Ixelles


Bruxelles
Publié le
jeudi 22 janvier 2026 10h10
Importé le
jeudi 22 janvier 2026 13h03

L'objectif du Coin Linux est d'aider tout le monde dans un esprit de partage de connaissances, d'échange...
Installer une distribution de Linux sur votre ordinateur, pour vous libérer des logiciels "propriétaires payants" des contraintes, vente forcée, et enfin des virus...
Linux est un système d'exploitation Open source et gratuit distribuée sous licence publique générale GNU. Que tout le monde peut utiliser, étudier, modifier, redistribuer le code source, ou même vendre des copies du (…)

- Les Install Party du BxLUG
BxLUG

Atelier Linux, atelier du web


Bruxelles
Publié le
jeudi 22 janvier 2026 09h35
Importé le
jeudi 22 janvier 2026 13h03

LONGUE VIE AUX LOGICIELS LIBRES ! Les migrations de windows 7-10 vers la version Windows11 imposent maintenant un appareil qui doit être équipé d'au moins 4GB de mémoire vive, d'avoir un TPM, et un secure boot. Windows12 sera encore plus restritif 8GB de ram ("à suivre")... Comme en 2014 des millions de PC seront à mettre au bac, c'est la raison pour laquelle Gnu/Linux est la solution !
Information : Il n'y a plus de n° de licence sur tous les PC vendus avec le Windows, l'identifiant (…)

- Les Install Party du BxLUG / Install Party
Projet Internet et Citoyenneté

Réunion CA du 06 janvier 2026


Occitanie
Publié le
jeudi 22 janvier 2026 08h53
Importé le
jeudi 22 janvier 2026 13h03

Compte-rendu du conseil d'administration extraordinaire du 6 janvier consacré à la préparation de l'assemblée générale

- Année 2026
CERCLL

Enfin !! Mozilla lance des paquets RPM officiels pour Firefox sous Linux.


Provence-Alpes-Côte d'Azur
Publié le
jeudi 22 janvier 2026 07h06
Importé le
jeudi 22 janvier 2026 13h03
C’est une nouvelle que les utilisateurs de Fedora, openSUSE ou Red Hat attendaient de pied ferme. Le 19 janvier 2026, Mozilla a franchi une étape historique en lançant des paquets RPM officiels pour Firefox Nightly, la version de développement du navigateur open source. Après avoir réussi l’introduction de ses propres paquets Debian pour Firefox fin […]
CERCLL

Les Rencontres Hivernales du Libre fêtent leurs 10 ans à St-Cergue (Suisse) ce week-end.


Provence-Alpes-Côte d'Azur
Publié le
jeudi 22 janvier 2026 07h03
Importé le
jeudi 22 janvier 2026 13h03
Du 23 au 25 janvier 2026, la commune de St-Cergue, dans le canton de Vaud, accueille la dixième édition des Rencontres Hivernales du Libre (RHL), l’un des rares événements en Suisse romande entièrement dédiés au logiciel libre, au numérique éthique et à la durabilité technologique. En dix ans, les Rencontres Hivernales du Libre ont accueilli […]
CLX

Lille : Rencontre Openstreetmap, Le mardi 3 février 2026 de 18h00 à 20h00.


Hauts-de-France
Publié le
mercredi 21 janvier 2026 22h17
Importé le
jeudi 22 janvier 2026 05h03

Une rencontre des contributeurs Openstreetmap à Lille.
Toute personne intéressée par OpenStreetMap peut s'intégrer à cette rencontre, tout particulièrement les débutants qui souhaiteraient des conseils pour se lancer..

- Agenda / OpenStreetMap, Lille
CLX

Lille : Rencontre Openstreetmap, Le mardi 3 février 2026 de 18h00 à 20h00.


Hauts-de-France
Publié le
mercredi 21 janvier 2026 22h17
Importé le
jeudi 22 janvier 2026 05h03

Une rencontre des contributeurs Openstreetmap à Lille.
Toute personne intéressée par OpenStreetMap peut s'intégrer à cette rencontre, tout particulièrement les débutants qui souhaiteraient des conseils pour se lancer..

- Agenda / OpenStreetMap, Lille
WordPress Francophone

Journée de Contribution Nice 2026 : présentation des tables – épisode n°2 !


Internet
Publié le
mercredi 21 janvier 2026 16h29
Importé le
mercredi 21 janvier 2026 21h03
Le sachiez-tu ? Les inscriptions à la journée de contribution du WordCamp Nice sont toujours ouvertes ! Si si ! On l’a même rappelé il y a quinze jours !  Dans l’épisode 1, nous vous présentions deux premières tables de contribution. Nous savions que vous attendiez la suite avec impatience… Bien sûr que d’autres tablesLire la suite
BxLUG

Bxlug <3 Repair Cafe


Bruxelles
Publié le
mercredi 21 janvier 2026 16h28
Importé le
mercredi 21 janvier 2026 21h04

Un nouveau lieu pour les Install Parties du Bxlug : Repair Lab (Usquare)

- Activités
BxLUG

Atelier Installation au RepairLab Eterbeek (Usquare)


Bruxelles
Publié le
mercredi 21 janvier 2026 16h28
Importé le
vendredi 23 janvier 2026 05h05

Un nouveau lieu pour les Install Parties du Bxlug : Repair Lab (Usquare)

- Les Install Party du BxLUG
Le Cloud Girofle

Des nouvelles des serveurs Discourse


France
Publié le
mercredi 21 janvier 2026 12h51
Importé le
mercredi 21 janvier 2026 13h04
Hello hello, On fait ce message pour parler des évolutions liées à l’hébergement des serveurs de forum Discourse. L’hébergement de forums est quasi-antérieur à la création de l’asso. Au début un des membres en hébergeait sur des serveurs virtualisés (VM) chez OVH, en louant un serveur par forum. Lors de l’incendie du datacenter d’OVH à […]
GUTenberg

2 avril 2026 : « L'art du rendu de texte »


France
Publié le
mercredi 21 janvier 2026 12h06
Importé le
mercredi 21 janvier 2026 13h05

Jeudi 2 avril 2026, à 20h en visio-conférence, nous aurons le plaisir d'assister à un exposé de Nicolas Rougier intitulé « L'art du rendu de texte ». La typographie est l'art de disposer les caractères afin de rendre le langage écrit lisible, compréhensible et attrayant lorsqu'il est affiché. Cependant, pour les néophytes, la typographie est principalement perçue comme la juxtaposition de caractères affichés à l'écran, tandis que pour les experts, la typographie signifie police de (…)

- Exposés mensuels
Electrocycle

Atelier Utilisation d’un smartphone libéré


Île-de-France
Publié le
mardi 20 janvier 2026 20h18
Importé le
mardi 20 janvier 2026 21h03
Soyez l’utilisateur d’un smartphone dont nous avons libéré l’OS:  c’est l’expérience que nous vous proposons de vivre! Electrocycle a constitué une équipe qui déploie ses compétences dans la réutilisation de vieux matériels électroniques. On sait qu’en passant son PC sous Linux on peut réutiliser de très anciens PC, de même en passant son smartphone sous […]
FCCL

Vandœuvre-lès-Nancy: Atelier libre - Installer Linux sur un ordinosaure, Le samedi 31 janvier 2026 de 10h00 à 12h00.


Grand Est
Publié le
mardi 20 janvier 2026 19h44
Importé le
mardi 20 janvier 2026 21h03

Concept de l'Atelier libre

Les usagers de la FCCL sont invités à partager leurs savoirs pour trouver ensemble, une solution à une problématique posée. Toute idée peut être proposée à l'occasion d'un atelier à condition bien sûr qu’elle soit cohérente avec la philosophie de la culture du libre.

Thème du jour

Suite à l'événement Installons Linux ! fin 2025, nous avons convenu avec un usager souhaitant réinstaller GNU/Linux sur un très vieil ordinateur (+20 ans), d'organiser un temps dédié, cette manœuvre étant particulière.

Entrée libre, inscription conseillée.

infothema

Zorin OS : La distribution Linux qui explose depuis la fin de Windows 10


Bretagne
Publié le
mardi 20 janvier 2026 17h27
Importé le
mardi 20 janvier 2026 21h03
Des millions d’utilisateurs délaissent Windows 10 pour Zorin OS. C’est une alternative qui allie simplicité, familiarité et respect de la vie privée. Une migration qui transforme peu à peu Linux en choix évident pour tous ceux qui veulent reprendre le Read More ...
La quadrature du net

Algorithme discriminatoire de notation de la CNAF : 10 nouvelles organisations se joignent à l’affaire devant le Conseil d’État


France
Publié le
mardi 20 janvier 2026 12h01
Importé le
mardi 20 janvier 2026 13h03
Il y a un peu plus d’un an, 15 organisations de la société civile ont contesté l’algorithme d’évaluation des risques utilisé par la Caisse nationale d’allocations familiales (CNAF), la branche familiale du système français de…
Numericatous

Transformation numérique des TPE : il faut avancer


Centre-Val de Loire
Publié le
mardi 20 janvier 2026 10h15
Importé le
mardi 20 janvier 2026 13h05
Le numérique apporte d’importants avantages au quotidien dans la gestion de son entreprise, quelle que soit sa taille d’ailleurs. Mais même les petites entreprises ont intérêt à passer au numérique. Les gains de temps, de productivité, de simplification sont indéniables. Et cela vous permet de vous concentrer sur votre activité. Mais bien sûr, cette transformation […]
LinuxFr

MeshCentral, alternative à TeamViewer et RustDesk


Internet
Publié le
mardi 20 janvier 2026 07h49
Importé le
mardi 20 janvier 2026 13h03

Ce qui suit est une mise en œuvre basique de l’outil de prise en main à distance MeshCentral. Adapté pour les petits dépannages mais conçu pour les organisations, c’est une solution à évaluer face aux logiciels plus connus comme TeamViewer, AnyDesk ou RustDesk. Je (NdM: YvanM) me garderai cependant de faire un comparatif des fonctionnalités, car je ne connais pas assez cet outil et ses « concurrents ».

Sommaire

MeshCentral c’est quoi ?

MeshCentral propose des fonctionnalités similaires à TeamViewer ou AnyDesk. C’est à ma connaissance le seul outil complètement libre de ce type (il est sous license Apache 2.0). RustDesk est également régulièrement cité sur LinuxFR, mais c’est un logiciel « open core », on peut donc être rapidement limité avec la version libre selon les usages souhaités.

Le projet était, si ma mémoire est bonne, sponsorisé par Intel dans ses débuts. Il est toujours en développement, mais il n’y a visiblement qu’un seul mainteneur actif. Cette personne semble proposer le développement sponsorisé de fonctionnalités.

Malgré cette confidentialité, MeshCentral propose presque toutes les fonctionnalités qui me semblent nécessaires pour une utilisation en entreprise. Il est également adapté à mes besoins en tant que particulier qui dépanne ponctuellement la famille et les amis :

  • La partie serveur est libre et s’installe sur un serveur Linux (on peut aussi sur Windows) ;
  • Le client supporte Windows, Linux, MacOS, FreeBSD et Android, sur plusieurs architectures matérielles ;
  • La personne qui « prend la main » n’a pas de client à installer, tout se fait par l’interface web du serveur (ce n’est pas forcément un avantage, c’est juste pour expliquer comment ça s’utilise) ;
  • Il n’y a pas besoin de configurer le client pour qu’il pointe vers votre serveur, il suffit de le lancer ou de l’installer ;
  • Quand on prend la main sur les clients, on a accès :
  • Au bureau ;
  • À un shell ;
  • À une fonctionnalité de transfert de fichiers ;
  • Des informations sur le matériel ;
  • On peut se servir d’une machine sur laquelle le client est installé comme « rebond » pour accéder en RDP, VNC, HTTP et HTTPS aux autres machines qui sont sur le réseau du client ;
  • Le client permet un accès permanent ou à la demande ;
  • On peut créer des groupes de machines ;
  • On peut avoir plusieurs utilisateurs sur le serveur, avec des permissions différentes ;
  • Il permet l’authentification multi-facteur ;
  • Il supporte l’authentification locale, SAML, JumpCloud, Azure, GitHub, Google, SSO avec OpenID Connect… ;
  • On peut personnaliser le client et l’interface web ;
  • Il est multitenant ;
  • Il peut utiliser Intel AMT (je n’ai jamais essayé) : « when available, administrators can remotely power on, boot to BIOS and manage a system regardless ofthe operating system state. ». Je m’étais d’ailleurs dit que ça devait être une raison du support d’Intel pour ce projet ;
  • Et un paquet d’autres choses que je ne détaillerai pas.

J’ai une utilisation très restreinte de l’outil, mais j’ai quand même constaté des limitations embêtantes :

  • Il n’est pas possible d’accéder au bureau distant si celui-ci utilise Wayland. Si je comprends bien il faudrait un développeur C qui connaisse Wayland, à bon entendeur ;-). Plusieurs contournements sont possibles :
  • Utiliser l’accès en ligne de commande uniquement, c’est parfois suffisant ;
  • Expliquer à l’utilisateur de rouvrir sa session sous Xorg ;
  • Lancer un serveur RDP ou VNC sur le client, et utiliser le client RDP ou VNC intégré à l’interface web de MeshCentral (voir les suggestions en bas de cette dépêche).
  • En mode « à la demande » sous Windows, je n’arrivais pas à avoir la main sur les fenêtres lancées en tant qu’administrateur. Ça a peut-être changé depuis la dernière fois où j’ai testé (en 2023) ;
  • Je trouve que la documentation n’est pas super, il ne faut donc pas hésiter à aller voir les vidéos qui couvrent beaucoup de sujets.

Installation du serveur

La méthode d’installation dépendra forcément du contexte. Voilà le mien :

  • Je veux que le serveur soit sur mon ordinateur portable (actuellement sous Debian 13). Je n’ai pas de serveur à la maison et je n’ai pas envie de gérer une machine en plus. L’inconvénient c’est que je ne pourrais utiliser MeshCentral qu’à la maison, car j’aurais un enregistrement DNS qui pointera vers l’IP de ma box ;
  • Je veux faire tourner le serveur avec Podman dans un conteneur « utilisateur » (parce que même si j’ai pris l’habitude de Docker, j’ai envie de tester Podman).

En termes de RAM et d’utilisation CPU je ne me fais pas de soucis : pour les petites installations c’est censé tourné sur Raspberry Pi. Effectivement, le serveur démarré et un client connecté, le serveur consomme 90 Mo de RAM et 1 % de CPU (j’ai un i5-4300U, soit 4 cœurs à 1.90GHz)

Premier lancement

On installe podman :

sudo apt install podman

On crée l’utilisateur dédié nommé meshcentral (je trouve intéressant sur le principe d’avoir un utilisateur par service) qui fera tourner le conteneur, et on en profite pour mettre son home dans /srv (car ce n’est pas un utilisateur « normal ») :

sudo useradd --base-dir /srv \ --create-home \ --shell /bin/bash \ --user-group \ meshcentral

On note que par défaut useradd (tout comme adduser d’ailleurs) ajoute automatiquement une plage de sous-UID et sous-GID dans /etc/subuid et /etc/subgid : ces plages seront utilisées par les conteneurs que l’utilisateur meshcentral lancera (voir man 5 subuid).

Dans mon cas je démarrerai le service à la main quand j’en ai besoin, mais si on voulait que notre service puisse démarrer automatiquement à l’allumage de la machine il faudrait en plus exécuter la commande suivante :

sudo loginctl enable-linger meshcentral

On se connecte en tant que meshcentral :

sudo --login --user meshcentral

Il existe sur le Docker Hub des images de MeshCentral, mais je n’en vois pas d’officielles et j’ai envie de bricoler :-). En me basant sur la documentation d’installation, on crée donc un fichier /home/meshcentral/Containerfile (équivalent d’un Dockerfile) avec le contenu suivant :

# On se base sur Debian Trixie en version slim FROM docker.io/library/debian:trixie-slim # On définit que la version « latest » de MeshCentral sera installée par défaut ARG MESHCENTRAL_VERSION="latest" # On fait les mises à jour, on installe les logiciels nécessaires, puis on # supprime le cache des paquets RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get full-upgrade --assume-yes \ && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --assume-yes nodejs npm tini \ && rm -r /var/cache/apt/* # On crée un utilisateur dédié pour lancer le service RUN useradd --shell /usr/sbin/nologin --user-group --create-home meshcentral # On utilise ce nouvel utilisateur USER meshcentral # On se place dans le bon répertoire WORKDIR /home/meshcentral # On installe les dépendances de MeshCentral dans ce répertoire RUN npm install meshcentral@${MESHCENTRAL_VERSION} # On définit la variable d’environnement conseillée pour faire tourner node # en production ENV NODE_ENV=production # On lance tini pour qu’il prenne en charge et relaie SIGTERM ENTRYPOINT ["tini","--"] # Et finalement on lance meshcentral CMD ["node","./node_modules/meshcentral"]

On construit ensuite l’image, ici en précisant la version stable de MeshCentral qu’on veut récupérer du dépôt NPM et en appliquant un tag :

podman image build --build-arg MESHCENTRAL_VERSION=1.1.55 --tag meshcentral:1.1.55.

L’image est stockée dans ~/.local/share/containers/storage/overlay/. podman image ls m’indique qu’elle fait 976 Mo.

On crée les volumes :

podman volume create meshcentral-files # pour les fichiers qu’on veut transmettre depuis ou vers les clients podman volume create meshcentral-data # pour la configuration, les certificats, etc.

Ils se trouvent comme on peut s’y attendre dans ~/.local/share/containers/storage/volumes/.

On fait un premier lancement à la main, ce qui permet de créer le fichier de configuration par défaut et de tester si ça marche. On n’est pas root, donc on ne pourra pas utiliser le port 443. De plus, dans le conteneur MeshCentral ne tourne pas en tant que root et utilisera donc par défaut le port 1025 :

podman run --rm \ --volume=meshcentral-data:/home/meshcentral/meshcentral-data \ --volume=meshcentral-files:/home/meshcentral/meshcentral-files \ --publish 1025:1025/tcp \ --hostname meshcentral \ --name meshcentral \ localhost/meshcentral:1.1.55

Depuis le navigateur web, on peut aller sur https://127.0.0.1:1025 pour s’assurer que le service est accessible. Mais revenons pour l’instant dans le terminal et arrêtons notre conteneur avec Ctrl+C

Comme MeshCentral n’est pas joignable sur le port 80, on ne peut pas utiliser le client Let's Encrypt intégré pour obtenir un certificat. On va donc obtenir un certificat manuellement avec certbot.

Configuration DNS et IP

Sur mon nom de domaine, j’ajoute un enregistrement A aide.domain.example qui pointe vers l’adresse IPv4 de ma box. J’aurais bien aimé faire de l’IPv6 aussi, mais avec le pare-feu IPv6 de ma box Free c’est soit on ouvre tout, soit on ferme tout…

Côté box, j’ajoute une redirection de ports pour que les ports TCP 80 et 1025 arrivent sur l’adresse IPv4 de mon laptop. J’ai également configuré un bail statique sur ma box pour que mon ordinateur portable ait toujours la même adresse IP.

Installation du certificat TLS

On reprend notre utilisateur standard pour installer certbot :

sudo apt install certbot

On lance la commande suivante pour tester l’obtention d’un certificat. Il faudra renseigner une adresse e-mail (utilisée pour prévenir lorsque le certificat expire bientôt) et valider les conditions d’utilisation :

sudo certbot certonly --standalone --domain aide.domain.example --dry-run --test-cert

Si ce premier essai marche, on peut demander un certificat de test. C’est utile pour s’assurer qu’on a bien tous les bons paramètres, car Let's Encrypt applique des limites pour les demandes de certificats valides. On doit demander un certificat RSA (et non ECDSA par défaut) car MeshCentral ne sait pas encore gérer ECDSA. On va aussi utiliser l’option --deploy-hook pour copier le certificat au bon emplacement et avec les bonnes permissions. Le propriétaire de ces fichiers doit correspondre avec l’UID de l’utilisateur à l’intérieur de notre conteneur, sinon la clé privée ne sera pas lisible par MeshCentral. On peut pour cela regarder quel est l’UID des fichiers dans notre volume (/srv/meshcentral/.local/share/containers/storage/volumes/meshcentral-data/_data/), pour le reporter 4 fois dans la commande ci-dessous (dans mon cas 232071). Attention également à adapter le nom de domaine (à 3 endroits) :

sudo certbot certonly --test-cert \ --key-type rsa \ --standalone \ --domain aide.domain.example \ --deploy-hook 'install --verbose --owner=232071 --group=232071 --mode=644 /etc/letsencrypt/live/aide.domain.example/fullchain.pem /srv/meshcentral/.local/share/containers/storage/volumes/meshcentral-data/_data/webserver-cert-public.crt; install --verbose --owner=232071 --group=232071 --mode=600 /etc/letsencrypt/live/aide.domain.example/privkey.pem /srv/meshcentral/.local/share/containers/storage/volumes/meshcentral-data/_data/webserver-cert-private.key'

Si tout se passe bien, on peut exécuter la même commande mais sans l’option --test-cert et on aura cette fois un certificat valide. Celui-ci est valable 3 mois, et par défaut est renouvelé automatiquement par le service systemd certbot.service déclenché par le timer certbot.timer. Comme je suis sur un laptop et que ce renouvellement ne peut fonctionner que si je suis chez moi, je désactive l’exécution automatique :

sudo systemctl disable certbot.timer

Quand j’aurais besoin de renouveler le certificat et que je serai à la maison, j’aurais simplement à faire sudo systemctl start certbot.service (enfin c’est comme ça que j’ai compris le mécanisme, je n’ai pas testé).

Configuration textuelle de MeshCentral

On va maintenant modifier le fichier de configuration qui a été généré au premier démarrage de MeshCentral. Depuis l’hôte, en tant que l’utilisateur meshcentral, la solution la plus simple est de lancer podman unshare vim ~/.local/share/containers/storage/volumes/meshcentral-data/_data/config.json. Ça permet d’être dans le bon namespace pour avoir les droits d’écriture sur le fichier. On pourrait aussi utiliser notre compte root de l’hôte mais c’est intéressant de connaître l’existence de podman unshare qui semble bien utile pour comprendre et résoudre des problèmes.

Dans mon cas j’ajoute simplement les directives suivantes sous settings. On peut laisser les commentaires déjà présents dans le fichier. Les curieux iront lire la documentation (par exemple ici) pour voir tout ce qu’il est possible de faire :

  • "cert": "aide.domain.example" pour indiquer comment MeshCentral est joignable ;
  • "port": "1025" pour spécifier le port plutôt que de prendre le premier disponible ;
  • "WANonly": true parce que les fonctionnalités de LAN ne m’intéressent pas ;
  • "amtManager": false parce que je ne vais pas me servir d’AMT (je ne sais pas si ça marche vraiment parce qu’il écoute toujours sur le port 4433, mais ça n’est pas gênant, car le port n’est pas exposé sur l’hôte).

On peut relancer MeshCentral pour s’assurer que ça fonctionne.

Création du quadlet

Bien que Podman supporte les fichiers docker-compose.yml (si on installe le paquet Debian podman-compose), il cherche avant tout à s’intégrer au mieux avec systemd. Pour ça il propose les quadlets (voir man 5 quadlet), qui sont un type d’unités systemd qui permettent de faire à peu près la même chose qu’un fichier docker-compose.yml. On va utiliser cette méthode pour faciliter le lancement ultérieur de notre conteneur. Ici, je vais placer mon unité systemd dans le répertoire de mon utilisateur meshcentral. On crée le bon répertoire :

mkdir --parents ~/.config/containers/systemd/

Et on y crée le fichier ~/.config/containers/systemd/meshcentral.container avec le contenu suivant :

[Unit] Description=Meshcentral in a Podman container # C’est déjà une dépendance implicite, mais je la mets pour que ce soit explicite After=networking.target [Container] Image=localhost/meshcentral:1.1.55 ContainerName=meshcentral HostName=meshcentral PublishPort=1025:1025 Volume=meshcentral-files:/home/meshcentral/meshcentral-files Volume=meshcentral-data:/home/meshcentral/meshcentral-data # Je ne sais pas si c’est c’est vraiment utile mais ça ne coûte rien DropCapability=all

On indique à systemd de prendre en compte ce nouveau fichier :

systemctl --user daemon-reload

Et on peut démarrer notre service simplement :

systemctl --user start meshcentral.service

Utilisation de MeshCentral

Première connexion

Passons enfin à l’utilisation de MeshCentral. Depuis la page d’accueil de l’interface web, cliquer sur le lien pour créer un premier compte utilisateur.

Une fois connecté, cliquer sur le lien « Créer un nouveau groupe d’appareils ». Pour mon usage basique, je laisse comme type « Gérer à l’aide d’un agent logiciel ».

Installation de l’agent

Il faut maintenant obtenir et installer le client (ici appelé « agent ») sur les postes, et quand on clique sur « Ajouter un agent » à côté du nom du groupe il y a pléthore de choix.

Pour Windows

Pour Windows, je ne saurais pas dire exactement quels choix permettent quelles fonctionnalités (installation en tant que service, assistance à la demande sans que l’utilisateur ait les droits d’administration…) car je n’ai plus de machine pour tester, désolé.

À noter que par défaut l’agent n’est pas signé, donc Windows demande une confirmation avant d’exécuter le binaire.

Pour Linux

Pour Linux, on obtient un agent à installer en tant que service en choisissant « Exécutable d’installation Linux / BSD / macOS », avec « Type d’installation » « Ligne de commande & bureau distant » ou « Ligne de commande uniquement », puis en cliquant sur le lien nommé « MeshAgent ». Il faudra alors faire une commande du type chmod +x && sudo./meshagent pour l’installer (ajouter l’option -install à meshagent pour éviter la pop-up graphique qui demande quoi faire).

L’agent sera installé dans /usr/local/mesh_services/meshagent/meshagent et sera lancé automatiquement par le service meshagent.service. Pour le désinstaller il est possible de supprimer ces fichiers, ou d’utiliser le binaire de désinstallation téléchargeable également depuis l’interface web, toujours via le lien « Ajouter un agent », ou de lancer le binaire installé avec l’option -uninstall.

On obtient un agent que l’utilisateur sans droit root pourra utiliser en choisissant « Exécutable d’installation Linux / BSD / macOS », avec « Type d’installation » « Interactif seulement » (pas vraiment instinctif…). Il faudra dans tous les cas bien expliquer à cet utilisateur comment démarrer ce binaire (car ça dépend de l’environnement qu’il utilise et parce qu’il faut ajouter les droits d’exécution), mais une solution est de lui donner par e-mail une commande toute prête à copier-coller dans son terminal, du type :

cd /tmp/ && wget -O meshagent « https://aide.domain.example:1025/meshagents?id=pYWSORfgTMN%2IdKohzytKQePtv8DzNzbTZcqB2m%24h7MuA4bzXSWJRt6vLN9VBILW&installflags=1&meshinstall=6 » && chmod +x meshagent &&./meshagent

Pour une utilisation à la demande, je m’étais créé un paquet Debian qui une fois installé, permettait par un clic de l’utilisateur de télécharger le binaire et de le lancer, le tout avec une interface graphique basique. C’était de loin le plus simple pour les utilisateurs, mais c’est pas mal de travail.

Avec une invitation

Les méthodes d’installation ci-dessus nécessitent que vous transmettiez le binaire (ou le lien de téléchargement précis) aux utilisateurs. Une autre méthode consiste à inviter les utilisateurs ce qui crée une URL spécifique, accessible sans identifiant, pour qu’ils puissent eux-mêmes télécharger le binaire et obtenir les instructions d’installation. Pour cela, depuis la page d’accueil, cliquer sur le lien « Inviter » à côté du nom du groupe.

C’est à mon sens particulièrement intéressant pour les utilisateurs Windows, puisqu’il suffit de leur transmettre le lien par courriel. (NdM: attention à ne pas habituer les utilisateurs à installer tout et n'importe quoi en un clic sur un lien, en particulier un outil de prise en main à distance. Optez pour un canal de confiance, un courriel signé, etc.)

Mise à jour de l’agent

La mise à jour des agents se fait automatiquement (si nécessaire) après redémarrage du serveur sur une nouvelle version.

Utilisation avec Wayland

Comme dit plus haut, l’agent MeshCentral n’est pas encore compatible Wayland. Voici quelques idées de contournement qui peuvent convenir à votre cas d’usage, ou pas.

Pour avoir accès au gestionnaire de session, j’imagine qu’il suffirait de lancer ce dernier avec Xorg, mais je n’ai jamais testé.

Pour avoir accès à la session on peut en général indiquer à l’utilisateur comment rouvrir sa session avec Xorg. Mais rappelons-nous également que MeshCentral peut se connecter à un serveur RDP ou VNC qui tourne sur la machine, ce qu’on peut faire assez facilement.

Avec Gnome

Si c’est Gnome qui tourne on peut simplement lancer le serveur VNC intégré. On peut indiquer à l’utilisateur de le faire, mais on peut aussi le faire nous-même depuis l’accès en ligne de commande proposé par MeshCentral. À noter que ce serveur VNC écoute sur toutes les interfaces réseau et que même si un mot de passe aléatoire est défini, il est recommandé de l’arrêter lorsque l’accès distant au bureau n’est plus nécessaire :

# on enregistre comment accéder à dbus (nécessaire pour dconf et systemctl export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$(id --user)"/bus # on désactive l’accès RDP qui est activé par défaut dconf write /org/gnome/desktop/remote-desktop/rdp/enable false # on active l’accès VNC qui est désactivé par défaut dconf write /org/gnome/desktop/remote-desktop/vnc/enable true # on démarre le service utilisateur de partage du bureau systemctl --user start gnome-remote-desktop.service

Avec KDE

Une solution est d’utiliser le serveur VNC Krfb, qu’on installera avec une commande du type sudo apt install krfb. Il suffit ensuite de demander à l’utilisateur de démarrer ce logiciel depuis le menu (il se trouve dans la rubrique « Internet » et qu’il vous communique le mot de passe.

Comme pour le cas de Gnome juste au-dessus, je recommande également d’arrêter Krfb une fois la prise en main à distance terminée (depuis le menu « Fichier -> Quitter », parce que cliquer sur la croix ferme juste la fenêtre).

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur