<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://jeremy.lecour.fr/blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://jeremy.lecour.fr/blog/" rel="alternate" type="text/html" /><updated>2026-03-18T16:48:39+01:00</updated><id>https://jeremy.lecour.fr/blog/feed.xml</id><title type="html">Blog personnel de Jérémy Lecour</title><subtitle>Sysadmin et développeur web, facilitateur/leader humain et technique chez Evolix.</subtitle><entry><title type="html">Déchiffrement LUKS auto avec Clevis et Tang</title><link href="https://jeremy.lecour.fr/blog/2026/03/18/dechiffrement-luks-auto-clevis-tang/" rel="alternate" type="text/html" title="Déchiffrement LUKS auto avec Clevis et Tang" /><published>2026-03-18T00:00:00+01:00</published><updated>2026-03-18T00:00:00+01:00</updated><id>https://jeremy.lecour.fr/blog/2026/03/18/dechiffrement-luks-auto-clevis-tang</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2026/03/18/dechiffrement-luks-auto-clevis-tang/"><![CDATA[<p>Cet article a pour but de décrire le dispositif de déchiffrement automatique de volumes chiffrés avec LUKS.
Il ne décrit pas la manière de créer un volume chiffré, ni le déchiffrement manuel (qui restera possible en plus du déchiffrement automatique).</p>

<h2 id="contexte">Contexte</h2>

<p>Lorsqu’un serveur démarre, ses volumes chiffrés ne sont pas déchiffrés et pas montés. Par défaut, si les partitions ne sont pas en montage automatique il faut faire les actions à la main après le démarrage, et si les partitions sont configurées pour un montage auto alors il faut saisir la <em>passphrase</em> au démarrage.</p>

<p>Dans notre cas (chez Evolix), ce déchiffrement n’est pas fait automatiquement car nous n’avons pas mis en place de moyen de déchiffrement stocké localement de manière sécurisée.</p>

<p>En revanche, en utilisant le binôme « <a href="https://wiki.evolix.org/HowtoClevis">Clevis</a> + <a href="https://wiki.evolix.org/HowtoTang">Tang</a> » il est possible de faire ce déchiffrement automatiquement grace à un moyen de déchiffrement distant et sécurisé.</p>

<h2 id="clevis--tang">Clevis + Tang</h2>

<p>Clevis est un outil qui permet d’automatiser le déchiffrement. Parmi les méthodes possibles il y a l’utilisation d’une ressource réseau pour obtenir des éléments de déchiffrement.</p>

<p>Tang est cette ressource réseau (un très simple serveur HTTP) qui stocke et communique des éléments qui seront utilisés par Clevis pour le déchiffrement.</p>

<p>C’est un peu comme si on stockait la <em>passphrase</em> ailleurs sur le réseau pour éviter de la stocker localement. En réalité ça n’est pas la passphrase elle-même mais une partie d’une information qui va autoriser le déchiffrement.
Si le serveur qui a son volume chiffré (et Clevis configuré) est séparé (en termes de réseau) du serveur Tang, alors le déchiffrement automatique ne peut pas avoir lieu.</p>

<p>Il est important de préciser que la partie Tang doit être protégée, car si on arrive à extraire à la fois le volume chiffré et les données de Tang, il devient possible de déchiffrer le volume.</p>

<p>Par exemple, si la partie Clevis et la partie Tang sont physiquement proches (dans la même baie ou salle de datacenter, ou dans 2 serveurs virtuels gérés par le même hyperviseur) il faut que les données de Tang soient stockées de manière chiffrées elles-aussi. On retrouve alors le problème de départ : comment déchiffrer le volume qui contient ces données ?</p>

<p>Jusque-là nous avons accepté les contraintes d’un déchiffrement manuel pour Tang, en estimant que ça sera suffisamment rare pour ne pas être problématique.
Mais on peut envisager de déchiffrer automatiquement les données de Tang grâce un autre serveur Tang qui ne souffre pas des limites de proximité. On ne fait que reporter le problème, mais ça reste envisageable si on a plusieurs frontières réseau et physiques disponibles.</p>

<p>Il est aussi conseillé de protéger Tang au niveau réseau ; si possible avec des restrictions d’interfaces d’écoute (uniquement sur un LAN…), et à minima avec des restrictions d’IP source pour ne pas que n’importe qui puisse récupérer en HTTP les informations de Tang.</p>

<h2 id="scenarios-opérationnels">Scenarios opérationnels</h2>

<p>Si <strong>le serveur Tang est le seul à redémarrer</strong> (pour une maintenance…), alors il faut s’y connecter (en console ou SSH), déverrouiller/monter le volume chiffré pour Tang. Et c’est tout. Tang ne doit être disponible qu’au moment du déchiffrement automatique.</p>

<p>Si <strong>un serveur avec Clevis redémarre et le serveur Tang est disponible</strong>, alors le déchiffrement du volume et le montage de la partition va se faire automatiquement. Il n’y a aucune action manuelle à faire.</p>

<p>Si <strong>un serveur avec Clevis redémarre et le serveur Tang n’est pas disponible</strong>, alors on peut faire le déchiffrement manuellement, ou bien rendre le serveur avec Tang disponible et déclencher le déverrouillage par Clevis.</p>]]></content><author><name></name></author><category term="Informatique" /><category term="networking" /><category term="security" /><category term="cryptography" /><summary type="html"><![CDATA[Cet article a pour but de décrire le dispositif de déchiffrement automatique de volumes chiffrés avec LUKS. Il ne décrit pas la manière de créer un volume chiffré, ni le déchiffrement manuel (qui restera possible en plus du déchiffrement automatique).]]></summary></entry><entry><title type="html">FoxyProxy : accès facile aux ressources privées</title><link href="https://jeremy.lecour.fr/blog/2026/02/06/foxyproxy/" rel="alternate" type="text/html" title="FoxyProxy : accès facile aux ressources privées" /><published>2026-02-06T00:00:00+01:00</published><updated>2026-02-06T00:00:00+01:00</updated><id>https://jeremy.lecour.fr/blog/2026/02/06/foxyproxy</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2026/02/06/foxyproxy/"><![CDATA[<p>Lorsqu’on souhaite utiliser des interfaces web qui ne sont accessibles que depuis un certain réseau (et qu’on ne peut pas être directement dans ce réseau, physiquement ou via un VPN) il y a plusieurs moyens.</p>

<h2 id="proxy-http">Proxy HTTP</h2>

<p>Dans certains cas on peut mettre un proxy HTTP en bordure du réseau (par exemple HAProxy), accessible depuis l’extérieur. Celui-ci va exposer le service interne à l’extérieur, tout en appliquant des logiques de filtrage. Mais souvent, on ne souhaite pas du tout exposer de tels services, même avec un filtrage par IP ou authentification.</p>

<h2 id="redirection-de-port-par-ssh">Redirection de port par SSH</h2>

<p>Si on dispose d’un bastion ou d’un serveur de rebond (à la fois dans le réseau publique et dans le réseau interne), on peut aussi utiliser le principe du tunnel SSH.
On démarre une connexion SSH vers le serveur intermédiaire. Cette connexion SSH ouvre un port local pour lequel il va transmettre le trafic avec un certain port distant :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ ssh -L &lt;LOCAL_PORT&gt;:&lt;REMOTE_HOST&gt;:&lt;REMOTE_PORT&gt; &lt;FORWARD_HOST&gt;`
</code></pre></div></div>

<p>Par exemple, <code class="language-plaintext highlighter-rouge">ssh -L 8443:192.168.2.1:443 203.0.113.1</code> permettra se se connecter sur <code class="language-plaintext highlighter-rouge">https://127.0.0.1:8443</code> pour en réalité contacter <code class="language-plaintext highlighter-rouge">https://192.168.2.1:443</code> en passant par <code class="language-plaintext highlighter-rouge">203.0.113.1</code>.</p>

<p>C’est bien mais limité ; on n’a qu’un seul port (à moins de faire plusieurs <code class="language-plaintext highlighter-rouge">-L XXX</code>), l’hôte de connexion est <code class="language-plaintext highlighter-rouge">127.0.0.1</code> au lieu de l’hôte réel et ça peut causer des soucis de certificats…</p>

<h2 id="redirection-dynamique-par-ssh">Redirection dynamique par SSH</h2>

<p>Il est aussi possible d’utiliser le « dynamic forwarding » de SSH. On ouvre aussi une connexion vers son hôte intermédiaire, mais cette connexion servira de proxy SOCKS5.</p>

<p>En configurant son navigateur pour utiliser ce proxy, on y fera passer tout le trafic voulu comme pour une connexion directe. : <code class="language-plaintext highlighter-rouge">ssh -D LOCAL_PORT FORWARD_HOST</code>.</p>

<p>C’est très bien mais fastidieux car les navigateurs courants présentent des interfaces très limitées pour la configuration. Et si on ne veut pas que tout le trafic du navigateur passe par ce proxy on se retrouve à activer/désactiver ça en permanence.</p>

<p>Heureusement, il existe l’extension <a href="https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/">FoxyProxy</a> qui permet de le faire de manière conditionnelle et plus ergonomique (Merci à <a href="https://guerby.org/">Laurent Guerby</a> de m’avoir fait découvrir ça pendant le FOSDEM 2026).</p>

<p>Il y a plusieurs mode pour l’utilisation de FoxyProxy : global, par onglet ou par motif d’URL.
Si les interfaces utilisées sont sur des domaines ou IP fixes et peu nombreuses, le mieux est d’utiliser des motifs d’URL.</p>

<p>Une fois FoxyProxy installé dans votre navigateur, il est conseillé de l’épingler dans la barre d’outils du navigateur. On accède alors facilement à ses fonctionnalités et sa configuration.</p>

<p>La configuration est accessible par l’icone de l’extension, puis le bouton « Options ». On crée alors un ou plusieurs proxys. Voici un exemple de configuration :</p>

<ul>
  <li>Nom : <code class="language-plaintext highlighter-rouge">localhost:9090</code></li>
  <li>Type : <code class="language-plaintext highlighter-rouge">SOCKS5</code></li>
  <li>Hostname : <code class="language-plaintext highlighter-rouge">127.0.0.1</code></li>
</ul>

<p>Dans la section « Proxy by Patterns » on ajoute autant de lignes que souhaité, par exemple :</p>

<ul>
  <li>Proxy By Patterns : <code class="language-plaintext highlighter-rouge">Include / RegExp</code></li>
  <li>Nom : <code class="language-plaintext highlighter-rouge">10.42.*.*</code></li>
  <li>Modèles : <code class="language-plaintext highlighter-rouge">^(http|ws)s?://10\.42(\.\d+)(\.\d+)/</code></li>
</ul>

<p>On active ensuite le mode <code class="language-plaintext highlighter-rouge">Proxy by Patterns</code> dans le menu déroulant de l’extension.</p>

<p>Si vous activez la fonctionnalité <code class="language-plaintext highlighter-rouge">Proxy DNS</code> vous utiliserez alors la résolution DNS du serveur de rebond (y compris les entrées de <code class="language-plaintext highlighter-rouge">/etc/hosts</code>).</p>

<h3 id="mise-en-pratique">Mise en pratique</h3>

<p>Pour l’ouverture de la connexion SSH, vous pouvez le faire avec la ligne de commande complète : <code class="language-plaintext highlighter-rouge">ssh -D 9090 203.0.113.1</code>. On peut aussi ajouter une entrée dans la config SSH locale (à laquelle vous pouvez évidemment ajouter toutes les options utiles ; <code class="language-plaintext highlighter-rouge">User</code>, <code class="language-plaintext highlighter-rouge">Port</code>, clés SSH…) :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># vim ~/.ssh/config
[…]
Host bastion-forward
    Hostname 203.0.113.1
    DynamicForward 9090
[…]
</code></pre></div></div>

<p>On peut alors simplifier la connexion :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ ssh bastion-forward
</code></pre></div></div>

<p>En se rendant sur une URL qui correspond aux motifs configurés, ou si vous êtes sur un onglet concerné, ou si vous avez activé le mode global, votre trafic sera dirigé sur le proxy SOCKS5 local et passera par votre connexion SSH.</p>]]></content><author><name></name></author><category term="Informatique" /><category term="networking" /><category term="web" /><category term="security" /><summary type="html"><![CDATA[Lorsqu’on souhaite utiliser des interfaces web qui ne sont accessibles que depuis un certain réseau (et qu’on ne peut pas être directement dans ce réseau, physiquement ou via un VPN) il y a plusieurs moyens.]]></summary></entry><entry><title type="html">DebConf 2025</title><link href="https://jeremy.lecour.fr/blog/2025/10/26/debconf-2025/" rel="alternate" type="text/html" title="DebConf 2025" /><published>2025-10-26T01:00:00+02:00</published><updated>2025-10-26T01:00:00+02:00</updated><id>https://jeremy.lecour.fr/blog/2025/10/26/debconf-2025</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2025/10/26/debconf-2025/"><![CDATA[<p>Ces 2 dernières semaines (c’était du 7 au 19 juillet), la communauté Debian avait posé ses valises (et toute sa geekerie) à Brest pour <a href="https://debconf25.debconf.org/">le DebCamp et la DebConf 2025</a>.
Et grâce à un déplacement organisé par <a href="https://evolix.com/">Evolix</a> (mon employeur) j’ai pu y participer pleinement.</p>

<p>Une <a href="https://www.debconf.org/">DebConf</a> est une conférence dédiée à la distribution <a href="https://debian.org/">Debian</a>, organisée par la communauté. Elle a lieu tous les ans dans une ville différente du monde. C’est l’occasion pour quelques centaines de personnes de se rencontrer physiquement pour des discussions, travaux, présentations, et moments sociaux. Elle est reconnue comme étant un élément clé dans la cohésion de cette communauté globale.
Généralement la DebConf se déroule du lundi au samedi avec un planning dense de présentations et quelques moments plus détendus pour favoriser la socialisation. Elle est souvent précédée par une semaine de DebCamp, beaucoup plus informel qui permet à des équipes spécialisées de se retrouver pour des sessions de travail en face-à-face, organisées ou impromptues</p>

<p>Ma première participation à une DebConf était en <a href="https://debconf17.debconf.org/">2017 à Montréal</a>. Depuis j’ai participé à l’organisation de plusieurs Mini DebConf (<a href="https://wiki.debian.org/DebianEvents/fr/2017/Toulouse">Toulouse 2017</a>, <a href="http://minidebconf-mrs.debian.net/">Marseille 2019</a>, <a href="https://toulouse2024.mini.debconf.org/">Toulouse 2024</a>). Ce sont des versions plus modestes et plus courtes, mais l’esprit reste identique.</p>

<p>Sans grande poésie je vais passer en revue les différents aspects qui m’ont marqué pendant ces 12 jours.</p>

<h2 id="travaux-internes">Travaux internes</h2>

<p>Les quelques personnes d’Evolix qui étaient là ont pu se réserver quelques heures de travail, plus ou moins focalisées sur Debian et des projets internes en cours. On n’a rien révolutionné, mais on a pu faire avancer les choses sur plusieurs points. C’était cool d’avoir une occasion supplémentaire de le faire car dans le feu du quotidien, ça n’arrive pas si souvent que ça. Personnellement j’ai très peu gardé le contact avec le reste de l’activité de la boîte. J’avoue avoir beaucoup de mal à être dans deux dynamiques à la fois.</p>

<h2 id="video-team">Video-team</h2>

<p>J’avais très envie de mettre un peu les pieds dans <a href="https://debconf-video-team.pages.debian.net/docs/">l’équipe vidéo de Debian</a>. C’est un pilier des événements car c’est ça qui fait que les présentations sont filmées pour être diffusées en direct puis disponibles au visionnage. Ils ont mis sur pieds il y a bien longtemps et raffinent année après année un dispositif professionnel de captation, de mixage, de diffusion… Ça résonne particulièrement avec mes hobbies donc je voulais m’impliquer plus. J’ai suivi leur formation pour la manipulation en direct : technicien son, opérateur caméra et réalisateur. J’ai pu assurer un de ces rôles pendant une quinzaine de sessions. Au delà de l’utilité pour la conférence, j’ai appris plein de choses en posant mille questions aux vétérans. La prochaine étape pourrait être de rentrer plus dans les coulisses. Ça sera peut-être pour une prochaine fois.</p>

<h2 id="contenu">Contenu</h2>

<p><a href="https://debconf25.debconf.org/talks/">Les contenus et les sujets</a> présentés pendant une DebConf sont très variés mais tournent exclusivement autour de la distribution. Certaines pésentations sont très techniques et pointues, d’autres sont orientées sur la communication, la gouvernance, la diversité, la communication… Il y a en pour tous les goûts. Il arrive que je sois dans une salle et qu’une présentation me parle plus que la moyenne, mais généralement je me sens moyennement connecté car je n’ai pas un rôle central dans cette communauté. Je ne suis pas mainteneur de paquets, ni aucune autre équipe.
Voici quelques présentations qui m’ont intéressé ou marqué :</p>

<ul>
  <li><a href="https://debconf25.debconf.org/talks/47-semi-serious-stand-up-comedy-10-years-later/">Semi-serious stand up comedy, 10 years later</a></li>
  <li><a href="https://debconf25.debconf.org/talks/184-wcurl-one-year-later/">wcurl - one year later</a></li>
  <li><a href="https://debconf25.debconf.org/talks/216-reproducedebiannet-rebuilding-what-is-distributed-from-ftpdebianorg/">reproduce.debian.net - rebuilding what is distributed from ftp.debian.org</a></li>
  <li><a href="https://debconf25.debconf.org/talks/141-bits-from-apt/">Bits from APT</a></li>
  <li><a href="https://debconf25.debconf.org/talks/22-meet-the-technical-committee/">Meet the Technical Committee</a></li>
  <li><a href="https://debconf25.debconf.org/talks/18-debiansocial-bof/">debian.social BoF</a></li>
</ul>

<h2 id="daytrip">DayTrip</h2>

<p>Généralement en milieu de conférence, une journée spéciale — le Day Trip — permet à tout le monde de s’écarter des salles de travail et de présentation, pour aller passer une journée plus touristique. Il y a souvent plusieurs choix possibles. J’ai choisi l’option de la journée de balade à vélo sur l’Île d’Ouessant. Après 1h30 d’une traversée en bateau qui a tracassé l’estomac de quelques personnes, on a été accueilli par un grand soleil et des vélos rouges. Une belle crêperie a pris soin de nos papilles et nous a donné des forces pour arpenter l’île. On y a rencontré quelques chèvres, moutons et vaches, une végétation visiblement influencée par un climat marin rigoureux et plusieurs phares ou vigies. Les coups de soleil ont surpris les maladroits qui n’avaient pas anticipé.</p>

<h2 id="soirée--cheese--wine-">Soirée « Cheese &amp; Wine »</h2>

<p>Autre tradition depuis 2004, une soirée est dédiée au partage de denrées alimentaires variées, par toutes les personnes intéressées. Ça va bien-sûr au-delà du vin et du fromage, même s’ils restent les composants phares de la soirée. Au total ce sont des dizaines de kilos de fromages et de litres de vin (ou autres alcools plus ou moins forts) qui ont été engloutis en 3 heures, après un après-midi entier nécessaire à la découpe, étiquetage, présentation… Anecdote marseillaise ; à Montréal nous avions apporté du pastis et des non connaisseurs s’étaient lancés dans une dégustation sans eau ajoutée. Ça nous avait fait bien rire à l’époque (plus qu’eux), donc cette année j’avais mis une étiquette explicite sur la bouteille : « add water : 5×1 ». Il faut croire que les gens ne lisent pas, car très peu d’eau a été ajoutée au super « Pastis de la Plaine » apporté par Grégory. Pour ma part, j’ai abusé d’un Parmesan de 150 mois, de la caïpirinha préparée par les brésiliens, de Gins de Martinique et de Suisse (et oui !). Je suis rentré repu et saoul, mais dignement !</p>

<h2 id="les-langues">Les langues</h2>

<p>Il y avait des personnes de plus de 50 pays différents.
Évidemment l’anglais est la langue de référence dans ces cas-là, mais occasionnellement des groupes se replient temporairement sur leur langue commune. On a beaucoup entendu d’allemand, de français, de portuguais/brésilien…
On peut noter l’effort important que cela demande aux personnes dont l’anglais n’est pas la langue maternelle ou une langue massivement enseignée.</p>

<h2 id="notre-présentation">Notre présentation</h2>

<p>Grégory et moi travaillons depuis plusieurs mois à une présentation de la manière dont nous maintenons à jour nos serveurs sous Debian. Après plusieurs itérations, nous avons préparé une version en anglais qui couvrait en 40 minutes les mises à jour mineures (de sécurité) et les majeures (changement de version). Un mauvais virus a malheureusement empêché Grégory de faire la présentation avec moi.
J’ai l’impression que ça s’est bien déroulé. Il y a eu plusieurs questions pertinentes sur place et plus tard.
La captation vidéo est de mauvaise qualité. Les diapos ont été coupées et le cadrage n’est pas super. Et comme pour quelques autres présentations, le son a été dégradé par l’enregistrement.
Nous présenterons d’ailleurs (en français) ce même sujet au <a href="https://capitoledulibre.org/programme/">Capitole du Libre à Toulouse le samedi 14 novembre 2015</a>.</p>

<h2 id="rencontres">Rencontres</h2>

<p>La DebConf est surtout un événement social. C’est l’occasion de rencontrer ou retrouver des gens qui sont directement responsables de parties de la distribution ou de la communauté.
Nous avons notamment pu discuter avec Lee Garrett qui maintient Ansible dans Debian. Nous avons mis en évidence que la version de Debian 13 est incompatible avec des serveurs en Debian 10 ou inférieur. Ça permis de discuter de solutions ou contournements possibles.
J’ai aussi longuement discuté avec des personnes qui font un métier d’hébergeur/infogérant comme Evolix. Nous avons partagé des approches, techniques, difficultés…
En dehors des paquets et du code on retrouve la très grande diversité de Debian au travers des humains qui la font vivre ; religions, langues, cultures, identités de genre… Dans un monde polarisé, chargé d’antagonismes, ça fait du bien de trouver de l’ouverture (d’esprit, de bras, de code).</p>]]></content><author><name></name></author><category term="Informatique" /><category term="debian" /><category term="presence" /><category term="conference" /><summary type="html"><![CDATA[Ces 2 dernières semaines (c’était du 7 au 19 juillet), la communauté Debian avait posé ses valises (et toute sa geekerie) à Brest pour le DebCamp et la DebConf 2025. Et grâce à un déplacement organisé par Evolix (mon employeur) j’ai pu y participer pleinement.]]></summary></entry><entry><title type="html">Je quitte Twitter</title><link href="https://jeremy.lecour.fr/blog/2024/12/09/je-quitte-twitter/" rel="alternate" type="text/html" title="Je quitte Twitter" /><published>2024-12-09T00:00:00+01:00</published><updated>2024-12-09T00:00:00+01:00</updated><id>https://jeremy.lecour.fr/blog/2024/12/09/je-quitte-twitter</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2024/12/09/je-quitte-twitter/"><![CDATA[<p>Après <a href="/blog/2019/01/25/je-quitte-facebook/">Facebook en 2019</a> et <a href="/blog/2020/05/17/je-quitte-dropbox/">Dropbox en 2020</a>, j’ai fermé mon compte Twitter.</p>

<p>C’est drôle qu’à la fin de mon post sur la fin de mon compte Dropbox je disais « il me reste principalement Instagram et Gmail » en oubliant complètement Twitter.<br />
Je pense qu’à l’époque je considérais Twitter comme acquis et pas du tout problématique. Et depuis l’ouverture de mon compte en 2009 j’avais toujours eu beaucoup de chance (ou une bonne curation) et jamais ressenti de toxicité dans mon fil. Je ne suivais pas de comptes trop populaires, pas de médias mainstream. Tant que j’ai pu, j’ai utilisé un client sans pub ni bullshit d’algorithmes.
Twitter a participé activement à mon instruction, à l’élargissement de mes connaissances sociales et techniques, à l’ouverture de mon esprit à des idées nouvelles et progressistes… Il a tenu une des promesses d’Internet.</p>

<p>Depuis le rachat de Twitter par Elon Musk, ses décisions éthiques et techniques désastreuses et enfin le naufrage d’extrême droite qu’il incarne, je ne pouvais plus supporter ça.</p>

<p>En janvier 2024, j’avais décidé de ne plus utiliser Twitter, pour 1 mois (comme un « dry january »), pour voir si j’arrivais à m’en détacher. Le mois s’est transformé en une année pendant laquelle je ne me suis connecté que 2 ou 3 fois. Ça a été un sevrage sans effort ni frustration. Pas de ressenti à la  <em>Trainspotting</em> ou d’<em>Arizona Dream</em> pour moi.</p>

<p>Depuis 2019 j’utilise <a href="https://mastodon.evolix.org/@jlecour">Mastodon sur l’instance interne d’Evolix</a> (on en a aussi une <a href="https://pouet.evolix.org">ouverte à tou⋅tes</a>). J’utilise aussi un client sans pub ni bullshit.<br />
Je n’ai pas retrouvé toutes les mêmes personnes, mais j’en ai rencontré d’autres. et pour les grandes lignes je n’ai rien perdu.</p>

<p>J’ai aussi repris l’habitude de consulter des flux RSS de sites, blogs, médias… C’est tellement simple et propre. Ça aussi c’est une des promesses d’Internet qui est tenue.</p>

<p>Il y a quelques jours/semaines, j’ai téléchargé une dernière archive de mes données Twitter/X, et j’ai demandé à fermer mon compte. Je ne me fais pas d’idée, je ne pense pas qu’ils suppriment les données, mais je n’y suis plus.</p>

<p>Il paraît qu’il y a un risque de <em>squatting</em> sur les comptes fermés. Je n’ai pas trop pensé à ça (alors que j’y avais pensé en <a href="/blog/2019/02/23/nouveau-blog/">quittant Wordpress</a>). On verra bien.</p>]]></content><author><name></name></author><category term="Personnel" /><category term="opinion" /><summary type="html"><![CDATA[Après Facebook en 2019 et Dropbox en 2020, j’ai fermé mon compte Twitter.]]></summary></entry><entry><title type="html">Freebox en bridge, edgerouter et IPv6</title><link href="https://jeremy.lecour.fr/blog/2024/12/08/freebox-bridge-edgerouter-ipv6/" rel="alternate" type="text/html" title="Freebox en bridge, edgerouter et IPv6" /><published>2024-12-08T00:00:00+01:00</published><updated>2024-12-08T00:00:00+01:00</updated><id>https://jeremy.lecour.fr/blog/2024/12/08/freebox-bridge-edgerouter-ipv6</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2024/12/08/freebox-bridge-edgerouter-ipv6/"><![CDATA[<p>Il existe plusieurs guides en lignes pour arriver à un résultat similaire (voir en bas d’article), mais chaque cas étant un peu particulier j’ai choisi de faire un retour sur le mien.</p>

<p>Je vais probablement écrire des bêtises ou montrer que j’ai fait des choses un peu débiles, mais je suis sûr que vous me les pointerez avec bienveillance.</p>

<p>Depuis les débuts de l’ADSL en France, je suis chez <a href="https://www.free.fr/freebox/">Free</a>. Tout n’est pas parfait, mais j’ai toujours eu plus de raisons de rester que de partir.</p>

<p>J’ai la <a href="https://fr.wikipedia.org/wiki/Freebox">Freebox v6 « Revolution »</a> depuis sa sortie en 2010/2011. Pendant longtemps j’ai utilisé la multitude de services : Wifi, UPnP/DLNA, passerelle DECT, stockage/seedbox, player TV/DVD/…<br />
À une certaine période, à chaque orage je perdais ma Freebox (probablement à cause d’installations communes mal isolées) et j’ai sérieusement songé à quitter Free. Ils ne sont pas responsables des orages ni des défauts d’isolation de l’ADSL, mais l’électronique de la Freebox est notoirement peu résistante aux surtensions venant du réseau téléphonique.<br />
J’ai donc petit-à-petit réduit ma dépendance aux services proposés, jusqu’à avoir un <a href="https://store.ui.com/us/en/products/er-x">“vrai” routeur</a> ainsi qu’un réseau Wifi et un système multimédia indépendants. Je n’utilise plus le DECT (plus de fixe à la maison). Par contre j’utilise encore la passerelle VoIP interne avec mon alarme qui est branchée en RJ11 sur la Freebox Server.</p>

<p>Je ne sais pas pourquoi mais j’ai toujours cru que passer ma <em>Freebox Server</em> en mode “<em>bridge</em>” (au lieu de “<em>routeur</em>”) allait me désactiver <em>Freebox Player</em> et la passerelle VoIP. C’est pourquoi je restais en mode “<em>routeur</em>” avec un double-NAT.</p>

<p>Aussi, mon ADSL s’est fortement dégradé dans le temps. Alors que je suis à 500m du DSLAM, mon débit max en upload s’était réduit d’environ 1 Mo/s à 450 ko/s ces derniers mois.<br />
Très récemment (en septembre), j’ai découvert par hasard que j’étais éligible à un raccordement à la fibre optique depuis un certain temps, mais Orange qui a posé les fibres avait référencé des adresses qui n’existent pas sur le cadastre, donc les outils de tests d’éligibilité me disaient toujours d’arrêter de rêver. Il a fallu que je fouille sur <a href="https://cartefibre.arcep.fr/">les outils de l’ARCEP</a> pour voir que j’étais éligible.<br />
Ça a été tout un périple – je le raconterai peut-être plus tard – mais je suis raccordé à la fibre depuis début décembre.</p>

<p>Je dois dire d’ailleurs que le service client de Free (et la procédure de transition ADSL/Fibre) a été incroyable. J’étais resté sur des équipes sous-dimensionnées, délocalisées, limites incompétentes… Mais je constate que ça s’est énormément amélioré.</p>

<p>Et qu’est-ce qu’on fait quand on passe à la fibre ? On court tester à quel point ça va vite. Un copain qui héberge un “speedtest” chez lui (chez Free aussi) m’a demandé de tester la liaison entre nos deux connexions. Sauf que les services qu’il héberge ne sont accessibles qu’en IPv6 et par flemme (notamment à cause de l’empilement de routeurs chez moi) je n’avais pas fait en sorte de pouvoir faire de l’IPv6.</p>

<p>Après tant d’années à procrastiner, j’ai voulu faire l’effort et activer l’IPv6. Et une des approches les plus simples était de passer le <em>Freebox Server</em> en mode <em>bridge</em>.
J’étais prêt à renoncer complètement au <em>Freebox Player</em>, mais des pages mentionnaient qu’en bidouillant un truc avec un VLAN 100… on pouvait le faire remarcher.
Idem pour la passerelle VoIP qui n’était pas listée dans les <a href="https://assistance.free.fr/articles/747">services désactivés en passant en mode <em>bridge</em></a>.</p>

<p><strong>Fin du contexte, début de la technique.</strong></p>

<p>Lorsque la <em>Freebox Server</em> passe en mode <em>bridge</em>, elle attribue l’IP publique (probablement par DHCP) à la première machine qui la demande sur son switch ethernet.</p>

<p>En passant dans ce mode, j’ai perdu accès à Internet et au <em>FreeboxOS</em>.</p>

<p>Sur le switch intégré du <em>Freebox Server</em> j’avais aussi une <a href="https://atlas.ripe.net/probes/2623">sonde Atlas</a> (86.83% d’uptime depuis avril 2012) en plus du <em>FreePlug</em> et de mon routeur.<br />
Donc soit l’adresse publique a été donnée d’abord à la sonde Atlas au lieu de mon routeur, soit mon routeur n’avait pas encore refait de requête DHCP et il était resté sur son adresse locale.<br />
J’ai eu peur d’avoir fait une belle connerie ; j’ai tout débranché du <em>Freebox Server</em> et rebooté mon routeur. Ça l’a forcé à refaire une requête DHCP et il a donc pris l’adresse publique. Et comme il n’avait rien changé à sa configuration de serveur DHCP, NAT… j’ai retrouvé accès à Internet et au <em>FreeboxOS</em>.</p>

<p>Pour l’accès au <em>FreeboxOS</em> par https://mafreebox.freebox.fr, je n’ai pas en tête le détail exact, mais je suppose que le <em>Freebox Server</em> intercepte les requêtes à <code class="language-plaintext highlighter-rouge">212.27.38.253</code>. En tous cas on ne perd pas l’accès quand on est mode <em>bridge</em>. On peut toujours revenir en arrière… C’est aussi utile pour retrouver l’adresse IPv6 du lien local (pour plus tard).</p>

<p>Au final, j’ai rebranché ma sonde Atlas en aval du routeur et elle remarché directement.
Pour le <em>FreePlug</em>, j’y reviens plus tard, mais y’a pas de souci.</p>

<p>Pour la partie IPv6, j’ai suivi des articles à droite et à gauche mais voici en gros ma configuration (valide pour <code class="language-plaintext highlighter-rouge">EdgeOS v2.0.9-hotfix.7</code>).</p>

<p>NB : J’ai mis des <code class="language-plaintext highlighter-rouge">******</code> à la place d’informations spécifiques et sans intérêt.<br />
J’ai mis <code class="language-plaintext highlighter-rouge">&lt;IPV6-PREFIX&gt;</code> qui correspond aux 4 premiers “champs” de votre bloc d’IPv6 donné par Free.<br />
Enfin, j’ai mis <code class="language-plaintext highlighter-rouge">&lt;FREEBOX-IPV6-LINK-LOCAL&gt;</code> pour la route statique,  qui correspond à l’adresse IPv6 locale de votre <em>Freebox Server</em>. On récupère cette information dans <code class="language-plaintext highlighter-rouge">FreeboxOS &gt; Paramètres de la Freebox &gt; Mode Avancé &gt; Configuration IPv6 &gt; Général</code>.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>firewall {
    all-ping enable
    broadcast-ping disable
    group {
        network-group RFC1918 {
            description "RFC1918 ranges"
            network 10.0.0.0/8
            network 172.16.0.0/12
            network 192.168.0.0/16
        }
    }
    ipv6-name WANv6_IN {
        default-action drop
        description "WAN inbound traffic forwarded to LAN"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related sessions"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
        rule 30 {
            action accept
            description "Allow ICMPv6"
            protocol icmpv6
        }
    }
    ipv6-name WANv6_LOCAL {
        default-action drop
        description "WAN inbound traffic to the router"
        enable-default-log
        rule 10 {
            action accept
            description "Allow established/related sessions"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
        rule 30 {
            action accept
            description "Allow ICMPv6"
            protocol ipv6-icmp
        }
        rule 40 {
            action accept
            description "Allow DHCPv6"
            destination {
                port 546
            }
            protocol udp
            source {
                port 547
            }
        }
    }
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    name IOT_IN {
        default-action accept
        description ""
        rule 1 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action drop
            description "Drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
        rule 3 {
            action drop
            description "Block local access"
            destination {
                group {
                    network-group RFC1918
                }
            }
            log disable
            protocol all
            source {
                group {
                }
            }
        }
    }
    name IOT_LOCAL {
        default-action drop
        description ""
        rule 1 {
            action accept
            description "Allow established/related"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action drop
            description "Drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
        rule 3 {
            action accept
            description "Allow DNS"
            destination {
                port 53
            }
            log disable
            protocol tcp_udp
        }
        rule 4 {
            action accept
            description "Allow DHCP"
            destination {
                port 67
            }
            log disable
            protocol udp
        }
    }
    name WAN_IN {
        default-action drop
        description "WAN to internal"
        rule 10 {
            action accept
            description "Allow established/related"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "WAN to router"
        rule 10 {
            action accept
            description "Allow established/related"
            state {
                established enable
                related enable
            }
        }
        rule 20 {
            action drop
            description "Drop invalid state"
            state {
                invalid enable
            }
        }
    }
    name WAN_OUT {
        default-action accept
        description "router to WAN"
        rule 1 {
            action drop
            description "TV out (ethernet)"
            log enable
            protocol all
            source {
                mac-address ******
            }
        }
        rule 2 {
            action drop
            description "TV out (wifi)"
            log enable
            protocol all
            source {
                mac-address ******
            }
        }
        rule 3 {
            action accept
            description NTP
            destination {
                port 123
            }
            log enable
            protocol udp
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        address dhcp
        address fe80::1/64
        description Internet
        duplex auto
        firewall {
            in {
                ipv6-name WANv6_IN
                name WAN_IN
            }
            local {
                ipv6-name WANv6_LOCAL
                name WAN_LOCAL
            }
            out {
                name WAN_OUT
            }
        }
        speed auto
    }
    ethernet eth1 {
        description Local
        duplex auto
        speed auto
    }
    ethernet eth2 {
        description Local
        duplex auto
        speed auto
    }
    ethernet eth3 {
        description Local
        duplex auto
        speed auto
    }
    ethernet eth4 {
        description Local
        duplex auto
        poe {
            output off
        }
        speed auto
    }
    loopback lo {
    }
    switch switch0 {
        address 10.10.0.1/24
        address &lt;IPV6-PREFIX&gt;::1/64
        description Local
        ipv6 {
            dup-addr-detect-transmits 1
            router-advert {
                cur-hop-limit 64
                link-mtu 0
                managed-flag false
                max-interval 600
                other-config-flag false
                prefix &lt;IPV6-PREFIX&gt;::/64 {
                    autonomous-flag true
                    on-link-flag true
                    valid-lifetime 2592000
                }
                reachable-time 0
                retrans-timer 0
                send-advert true
            }
        }
        mtu 1500
        switch-port {
            interface eth1 {
            }
            interface eth2 {
            }
            interface eth3 {
            }
            interface eth4 {
            }
            vlan-aware disable
        }
        vif 20 {
            address 10.10.20.1/24
            description IOT
            firewall {
                in {
                    name IOT_IN
                }
                local {
                    name IOT_LOCAL
                }
            }
            mtu 1500
        }
    }
}
protocols {
    static {
        route6 ::/0 {
            next-hop &lt;FREEBOX-IPV6-LINK-LOCAL&gt; {
                description Freebox
                interface eth0
            }
        }
    }
}
service {
    dhcp-server {
        disabled false
        hostfile-update disable
        shared-network-name IOT {
            authoritative disable
            subnet 10.10.20.0/24 {
                default-router 10.10.20.1
                dns-server 10.10.20.1
                lease 86400
                start 10.10.20.2 {
                    stop 10.10.20.254
                }
                static-mapping shellyplugsg3-****** {
                    ip-address 10.10.20.11
                    mac-address ******
                }
            }
        }
        shared-network-name LAN {
            authoritative enable
            subnet 10.10.0.0/24 {
                default-router 10.10.0.1
                dns-server 10.10.0.1
                domain-name ******
                lease 86400
                start 10.10.0.21 {
                    stop 10.10.0.240
                }
                static-mapping TV-ethernet {
                    ip-address 10.10.0.33
                    mac-address ******
                }
                static-mapping TV-wifi {
                    ip-address 10.10.0.48
                    mac-address ******
                }
            }
        }
        static-arp disable
        use-dnsmasq disable
    }
    dns {
        forwarding {
            cache-size 500
            listen-on switch0
            listen-on switch0.20
        }
    }
    gui {
        http-port 80
        https-port 443
        older-ciphers enable
    }
    mdns {
        reflector
    }
    nat {
        rule 5010 {
            description "masquerade for WAN"
            outbound-interface eth0
            type masquerade
        }
    }
    ssh {
        port 22
        protocol-version v2
    }
    unms {
        disable
    }
}
system {
    analytics-handler {
        send-analytics-report true
    }
    crash-handler {
        send-crash-report true
    }
    domain-name ******
    host-name ******
    login {
        user ****** {
            authentication {
                encrypted-password ******
            }
            level admin
        }
    }
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        hwnat enable
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone Europe/Paris
}
</code></pre></div></div>

<p>Je précise tout de même quelques caractéristiques de la configuration de mon routeur :</p>

<ul>
  <li>J’utilise <code class="language-plaintext highlighter-rouge">eth0</code> pour le WAN et j’ai créé <code class="language-plaintext highlighter-rouge">switch0</code> avec <code class="language-plaintext highlighter-rouge">eth1-4</code> pour le LAN. Je n’utilise pas le PoE sur <code class="language-plaintext highlighter-rouge">eth4</code>.</li>
  <li>J’ai une TV connectée (à mon grand regret) à qui je refuse la sortie sur Internet à part pour le NTP (et en écrivant ces lignes je capte que cette règle ne s’applique qu’en IPv4 et pas encore en IPv6).</li>
  <li>J’ai un réseau Wifi spécial pour les objets connectés (car certains doivent accéder à Internet) qui tague les paquets avec le VLAN 20. Ça permet au routeur de les cantonner à un LAN spécial (séparé du LAN principal), tout en les laissant sortir sur Internet. Ça protège contre la latéralisation (depuis un object connecté on ne peut pas voir les ordis/NAS/téléphones/…).</li>
  <li>La plupart de mes appareils (ordis,NAS, téléphones…) ont une IP fixe dans la plage du DHCP, mais j’ai omis ça exprès. Vous n’avez pas besoin de savoir ce qu’il y a chez moi.</li>
</ul>

<p>Avec cette configuration, j’ai bien de l’IPv6 sortant sans problème.</p>

<p>Il y a par contre un truc étrange ; lorsque je suis en SSH sur le routeur, un ping en IPv6 ne marche pas alors qu’il marche depuis un ordi sur le LAN. Je m’en fiche pas mal mais c’est probablement que j’ai raté quelque chose.</p>

<p>Il reste un détail, le <em>Freebox Player</em>.
Même si la plupart du temps j’utilise un autre système multimédia, j’aime savoir que je peux utiliser le lecteur DVD/BluRay du <em>Player</em>.</p>

<p>J’avais noté que selon les Freebox il y avait des astuces pour faire marche le Player quand le Server est en mode <em>bridge</em>. Pour la Freebox « Révolution » il y a une histoire de VLAN 100.<br />
Mais en branchant un câble ethernet (ou les <em>FreePlugs</em>) entre le <em>Freebox Player</em> et le switch intégré du <em>Freebox Server</em>, ça marche directement. Je n’ai eu aucune configuration à faire.<br />
J’ai même essayé de reboot le <em>Freebox Server</em> et le routeur, pour vérifier si l’histoire du DHCP pour l’IP publique n’allait pas casser, mais non, c’est resté fonctionnel.</p>

<p>Je n’ai pas encore fait le test de l’appel sortant par mon alarme. Je brancherai un téléphone à la place pour essayer, mais j’ai toute raison de penser que c’est OK.</p>

<p>Quelques références utiles</p>

<ul>
  <li><a href="https://www.forum-nas.fr/threads/freebox-routeur-wi-fi-les-diff%C3%A9rentes-options-maj-04-2021.12119/">Freebox + routeur Wi-Fi, les différentes options - MAJ 04/2021</a></li>
  <li><a href="https://lafibre.info/remplacer-freebox/ipv6-sur-ubiquiti-edgerouter-8-pro-comment-faire/">FREE IPV6 sur Ubiquiti Edgerouter-8 Pro… la solution</a></li>
  <li><a href="https://davidwesterfield.net/2021/03/enabling-ipv6-prefix-delegation-on-att-internet-for-a-second-firewall/">Enabling IPv6 Prefix Delegation on AT&amp;T Internet for a Second Firewall (EdgeRouter 4) – Part 2</a></li>
  <li><a href="https://davidwesterfield.net/2021/03/ipv6-firewall-rules-edgerouter-4/">IPv6 Firewall Rules (EdgeRouter 4) – Part 3</a></li>
  <li><a href="https://gist.github.com/dmtucker/cf3f241cf002367825633c988ff19fcf">Configuring IPv6 on EdgeRouter Lite</a></li>
</ul>]]></content><author><name></name></author><category term="Informatique" /><category term="networking" /><category term="freebox" /><category term="ipv6" /><category term="ubiquiti" /><summary type="html"><![CDATA[Il existe plusieurs guides en lignes pour arriver à un résultat similaire (voir en bas d’article), mais chaque cas étant un peu particulier j’ai choisi de faire un retour sur le mien.]]></summary></entry><entry><title type="html">Donner son sang, son plasma, ses plaquettes</title><link href="https://jeremy.lecour.fr/blog/2022/12/22/don-de-sang-plaquettes-plasma/" rel="alternate" type="text/html" title="Donner son sang, son plasma, ses plaquettes" /><published>2022-12-22T00:00:00+01:00</published><updated>2022-12-22T00:00:00+01:00</updated><id>https://jeremy.lecour.fr/blog/2022/12/22/don-de-sang-plaquettes-plasma</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2022/12/22/don-de-sang-plaquettes-plasma/"><![CDATA[<p>Je donne régulièrement mon sang depuis quelques années. Je suis <strong>O-</strong> donc c’est bien recherché. Pour la première fois, j’ai donné <a href="https://dondesang.efs.sante.fr/articles/Le-don-de-plasma">plasma</a> et <a href="https://dondesang.efs.sante.fr/articles/le-don-de-plaquettes-en-parle">plaquettes</a>.</p>

<p>L’<a href="https://dondesang.efs.sante.fr/">EFS</a> me traque depuis longtemps pour que je donne des plaquettes mais c’est trop long pour mon emploi du temps habituel donc j’avais reporté jusque là. Et plusieurs personnes m’ont dit que c’était inconfortable, surtout le retour après la séparation du plasma et des plaquettes donc je n’étais pas si pressé que ça.<br />
À l’occasion de quelques jours de congés j’ai pris mon courage à deux mains et j’ai transformé mon rendez-vous régulier de don de sang en don de plaquettes et plasma.</p>

<p>Avant le traditionnel formulaire avec les questions de santé, on m’a fait un petit prélèvement de sang pour vérifier que tout va bien (fer, plaquettes…). Tout était OK pour moi donc on m’a installé. Je pensais faire juste les plaquettes, mais ils pont pris aussi le plasma ; 1 pierre, 2 coups.</p>

<p>Le principe est de prélever du sang, de le passer à la centrifugeuse pour séparer le plasma et les plaquettes (qui vont dans des poches dédiées) et l’hématocrite que l’on renvoie dans le bras par la même aiguille. Un écran donne toutes les infos en temps réel : prélèvement ou retour, pression, temps écoulé, volumes collectés. Selon les mesures du prélèvement initial, la machine calcule ses paramètres. J’étais parti pour 75 minutes de don.</p>

<p><img src="/blog/blog/assets/machine-prelevement-plaquettes-plasma.jpeg" alt="Installation de prélèvement de plasma et plaquettes" class="center-image" /></p>

<p>Le premier retour de sang est surprenant : une sensation bizarre dans le coude, mais aucune douleur. Il faut masser une balle molle pendant tout le temps pour maintenir une bonne pression.</p>

<p>Au bout d’un moment j’ai eu froid. C’est normal, mais pour le confort et surtout pour éviter que les vaisseaux ne se contractent il faut se réchauffer.<br />
Le prélèvement entraîne aussi une chute de calcium, avec des picotements dans les lèvres ou un goût de fer selon les gens, mais un petit cachet de complément fait disparaître ça très vite.<br />
Comme d’habitude avec les dons de sang… il faut bien s’hydrater pour la fluidité du sang, et donc ne pas oublier de passer aux toilettes avant de commencer. Malgré ça, l’effet diurétique du don m’a surpris vers la fin et les 15 dernières minutes étaient difficiles.</p>

<p>Il paraît que ça fatigue pas mal, mais 24h plus tard, je ne me sens pas vraiment plus fatigué que d’habitude.</p>

<p>Le technicien a été adorable. Il a répondu à toutes mes questions de curieux, m’a expliqué à quoi m’attendre sur les effets…<br />
Toute l’équipe a été aux petits soins avant/pendant/après. Ils font tout pour que le don soit confortable.</p>

<p>Le temps de prélèvement était parfait pour que je regarde une série (j’ai démarré <a href="https://fr.wikipedia.org/wiki/Sandman_(s%C3%A9rie_t%C3%A9l%C3%A9vis%C3%A9e)">Sandman</a>). On m’a même prêté un support pour mon téléphone. S’il ne fallait pas masser la balle, j’aurais même pu faire une sieste ;)</p>

<p>Au final <strong>tout s’est hyper bien passé</strong> et j’en ressort content d’avoir donné un peu de temps et de sang pour <strong>sauver des gens</strong>. J’ai pris mon prochain rendez-vous de don de sang et ils me reverront probablement pour du plasma et des plaquettes lors des prochaines vacances.</p>]]></content><author><name></name></author><category term="Personnel" /><summary type="html"><![CDATA[Je donne régulièrement mon sang depuis quelques années. Je suis O- donc c’est bien recherché. Pour la première fois, j’ai donné plasma et plaquettes.]]></summary></entry><entry><title type="html">HAProxyConf 2022</title><link href="https://jeremy.lecour.fr/blog/2022/11/11/haproxyconf-2022/" rel="alternate" type="text/html" title="HAProxyConf 2022" /><published>2022-11-11T00:00:00+01:00</published><updated>2022-11-11T00:00:00+01:00</updated><id>https://jeremy.lecour.fr/blog/2022/11/11/haproxyconf-2022</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2022/11/11/haproxyconf-2022/"><![CDATA[<p>J’ai été orateur à la conférence HAProxyConf 2022 à Paris. Ça a été un immense challenge pour moi. Je vous raconte.</p>

<p><img src="/blog/blog/assets/haproxyconf-2022/front-slide.png" alt="Diapo d'introduction pour ma présentation à HAProxyConf 2022" class="center-image" /></p>

<p>Tout le contenu que j’ai utilisé est dispo dans <a href="https://gitea.evolix.org/evolix/haproxyconf-2022/">un dépôt GIT</a> (diaporama, configuration complètes, images…). <a href="https://www.youtube.com/watch?v=3HJUrcEWsl8">La vidéo est disponible sur Youtube</a>.</p>

<h2 id="la-proposition">La proposition</h2>

<p>En juillet 2022, <a href="https://twitter.com/jlecour/status/1548360151073038338">j’ai cité</a> un Tweet de <a href="https://twitter.com/nixcraft">@nixCraft</a>, pour mentionner l’utilisation du « PROXY protocol » dans un contexte de proxification de service web.</p>

<p>Deux jours plus tard j’ai un message de <a href="https://twitter.com/haproxy">@HAProxy</a> m’invitant à faire une proposition de présentation pour la conférence HAProxyConf prévue pour novembre à Paris.</p>

<p>HAProxy est un logiciel qu’on utilise beaucoup chez <a href="https://evolix.com">Evolix</a> et que j’apprécie particulièrement. Il est présent dans de nombreuses infrastructures mises en place pour nos clients. Mais surtout il est un composant majeur de notre solution « Boost », un accélérateur web, une sorte de CDN (sans la répartition géographique).</p>

<p>À regret je n’avais pas participé à l’édition 2019 à Amsterdam à cause notamment du coût (trajet, hôtel, ticket d’entrée…) mais là l’occasion était rêvée.</p>

<p>Grégory et moi avons récemment travaillé sur une présentation dédiée aux load-balancers et au cache HTTP (très inspirée de ce qu’on fait dans Boost). Elle a été présentée à la conférence <a href="https://cesar.resinfo.org/spip.php?article164">VVT</a> et le sera à nouveau au <a href="https://cfp.capitoledulibre.org/cdl-2022/talk/YK89LU/">Capitole du Libre</a> à Toulouse (une vidéo sera probablement disponible). J’avais envie de pousser plus loin les détails techniques liés à quelques fonctionnalités internes de HAProxy et Varnish, pour un auditoire déjà familier avec les bases.</p>

<p>J’ai souvent <a href="/blog/presence/">présenté dans des conférences</a> assez variées, mais presque toujours en français. Les 2 rares exceptions en anglais étaient à <a href="https://www.youtube.com/watch?v=F8hH_5LKrQY">RuLu 2013</a> (en solo) et <a href="https://www.youtube.com/watch?v=_b1nCMtIOTY">DebConf 2017</a> (avec Grégory), pour un résultat pas totalement satisfaisant à mon goût.</p>

<p>Je me sentais tout à fait capable de préparer un contenu pertinent, je n’avais plus qu’à surmonter la difficulté de le faire en anglais.</p>

<p><em>Challenge accepted!</em></p>

<p>Début septembre, <a href="https://twitter.com/jlecour/status/1569924014855913472">j’ai eu confirmation de l’acceptation</a>. Plus moyen de reculer.</p>

<p>Tout de suite j’ai compris que j’avais à faire à une organisation professionnelle : rétro-planning des moments importants, visio pour échanger questions/réponses à l’oral, proposition de gabarits de diaporama, proposition de session de répétition en ligne, prise en charge financière et logistique du transport et de l’hébergement pendant la conférence… Ça s’est avéré à la fois rassurant et stressant.</p>

<h2 id="la-préparation">La préparation</h2>

<p>Le repère approximatif dont j’ai souvent entendu parler – <strong>1 heure de préparation pour 1 minute de présentation</strong> – s’est encore vérifié, au minimum. Je n’ai pas compté précisément, mais entre le travail d’écriture linéaire en français qui a servi à structurer le contenu, la traduction en anglais, la création d’images et diagrammes, la préparation des diapos et des notes du présentateur, le façonnage des extraits de configuration et enfin les nombreuses répétitions à voix haute… j’ai bien passé mes 30 à 50 heures de préparation.</p>

<p>C’est bien ce temps là qu’il m’a fallu pour commencer à me sentir plus ou moins à l’aise avec ce que j’avais à dire, dans quel ordre, sans réciter par cœur, sans lire bêtement mes notes et sans chaque fois tenter d’improviser un peu et buter sur la construction des phrases.</p>

<p>J’ai tout de même constaté l’évolution bien connue du niveau d’aisance. D’abord on dit n’importe quoi, on bloque toutes les 2 phrases. Ensuite ça commence à rentrer, on réussit à faire des répétitions avec un flot verbal correct et une gestuelle corporelle détendue. Puis en se croyant à l’aise on se concentre un peu moins, on retombe dans des tentatives d’improvisation, et la qualité du résultat baisse. Et finalement on se recentre et on retrouve confiance dans la capacité à bien faire. Par contre, reste jusqu’au bout la peur de merder le jour même, sur scène avec des lumières et des dizaines/centaines de personnes fixés sur soi.</p>

<p>Les orateurs avaient la possibilité d’arriver la veille, pour faire quelques essais et prendre des repères sur la scène. Pas moyen de rater cette occasion. Et c’était parfait pour se rassurer. J’ai passé deux heures avec les autres orateurs à monter quelques minutes sur scène, bien prendre en main le cliqueur et l’organisation des écrans de contrôle, se familiariser avec les caméras, les spots… Le faire pour de vrai le lendemain matin était presque devenu une formalité. Presque.</p>

<h2 id="la-présentation">La présentation</h2>

<p>Le diner des orateurs – tradition des conférences – était aussi un super moyen de briser la glace, se mettre à fond dans le bain de l’anglais, et voir que tous les autres sont aussi morts de trouille que soi. Ce petit lien confraternel éphémère qui se crée, pousse ensuite de s’encourager avant de monter sur scène, se féliciter à la descente, et avoir le sentiment qu’on n’est pas seul dans cet exercice aussi jouissif qu’effrayant.</p>

<p>Dans la programmation, j’étais le premier orateur non « interne » HAProxy ; un brin stressant de passer après des têtes d’affiche. En passant après la première pause café, j’ai pu m’équiper tranquillement (micro, cliqueur…) et satisfaire mon petit rituel déstressant : passage aux toilettes, une petite “vocalise” en coulisse pour s’éclaircir la voix et quelques “jumping jacks” pour faire rapidement monter le cardio et diluer l’adrénaline.</p>

<p>Sur scène, on sourit, on regarde surtout les gens et un peu ses notes. On ne tourne pas le dos au public, on ne met pas ses mains dans ses poches ni dans son dos, ni croisées devant. On parle doucement, en prenant bien sa respiration, et en prenant si possible une gorgée d’eau entre chaque partie importante.
Pendant les questions on écoute bien, pour ne pas répondre à côté, mais on n’hésite pas à dire « je ne sais » ou « ça mérite une discussion plus longue ».</p>

<p>Une fois le moment fatidique passé, on peut enfin souffler, détendre le nœud qu’on a dans le ventre et profiter du plaisir de l’accomplissement.</p>

<p><em>Achievement unlocked!</em></p>

<p>L’avantage de passer tôt dans le programme c’est qu’on peut profiter beaucoup plus sereinement du reste de l’événement. J’ai pu écouter attentivement plusieurs présentations, mais surtout passer de vrais moments avec des personnes compétentes et agréables, à discuter de sujets techniques.
Au delà des présentations (souvent disponibles en ligne après-coup), c’est surtout la possibilité des rencontres qui me motive à aller dans ces événements. Discuter de ce que font d’autres personnes avec des outils que je connais (ou pas), partager des connaissances que j’ai et éventuellement avoir des retours constructifs sur ce que j’ai pu présenter.</p>

<p>Je ressors de cette expérience avec la grande satisfaction d’avoir accepté un challenge nouveau – qui m’a coûté de vrais efforts – et d’avoir atteint l’objectif : transmettre des connaissances, d’une manière correcte.</p>

<p>Ça me donne envie de remonter la barre pour une prochaine fois ; potentiellement le FOSDEM – une autre de mes conférences favorites – ou une DebConf pour faire mieux que la fois d’avant.</p>

<h2 id="des-remerciements">Des remerciements</h2>

<p>Merci à ma compagne et mes enfants qui ont supporté mon stress, mon attention ultra-sélective et mon absence pendant les quelques jours de déplacement…</p>

<p>Merci aux organisateurs de la conférence qui ont fait le pari d’accepter ma proposition, qui ont organisé un accueil confortable et chaleureux et qui m’ont permis de participer à un événement très riche en nouvelles connaissances (humaines et techniques).</p>

<p>Merci aux personnes rencontrées sur place, avec qui j’ai passé de très bons moments.</p>

<p>Merci à toutes les personnes (en particulier mes collègues) qui m’ont soutenu, encouragé et félicité.</p>

<h2 id="quelques-photos">Quelques photos</h2>

<ul class="image-gallery">
    <li>
        
        
        <figure>
    <a href="/blog/assets/haproxyconf-2022/photo-01.jpg">
        <img src="/blog/assets/haproxyconf-2022/photo-01.thumb.jpg" alt="Photo de scène pendant HAProxyConf 2022" loading="lazy" />
    </a>
    
</figure>
    </li>
    <li>
        
        
        <figure>
    <a href="/blog/assets/haproxyconf-2022/photo-02.jpg">
        <img src="/blog/assets/haproxyconf-2022/photo-02.thumb.jpg" alt="Photo de scène pendant HAProxyConf 2022" loading="lazy" />
    </a>
    
</figure>
    </li>
    <li>
        
        
        <figure>
    <a href="/blog/assets/haproxyconf-2022/photo-03.jpg">
        <img src="/blog/assets/haproxyconf-2022/photo-03.thumb.jpg" alt="Photo de scène pendant HAProxyConf 2022" loading="lazy" />
    </a>
    
</figure>
    </li>
    <li>
        
        
        <figure>
    <a href="/blog/assets/haproxyconf-2022/photo-04.jpg">
        <img src="/blog/assets/haproxyconf-2022/photo-04.thumb.jpg" alt="Photo de scène pendant HAProxyConf 2022" loading="lazy" />
    </a>
    
</figure>
    </li>
    <li>
        
        
        <figure>
    <a href="/blog/assets/haproxyconf-2022/photo-05.jpg">
        <img src="/blog/assets/haproxyconf-2022/photo-05.thumb.jpg" alt="Photo de scène pendant HAProxyConf 2022" loading="lazy" />
    </a>
    
</figure>
    </li>
    <li>
        
        
        <figure>
    <a href="/blog/assets/haproxyconf-2022/photo-06.jpg">
        <img src="/blog/assets/haproxyconf-2022/photo-06.thumb.jpg" alt="Photo de scène pendant HAProxyConf 2022" loading="lazy" />
    </a>
    
</figure>
    </li>
    <li>
        
        
        <figure>
    <a href="/blog/assets/haproxyconf-2022/photo-07.jpg">
        <img src="/blog/assets/haproxyconf-2022/photo-07.thumb.jpg" alt="Photo de scène pendant HAProxyConf 2022" loading="lazy" />
    </a>
    
</figure>
    </li>
    <li>
        
        
        <figure>
    <a href="/blog/assets/haproxyconf-2022/photo-08.jpg">
        <img src="/blog/assets/haproxyconf-2022/photo-08.thumb.jpg" alt="Photo de scène pendant HAProxyConf 2022" loading="lazy" />
    </a>
    
</figure>
    </li>
</ul>
<p><span class="image-caption">Photos: HAProxyConf, tous droits réservés</span></p>

<hr />

<p><em>Modification du 15 novembre 2022</em></p>

<p>J’ai proposé ce sujet pour l’édition 2023 du FOSDEM (celle qui a lieu dans 10 semaines), dans 2 variantes.</p>

<p>Une version « main track » de 50 minutes, avec des contenus que j’avais prévus initialement mais que j’ai du retirer pour les 40 minutes de HAProxyConf.<br />
Une version « lightning talk » de 15 minutes, avec beaucoup moins de détails, mais qui donne une idée d’ensemble intéressante.</p>

<p>Il y a beaucoup de propositions pour le FOSDEM, donc la concurrence est rude. Si c’est pas cette année, ça sera une prochaine.</p>

<hr />

<p><em>Modification du 23 novembre 2022</em></p>

<p>HAProxy a publié <a href="https://www.haproxy.com/blog/haproxyconf-2022-recap/">un article sur son blog</a> pour faire un récap de l’événement. C’est assez détaillé.</p>

<hr />

<p><em>Modification du 25 novembre 2022</em></p>

<p>En mai 2019 on a organisé la mini-DebConf à Marseille. Quelques jours après j’ai commencé la rédaction d’un article rétrospectif. Il est resté à l’état de brouillon pendant plus de 3 ans. Je l’ai dépoussiéré et <a href="/blog/2019/06/06/mini-debconf-marseille-2019/">publié</a>.
J’y ai (re)découvert que j’avais été « maître de cérémonie » en anglais. J’avais complètement oublié. Et dans ce brouillon j’ai trouvé un « ressenti », pas très bien écrit mais assez similaire à celui que j’ai eu après cette HAProxyConf. Extrait :</p>

<blockquote>
  <p>J’ai eu 2 fois l’occasion de faire des présentations en anglais devant des gens (<em>a fortiori</em> des gens que j’estime et sur qui j’ai envie d’avoir un effet positif). Chaque fois j’ai énormément travaillé mon texte, répété à l’usure, jusqu’à être dans un mode plus théâtral que naturel ou spontané. Le stress a été énorme et accompagné d’un sentiment proportionnel de soulagement une fois le moment passé.<br />
Pour cette mini-DebConf où j’ai fait le MC, je ne m’étais pas spécialement préparé (à part mes diapositives) ni répété ce que je voulais dire ou comment tourner mes phrases. J’avais clairement en tête le fond (aidé de mes supports) mais pas du tout la forme. Pourtant j’ai eu à transmettre en anglais un message important à plusieurs dizaines de personnes. Objectivement l’exercice était le même, l’enjeu était similaire.<br />
Je suis sûr d’avoir fait plein de fautes d’anglais, j’ai probablement bafoué pas mal de règles du bon présentateur, mais il paraît que ça passait plutôt bien et puis je ne me suis pas senti perdu ni ridicule. J’ai probablement une leçon personnelle à tirer de ça, pour mes prochaines présentations, en particulier celles en anglais.</p>
</blockquote>

<p>Si j’avais relu ça avant de préparer HAProxyConf, ça aurait pu m’aider à relativiser.</p>]]></content><author><name></name></author><category term="Informatique" /><category term="haproxy" /><category term="presence" /><category term="conference" /><summary type="html"><![CDATA[J’ai été orateur à la conférence HAProxyConf 2022 à Paris. Ça a été un immense challenge pour moi. Je vous raconte.]]></summary></entry><entry><title type="html">Je quitte Dropbox</title><link href="https://jeremy.lecour.fr/blog/2020/05/17/je-quitte-dropbox/" rel="alternate" type="text/html" title="Je quitte Dropbox" /><published>2020-05-17T00:00:00+02:00</published><updated>2020-05-17T00:00:00+02:00</updated><id>https://jeremy.lecour.fr/blog/2020/05/17/je-quitte-dropbox</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2020/05/17/je-quitte-dropbox/"><![CDATA[<p>Un service de moins où j’ai des données personnelles.</p>

<p>J’ai un compte Dropbox depuis l’ouverture du service. J’ai profité de tranches de 500 Mo offertes pour le “parrainage” de quelques personnes.</p>

<p>La simplicité avec laquelle on pouvait avoir une synchro entre l’espace web, l’ordinateur personnel et le téléphone m’a rapidement séduit. J’y ai surtout placé des documents auxquels je voulais pouvoir accéder rapidement de n’importe où : copies de papiers d’identité, documents de voyage…</p>

<p>L’intégration avec des services tiers était aussi un plus ; copie des photos envoyées à Instagram, envoi automatique des livres achetés chez Pragmatic Programmers (un excellent éditeur, soit dit en passant !) et de nombreuses autres intégrations possibles.</p>

<p>Dans ma démarche de reprise en main de mes données personnelles, ça faisait longtemps que j’avais identifié ce service comme très problématique. J’y ai sciemment déposé des documents sensibles qu’avec le recul je n’aurais jamais du y déposer, en particulier des données très personnelles (santé, impots, finances personnelles…).</p>

<p>Je ne voulais cependant pas renoncer aux fonctionnalités proposées par Dropbox. Il me fallait donc un remplaçant. C’est Nextcloud qui a répondu à mes attentes, et bien plus.</p>

<p>J’ai déjà un serveur (actuellement une VM hébergée chez Evolix) que je gère de A à Z, sur laquelle j’ai ce blog perso mais aussi quelques services à usage familial. L’installation est simplissime pour un sysadmin, et je pense très abordable pour une personne débrouillarde.</p>

<p>En peu de temps j’avais un équivalent de Dropbox, avec une infinité (théorique) d’espace disponible, une intégration Webdav avec mon ordinateur personnel, une synchro avec mon téléphone…</p>

<p>J’ai rapidemement testé quelques “applications”, telles que OnlyOffice (équivalent à GoogleDoc), Sondage (équivalent à Doodle), Task (un gestionnaire de todo-list) et c’est vraiment cool. Je n’y gère pas mes mails, mon calendrier et mes contacts, mais c’est proposé par défaut.</p>

<p>Le partage de documents va devenir encore plus facile en famille, entre amis ou dans un cadre associatif.</p>

<p>Un de moins. Il me reste principalement Instagram (compte privé avec juste quelques photos non personnelles) et Gmail (qui n’est plus mon mail principal).</p>]]></content><author><name></name></author><category term="Personnel" /><category term="opinion" /><summary type="html"><![CDATA[Un service de moins où j’ai des données personnelles.]]></summary></entry><entry><title type="html">mini-DebConf Marseille 2019</title><link href="https://jeremy.lecour.fr/blog/2019/06/06/mini-debconf-marseille-2019/" rel="alternate" type="text/html" title="mini-DebConf Marseille 2019" /><published>2019-06-06T00:00:00+02:00</published><updated>2019-06-06T00:00:00+02:00</updated><id>https://jeremy.lecour.fr/blog/2019/06/06/mini-debconf-marseille-2019</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2019/06/06/mini-debconf-marseille-2019/"><![CDATA[<p>Les 25 et 26 mai 2019 se tenait la <a href="https://minidebconf-mrs.debian.net">mini-DebConf Marseille</a>.</p>

<blockquote>
  <p>Les mini-DebConfs sont des événements organisés par la communauté pour aider les personnes intéressées par le projet Debian à se rassembler, partager et travailler ensemble. Elles sont plus courtes, plus simples et plus fréquentes que les DebConfs annuelles.</p>
</blockquote>

<p>Je ne vais pas raconter le déroulement de la conférence, <strong>Grégory</strong> l’a très bien fait sur <a href="http://gcolpart.evolix.net/blog21/mini-debconf-marseille-2019-fr/">son propre blog</a>. Je vais plutôt partager mon ressenti et l’état d’esprit derrière cette organisation et le déroulement de l’événement.</p>

<h2 id="la-naissance-de-lidée">La naissance de l’idée</h2>

<p>Depuis de nombreuses années – probablement « Paris on Rails » en 2006 – je participe à des conférences autour des logiciels et technologies (souvent libres) que j’utilise. J’y ai toujours trouvé un esprit communautaire (au sens de ce qui nous rassemble) qui m’a beaucoup influencé.</p>

<p>J’ai souvent été dans les rangs des salles de conférences, et de temps en temps j’ai aussi été sur scène en tant qu’orateur. L’expérience est évidemment très différente mais les deux positions apportent des choses très complémentaires.</p>

<p>En 2013 j’ai organisé à Marseille un « Global Day of <a href="/blog/2013/10/27/participer-a-une-coderetreat/">Code Retreat</a> ». Ça a été ma première tentative d’organisation : trouver une vingtaine de participants, les nourrir, les guider dans les activités créatives, financer tout ça… J’ai été aidé pour la partie “coaching” mais j’ai géré l’organisation tout seul.<br />
Il ne s’agissait que d’une journée, avec un public très réduit, mais la charge de travail et la diversité des tâches m’ont clairement appris qu’il ne fallait pas se lancer là dedans tout seul. On m’avait prévenu, mais je voulais me prouver que j’en étais capable.</p>

<p>En 2017, une bonne partie de l’équipe Evolix participait à la DebConf de Montreal. Il s’agit d’une conférence qui réunit plus de 500 personnes – venues du monde entier – autour du <a href="http://debian.org">projet Debian</a> (la meilleure et une des plus anciennes distributions GNU/Linux).<br />
Une semaine complète dans les locaux d’une université, des dizaines de présentations (dont <a href="/blog/presence/">la nôtre</a>), une logistique technique, repas et hébergement franchement complexe. J’étais impressionné par l’ampleur de l’événement et surtout par l’effet humain.<br />
Ce genre de conférence est un formidable catalyseur. On y rencontre des gens très différents mais tous avec les mêmes objectifs. La diversité des origines, parcours de vie, sensibilités… est super enrichissante, pourvu qu’on y soit réceptif. Le sentiment de partage à double sens est très fort.</p>

<p>Lors de cette DebConf, Grégory et moi nous étions engagés à y faire une présentation, en Anglais et en duo. Depuis qu’on se fréquente et surtout depuis qu’on travaille ensemble on a tendance à se chauffer sur des idées un peu folles qui nous font sortir de notre zone de confort.</p>

<p>La même année on s’est rendus à Toulouse pour le « Capitole du Libre », une grande conférence sur les logiciels libres au sein de laquelle était aussi organisée une mini-DebConf. L’objectif est le même que pour les DebConf classiques, mais le périmètre, les ambitions et les moyens sont beaucoup plus modestes. C’est concentré sur 1 ou 2 jours avec des présentations qui attirent quelques dizaines de participants. <strong>Denis Briand</strong> – le principal organisateur de cette édition – nous a transmis son enthousiasme et nous a incités à organiser un événement du même type à Marseille. Il a tenté de nous rassurer sur la faisabilité de la tâche et nous a assuré du soutien de la communauté française. L’équipe vidéo DebConf – représentée sur place par <strong>Nicolas Dandrimont</strong> – nous a également quasi assuré de leur présence.</p>

<p>Il n’en fallait pas plus pour nous convaincre.</p>

<p>À la fin d’une de nos présentations, Grégory a annoncé une mini-DebConf à Marseille en 2018 ou 2019, sous le soleil des Calanques. Il aurait fallu se plonger directement dans l’organisation pour pouvoir tenir l’événement à peine 8 mois plus tard et ça ne collait pas super bien avec notre agenda. On a donc rapidement opté pour mai/juin 2019.</p>

<h2 id="un-noyau-dorganisation">Un noyau d’organisation</h2>

<p>Grégory et moi partageons beaucoup de valeurs et nous étions bien alignés sur la manière dont on voulait réaliser cette mini-DebConf. On a pris quelques semaines/mois pour rassembler nos notes à propos de l’organisation de conférences. On a sollicité des avis, relus des articles sur le thème… Fin 2018 on a officiellement lancé la machine.</p>

<p>Étant donné que Debian est un projet central pour Evolix, il était clair que ce chantier d’organisation serait en grande partie réalisé sur notre temps de travail, histoire d’assurer un minimum de disponibilité pour les personnes clés.</p>

<p>On a écrit sur un document partagé tout ce qui nous passait par la tête : quoi mettre sur les badges, quel code de conduite adopter, que type de restauration, comment prendre soin des participant⋅e⋅s en général et les orat⋅eur⋅ices en particulier… Ça n’était pas un plan de bataille, mais plutôt une sorte de cahier des charges.</p>

<p>On a motivé <strong>Sabiha</strong>, fraichement arrivée chez Evolix. Très organisée, suffisamment directive (dans le bon sens), rompue à l’organisation événementielle, et surtout très motivée, elle était le bon complément à notre duo.</p>

<p>On s’est assez naturellement réparti les grands chapitres de l’organisation. Pendant quelques semaines on a choisi un lieu et une date, un traiteur, organisé les grandes lignes des taches à réaliser, accueilli avec plaisir des propositions d’aide de la part de plusieurs personnes très motivées. On a communiqué avec la communauté Debian, motivé des orateurs potentiels et commencé à gérer les choses de plus en plus en détail.</p>

<p>Durant les deux semaines précédant l’événement, j’ai graduellement augmenté la proportion de mon temps passé à régler les détails. La dernière semaine je n’ai fait quasiment que ça. Avoir une telle liberté vis-à-vis de mon temps de travail a été très appréciable. Ça m’a permis de gérer beaucoup de choses, sans avoir à (trop) sacrifier mon sommeil ou ma vie de famille.</p>

<p>Quelques jours avant, nous avons réuni la plupart des bénévoles déjà sur place, pour présenter les zones de responsabilité et le déroulement détaillé de l’événement. Ça a permis de mettre tout le monde à la page, mais surtout ça a révélé des aspects complètement oubliés (qu’il était encore temps de rattraper) et fait émerger des idées (qu’il était temps de mettre en pratique).<br />
Par exemple, seulement des hommes avaient réfléchi à l’occupation de l’espace et donc mal envisagé la gestion des toilettes.<br />
Nous avions aussi prévu un espace d’expression libre et <strong>Eda</strong> — que nous connaissons par nos activités associatives et qui n’était pas encore intervenue – a proposé l’idée d’enveloppes nominatives dans lesquelles les participants pourraient se déposer des petits mots plus ou moins anonymes.<br />
Enfin, nous voulions offrir le premier verre lors de la soirée sociale à « La Cane Bière » et nous cherchions encore une idée pour matérialiser ça. Au dernier moment <strong>Juliette</strong> a eu l’idée de découper des bouts de PCB issus de disques durs détruits et d’accrocher ça (après nettoyage et personnalisation) au tour-de-cou donnés avec les badges.
Travailler sur l’accueil des participants avec créativité, respect des sensibilités diverses, dans un esprit geek et le plus écolo possible a rendu la tâche vraiment fun et satisfaisante.</p>

<h2 id="des-valeurs">Des valeurs</h2>

<p>Bien qu’on s’attendît à des participant⋅e⋅s bienveillant⋅e⋅s et respectueu⋅x⋅ses, il était évident qu’il fallait expliciter un <a href="https://www.debconf.org/codeofconduct.shtml">code de conduite</a>. Nous l’avons mis en avant à l’inscription, dans nos différentes communications par mail, rappelé lors du discours d’accueil, affiché en grand à l’entrée de l’auditorium… Nous avons présenté les personnes référentes (hommes et femmes), annoncé une adresse mail et un numero de téléphone/Signal. Au final nous n’avons reçu aucun signalement ou plainte.
On avait également proposé aux participant⋅e⋅s d’imprimer sur leur badge un pictogramme explicite et coloré pour indiquer : « OK pour être pris⋅e en photo », « demander avant », ou « ne pas me photographier ».</p>

<p>Attentifs à l’empreinte écologique, nous avons essayé de faire le plus neutre possible. On ne pouvait pas empêcher les participant⋅⋅e⋅s de prendre la voiture ou l’avion pour venir (d’Israël, Canada ou Australie, c’est difficile). Par contre on a pu éliminer le gaspillage alimentaire, les couverts et gobelets jetables. On a fortement limité les emballages plastiques (bouteilles…).<br />
On a aussi choisi de limiter les « goodies » à des choses qui seraient réellement utilisées : un t-shirt (avec choix de la coupe en plus de la taille), un sticker, et un badge sans plastique.<br />
Pas de sacs, de stylos, de plaquettes commerciales de sponsors…</p>

<p>Une autre idée forte était de faire le maximum pour que les participant⋅e⋅s se sentent bien pendant le temps où ils⋅elles étaient là. Sachant que pas mal de monde arriverait à Marseille en avance, nous avons ouvert le lieu au public dès vendredi 14h.
Nous avions proposé à des équipes Debian de venir plusieurs jours avant pour profiter de faire un sprint.<br />
L’équipe « vidéo » est venue dès mercredi et l’équipe « localisation française » a profité de toute la journée du vendredi.
Une grande pièce, à l’écart, avec des canapés, fauteuils… étaient disponibles, notamment pour le CA de « Debian France » qui y a pu organiser une assemblée générale.
On avait préparé plein d’informations utiles dans le Wiki. On a rappelé tout ça dans un long mail envoyé quelques jours avant. Et comme tout le monde ne lit pas avec attention ses mails, on a fait un PDF récapitulatif.</p>

<p>Au niveau alimentaire, on est parti sur une base végétarienne, avec même une majorité d’options végan, sans gluten… En travaillant avec une équipe locale (ma très chère sœur !), qui n’utilise que des produits locaux et frais, on a pu avoir une belle diversité et originalité de nourriture qui semble avoir ravi les participant⋅e⋅s.</p>

<h2 id="le-coup-de-feu">Le coup de feu</h2>

<p>Pendant 3 jours, j’étais à fond, littéralement. J’avais la responsabilité du lieu et des clés donc il fallait être là avant tout le monde et repartir le dernier.<br />
Mon naturel touche-à-tout, un peu perfectionniste et surtout ma grande difficulté à déléguer a fait qu’on m’a vu courir dans tous les sens, d’un étage à l’autre.<br />
On a pu croire que j’étais la pierre angulaire de l’organisation alors que je n’étais qu’un maillon, juste un peu plus visible que d’autres.</p>

<p>C’était notamment dû au fait que j’ai fait le discours de bienvenue, la moitié des interludes entre les présentations ainsi que le petit discours de fin.<br />
Ça aussi c’était un peu nouveau pour moi.</p>

<p>J’ai eu 2 fois l’occasion de faire des présentations en anglais devant des gens (<em>a fortiori</em> des gens que j’estime et sur qui j’ai envie d’avoir un effet positif). La première était une conférence Ruby en 2011 et la seconde à la DebConf de Montréal (en duo avec Grégory) en 2017. Chaque fois j’ai énormément travaillé mon texte, répété à l’usure, jusqu’à être plus dans un mode théâtral que naturel et spontané. Le stress a été énorme et accompagné d’un sentiment proportionnel de soulagement une fois le moment passé.<br />
Pour cette mini-DebConf où j’ai fait le MC, je ne m’étais pas spécialement préparé (à part mes <em>diapos</em>) ni répété ce que je voulais dire ou comment tourner mes phrases. J’avais clairement en tête le fond (aidé de mes supports) mais pas du tout la forme. Pourtant j’ai eu à transmettre en anglais un message important à plusieurs dizaines de personnes. Objectivement l’exercice était le même, l’enjeu était similaire.<br />
Je suis sûr d’avoir fait plein de fautes d’anglais, j’ai probablement bafoué pas mal de règles du bon présentateur, mais il paraît que ça passait plutôt bien et puis je ne me suis pas senti perdu ni ridicule. J’ai probablement une leçon personnelle à tirer de ça, pour mes prochaines présentations, en particulier celles en anglais.</p>

<p><em>Fin du brouillon inachevé, écrit début juin 2019.</em></p>

<hr />

<p><em>Mise à jour du 25 novembre 2022</em></p>

<p>J’y reviens 3 ans et demi plus tard avec fatalement une mémoire bien moins précise, donc je n’essaierai pas de le terminer. La police des blogs bien finis sait où me trouver.</p>

<p>Je note quand même qu’à l’époque je n’ai pas écrit la section de remerciements. Je l’écris habituellement à la fin, et la fin n’est jamais venue. C’est la seule chose que je vais essayer de compléter <em>a posteriori</em>, <strong>sans ordre d’importance</strong> :</p>

<ul>
  <li><strong>Sabiha</strong> et <a href="https://gcolpart.evolix.net">Grégory</a> pour avoir formé le trépied d’un noyau d’organisation ultra-stable et efficace. Je suis tellement content d’avoir fait ça avec vous.</li>
  <li><strong>Jérémy Dubois</strong> qui a fait un boulot particulier sur le réseau pour qu’on surfe sans encombre sur les Internet de 2019.</li>
  <li>Tout le reste de l’équipe d’Evolix qui a travaillé sur la mini-DebConf ou qui est resté concentré sur le boulot pour permettre aux autres de s’en détacher : <strong>Jessica</strong>, <strong>Anaïs</strong>, <strong>Juliette</strong>, <strong>Éric</strong>, <strong>Ludo</strong>, <strong>Bruno</strong>, <strong>Alexis</strong>, <strong>Tristan</strong>, <strong>Victor L</strong>, <strong>Benoit</strong>, <strong>Patrick</strong>, <strong>Pascaline</strong>, <strong>Quentin F</strong>.</li>
  <li>L’équipe vidéo de Debian (en particulier <a href="https://wiki.debian.org/NicolasDandrimont">Nicolas Dandrimont</a> et <a href="https://wiki.debian.org/LouisPhilippeVeronneau">Louis-Philippe Véronneau</a>), qui s’est déplacée du Québec, de France, d’Allemagne… pour venir faire un boulot remarquable.</li>
  <li><a href="https://lesvoiesduchant.org/">La Maison du Chant</a> qui nous a ouvert ses portes de la manière la plus généreuse et confortable qui soit.</li>
  <li><a href="https://www.instagram.com/duluxevalentine/">Valentine</a> et <a href="https://www.instagram.com/cicoulaneige/">Célia</a>, qui ont pris nos contraintes alimentaires et écologiques et en ont fait un régal pour tout le monde (sauf un carnivore un peu frustré).</li>
  <li>Tous les sponsors de l’événement : <a href="https://france.debian.net">Debian France</a>, <a href="https://evolix.com">Evolix</a>, <a href="https://bearstech.com">Bearstech</a> et <a href="https://www.logilab.fr">Logilab</a> sans qui le financement de toute cette aventure était impossible.</li>
  <li>Tou⋅te⋅s les bénévoles « non Evolix » qui ont un ont donné des coups de mains précieux et/ou des idées géniales, avec une mention spéciale à <strong>Éda</strong> et <strong>Victor G</strong> nos fidèles Aïolibristes marseillais, <a href="https://wiki.debian.org/QuentinLejard">Quentin Lejard</a> et <a href="https://wiki.debian.org/AlbanVidal">Alban Vidal</a> les meilleurs gendarmes du monde (parce ce sont des amours et qu’ils sont au cœur de Debian France).</li>
  <li>Et enfin les malheureux⋅ses que j’ai oublié⋅e⋅s et qui peuvent me hurler dessus pour que je répare l’affront (mais avec indulgence, j’écris ça du fond de mon lit en plein covid).</li>
</ul>

<p>J’ai aussi un recul forcément un peu plus grand. Et pour autant je ne renie rien de ce que j’avais écrit alors à chaud.</p>

<p>Après tout ce temps, il me reste la même fierté collective d’avoir fait de cet événement une réussite dont j’ai encore de temps en temps des échos, toujours dithyrambiques.</p>

<p>Ça me redonne encore plus envie de repartir dans une mini-DeConf à Marseille, avec les mêmes valeurs et le souci de satisfaire les gens qui font l’effort de venir. Et encore plus.</p>

<p>PS : J’ai encore du chemin à parcourir sur l’aisance à parler devant des gens (surtout en langue étrangère), car encore fortement appréhendé ma <a href="/blog/2022/11/11/haproxyconf-2022/">présentation à HAProxyConf</a> il y a quelques semaines. Il faut croire que malgré mon allure assurée, j’ai toujours peur de ne pas être à la hauteur.</p>]]></content><author><name></name></author><category term="Associatif" /><category term="debian" /><category term="evolix" /><category term="debconf" /><category term="conference" /><summary type="html"><![CDATA[Les 25 et 26 mai 2019 se tenait la mini-DebConf Marseille.]]></summary></entry><entry><title type="html">Trucs &amp;amp; Astuces Ansible</title><link href="https://jeremy.lecour.fr/blog/2019/03/31/trucs-et-astuces-ansible/" rel="alternate" type="text/html" title="Trucs &amp;amp; Astuces Ansible" /><published>2019-03-31T00:00:00+01:00</published><updated>2019-03-31T00:00:00+01:00</updated><id>https://jeremy.lecour.fr/blog/2019/03/31/trucs-et-astuces-ansible</id><content type="html" xml:base="https://jeremy.lecour.fr/blog/2019/03/31/trucs-et-astuces-ansible/"><![CDATA[<p>Lors du dernier <a href="https://www.meetup.com/fr-FR/Ansible-Marseille/events/259361342/">meetup Ansible</a> qu’<a href="https://evolix.fr">Evolix</a> organise à Marseille, j’ai présenté une série de trucs et astuces que j’utilise dans Ansible, en particulier dans <a href="https://gitea.evolix.org/evolix/ansible-roles">les rôles que nous avons publiés</a>.</p>

<p>Nous avons fait un premier test de captation. La simple caméra utilisée ne rend pas un son fantastique, mais cela permet aux absent.e.s de profiter du contenu.</p>

<p>La vidéo est consultable sur <a href="https://www.youtube.com/watch?v=Su_WgD8D_1w">YouTube</a> et les diapos sur notre <a href="https://gitea.evolix.org/evolix/meetup-ansible-mrs">Gitea</a>.</p>]]></content><author><name></name></author><category term="Informatique" /><category term="ansible" /><category term="evolix" /><category term="meetup" /><summary type="html"><![CDATA[Lors du dernier meetup Ansible qu’Evolix organise à Marseille, j’ai présenté une série de trucs et astuces que j’utilise dans Ansible, en particulier dans les rôles que nous avons publiés.]]></summary></entry></feed>