<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Servicios Rogeliowar</title><link>https://blog.serviciosrogeliowar.com/fr/</link><description>Recent content on Servicios Rogeliowar</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>© 2026 Rogelio Guerra Riverón</copyright><lastBuildDate>Fri, 22 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.serviciosrogeliowar.com/fr/index.xml" rel="self" type="application/rss+xml"/><item><title>Wazuh SIEM avec Docker : déploiement complet avec SSL et règles de conformité</title><link>https://blog.serviciosrogeliowar.com/fr/posts/wazuh-siem-docker-ssl-cumplimiento/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/wazuh-siem-docker-ssl-cumplimiento/</guid><description>&lt;h2 class="relative group"&gt;Qu&amp;rsquo;est-ce que l&amp;rsquo;ENS et pourquoi c&amp;rsquo;est important
 &lt;div id="quest-ce-que-lens-et-pourquoi-cest-important" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#quest-ce-que-lens-et-pourquoi-cest-important" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;&lt;strong&gt;&lt;a href="https://ens.ccn.cni.es/" target="_blank" rel="noreferrer"&gt;Schéma National de Sécurité (ENS)&lt;/a&gt;&lt;/strong&gt; est le cadre normatif obligatoire en matière de cybersécurité pour les Administrations Publiques espagnoles et pour les entreprises privées qui fournissent des services à ces dernières. Il est réglementé par le &lt;a href="https://www.boe.es/eli/es/rd/2022/05/03/311" target="_blank" rel="noreferrer"&gt;Real Decreto 311/2022&lt;/a&gt; et établit les principes, exigences et mesures de sécurité que doivent appliquer les systèmes d&amp;rsquo;information qui traitent des données ou des services publics.&lt;/p&gt;</description></item><item><title>Comment nettoyer les identifiants exposés dans Git avec git-filter-repo et faire tourner les tokens</title><link>https://blog.serviciosrogeliowar.com/fr/posts/como-limpiar-credenciales-expuestas-en-git-con-git-filter-repo-y-rotar-tokens/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/como-limpiar-credenciales-expuestas-en-git-con-git-filter-repo-y-rotar-tokens/</guid><description>&lt;h2 class="relative group"&gt;Le vrai problème
 &lt;div id="le-vrai-problème" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-vrai-probl%c3%a8me" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Récemment, j&amp;rsquo;ai réalisé que j&amp;rsquo;avais pusheé un fichier &lt;code&gt;.env&lt;/code&gt; contenant des identifiants d&amp;rsquo;API dans un référentiel privé. Bien qu&amp;rsquo;il soit privé, ce n&amp;rsquo;est pas une excuse. Un accès compromis, un référentiel devenant public, ou simplement un audit de sécurité aurait exposé mes tokens. J&amp;rsquo;ai appris que &lt;strong&gt;je ne peux pas faire confiance à la suppression de fichiers dans les commits ultérieurs&lt;/strong&gt;—Git conserve tout l&amp;rsquo;historique.&lt;/p&gt;</description></item><item><title>Connecter le mobile à SSH de n'importe où avec WireGuard et Termius</title><link>https://blog.serviciosrogeliowar.com/fr/posts/conectar-el-movil-a-ssh-desde-cualquier-lugar-con-wireguard-y-termius/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/conectar-el-movil-a-ssh-desde-cualquier-lugar-con-wireguard-y-termius/</guid><description>&lt;h2 class="relative group"&gt;Le problème
 &lt;div id="le-problème" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;avais besoin d&amp;rsquo;accéder à mon serveur domestique par SSH depuis mon téléphone sans l&amp;rsquo;exposer directement à internet. Les options évidentes étaient mauvaises : ouvrir le port 22 au monde entier est un suicide, et faire confiance à des apps tierces avec accès root ne me convenait pas. La solution qui a fonctionné : WireGuard + Termius.&lt;/p&gt;</description></item><item><title>Migrer Grafana et Listmonk vers PostgreSQL centralisé dans Docker</title><link>https://blog.serviciosrogeliowar.com/fr/posts/migrar-grafana-y-listmonk-a-postgresql-centralizado-en-docker/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/migrar-grafana-y-listmonk-a-postgresql-centralizado-en-docker/</guid><description>&lt;h2 class="relative group"&gt;Le problème initial
 &lt;div id="le-problème-initial" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me-initial" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;avais Grafana et Listmonk s&amp;rsquo;exécutant dans des conteneurs Docker, chacun avec sa propre instance PostgreSQL embarquée. Cela fonctionnait, mais c&amp;rsquo;était inefficace : deux moteurs de BD consommant des ressources et sans moyen centralisé de faire des sauvegardes. J&amp;rsquo;ai décidé de tout consolider dans une seule instance PostgreSQL partagée.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Préparation : démarrer PostgreSQL central
 &lt;div id="préparation--démarrer-postgresql-central" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pr%c3%a9paration--d%c3%a9marrer-postgresql-central" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;La première chose a été de créer le serveur PostgreSQL qui serait le point central. Je l&amp;rsquo;ai fait avec un docker-compose dédié :&lt;/p&gt;</description></item><item><title>Restic: sauvegardes chiffrées avec déduplication pour ton serveur Linux</title><link>https://blog.serviciosrogeliowar.com/fr/posts/restic-backups-cifrados-deduplicacion/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/restic-backups-cifrados-deduplicacion/</guid><description>&lt;p&gt;J&amp;rsquo;avais déjà des &lt;a href="https://blog.serviciosrogeliowar.com/fr/posts/backups-automaticos-con-rsync-y-cron-para-docker-domestico/" &gt;backups avec rsync et cron&lt;/a&gt;, mais rsync copie des fichiers, pas des snapshots. Si tu supprimes accidentellement un fichier et que la sauvegarde se synchronise avant que tu ne t&amp;rsquo;en aperçoives, tu le perds. &lt;a href="https://restic.net/" target="_blank" rel="noreferrer"&gt;Restic&lt;/a&gt; résout ce problème et ajoute quelque chose que rsync ne donnera jamais : &lt;strong&gt;chiffrement AES-256, déduplication et snapshots avec historique navigable&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Ce qui rend Restic différent
 &lt;div id="ce-qui-rend-restic-différent" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ce-qui-rend-restic-diff%c3%a9rent" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Caractéristique&lt;/th&gt;
					&lt;th&gt;rsync&lt;/th&gt;
					&lt;th&gt;Restic&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Chiffrement AES-256&lt;/td&gt;
					&lt;td&gt;Non&lt;/td&gt;
					&lt;td&gt;Oui&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Déduplication&lt;/td&gt;
					&lt;td&gt;Non&lt;/td&gt;
					&lt;td&gt;Oui (au niveau des blocs)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Snapshots navigables&lt;/td&gt;
					&lt;td&gt;Non&lt;/td&gt;
					&lt;td&gt;Oui&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Plusieurs backends&lt;/td&gt;
					&lt;td&gt;Non&lt;/td&gt;
					&lt;td&gt;SFTP, S3, Backblaze, rclone…&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Vérification d&amp;rsquo;intégrité&lt;/td&gt;
					&lt;td&gt;Non&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;restic check&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Politique de rétention&lt;/td&gt;
					&lt;td&gt;Manuel&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;restic forget --prune&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La déduplication est particulièrement utile pour les sauvegardes de bases de données et les répertoires de configuration qui changent peu : un référentiel Restic qui a 6 mois de sauvegardes quotidiennes occupe généralement beaucoup moins qu'180 copies complètes.&lt;/p&gt;</description></item><item><title>VPN avec Wireguard dans Docker : Accès sécurisé aux services internes sans exposition de ports</title><link>https://blog.serviciosrogeliowar.com/fr/posts/vpn-con-wireguard-en-docker-acceso-seguro-a-servicios-internos-sin-exponer-puertos/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/vpn-con-wireguard-en-docker-acceso-seguro-a-servicios-internos-sin-exponer-puertos/</guid><description>&lt;h2 class="relative group"&gt;Pourquoi tu as besoin de cela
 &lt;div id="pourquoi-tu-as-besoin-de-cela" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-tu-as-besoin-de-cela" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Il y a quelques mois, j&amp;rsquo;ai fait face à un problème courant : je voulais accéder à mes services internes (Jellyfin, Home Assistant, etc.) de l&amp;rsquo;extérieur de la maison, mais je ne voulais pas les exposer directement sur internet. Ouvrir des ports est un risque inutile. La solution a été de mettre en place un VPN avec Wireguard dans Docker. C&amp;rsquo;était la meilleure décision que j&amp;rsquo;ai prise pour mon infrastructure domestique.&lt;/p&gt;</description></item><item><title>Surveillance des conteneurs Docker avec Prometheus et Grafana : alertes automatiques à domicile</title><link>https://blog.serviciosrogeliowar.com/fr/posts/monitorizacion-de-contenedores-docker-con-prometheus-y-grafana-alertas-automaticas-en-casa/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/monitorizacion-de-contenedores-docker-con-prometheus-y-grafana-alertas-automaticas-en-casa/</guid><description>&lt;h2 class="relative group"&gt;Le problème
 &lt;div id="le-problème" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Après avoir passé des mois à exécuter des conteneurs sur mon serveur domestique, j&amp;rsquo;en ai eu assez de découvrir des problèmes quand les choses étaient déjà cassées. Un conteneur consommant toute la mémoire. Un volume plein sans avertissement. J&amp;rsquo;avais besoin d&amp;rsquo;une vraie visibilité sur ce qui se passait dans mon infrastructure.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai décidé de mettre en place une stack de monitoring avec Prometheus et Grafana. Je documente ici exactement comment j&amp;rsquo;ai procédé.&lt;/p&gt;</description></item><item><title>AUTH LOGIN manual en Python con smtplib: caracteres especiales y error 535</title><link>https://blog.serviciosrogeliowar.com/fr/posts/auth-login-manual-en-python-con-smtplib-caracteres-especiales-y-error-535/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/auth-login-manual-en-python-con-smtplib-caracteres-especiales-y-error-535/</guid><description>&lt;h2 class="relative group"&gt;Le problème
 &lt;div id="le-problème" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Il y a quelques jours, j&amp;rsquo;ai tenté d&amp;rsquo;automatiser l&amp;rsquo;envoi de courriels depuis mon serveur domestique. Rien de compliqué : un script Python avec smtplib pour envoyer des notifications. Le problème est arrivé quand j&amp;rsquo;ai configuré un mot de passe avec des caractères spéciaux : &lt;code&gt;MiPasw0rd$Ñ&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; smtplib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;server &lt;span style="color:#f92672"&gt;=&lt;/span&gt; smtplib&lt;span style="color:#f92672"&gt;.&lt;/span&gt;SMTP(&lt;span style="color:#e6db74"&gt;&amp;#39;mail.example.com&amp;#39;&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;587&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;server&lt;span style="color:#f92672"&gt;.&lt;/span&gt;starttls()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;server&lt;span style="color:#f92672"&gt;.&lt;/span&gt;login(&lt;span style="color:#e6db74"&gt;&amp;#39;usuario@example.com&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;MiPasw0rd$Ñ&amp;#39;&lt;/span&gt;) &lt;span style="color:#75715e"&gt;# Error 535&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Résultat : &lt;code&gt;SMTPAuthenticationError: (535, b'5.7.8 Authentication credentials invalid')&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Importation intelligente d'Excel en Python : Détection flexible des colonnes et nettoyage des données hétérogènes</title><link>https://blog.serviciosrogeliowar.com/fr/posts/importacion-inteligente-de-excel-en-python-deteccion-flexible-de-columnas-y-limpieza-de-datos-heterogeneos/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/importacion-inteligente-de-excel-en-python-deteccion-flexible-de-columnas-y-limpieza-de-datos-heterogeneos/</guid><description>&lt;p&gt;J&amp;rsquo;ai travaillé avec des feuilles de calcul Excel provenant de différents départements. Chacune utilise des noms de colonne distincts, les données sont sales (téléphones avec notes, NIFs mélangés avec du texte), et les codes ont des formats incohérents. Je documente ici la solution que j&amp;rsquo;ai construite.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Le problème réel
 &lt;div id="le-problème-réel" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me-r%c3%a9el" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Je recevais des fichiers Excel où :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les colonnes s&amp;rsquo;appelaient &amp;ldquo;NIF&amp;rdquo; dans l&amp;rsquo;un, &amp;ldquo;CIF&amp;rdquo; dans un autre, &amp;ldquo;Identification&amp;rdquo; dans le troisième&lt;/li&gt;
&lt;li&gt;Les téléphones ressemblaient à &amp;ldquo;123-456-7890 (ext 5)&amp;rdquo;, &amp;ldquo;9876543210 - non disponible&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Les NIFs avec des tirets, des espaces et des lettres variées&lt;/li&gt;
&lt;li&gt;Les codes de produit avec des préfixes incohérents&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je ne pouvais pas attendre que chaque personne formate de la même façon. J&amp;rsquo;avais besoin d&amp;rsquo;un système flexible.&lt;/p&gt;</description></item><item><title>Le coût caché de --reload dans uvicorn : ce qui consomme vraiment du CPU en production</title><link>https://blog.serviciosrogeliowar.com/fr/posts/el-coste-oculto-de---reload-en-uvicorn-que-consume-cpu-realmente-en-produccion/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/el-coste-oculto-de---reload-en-uvicorn-que-consume-cpu-realmente-en-produccion/</guid><description>&lt;h2 class="relative group"&gt;Le problème que personne ne voit
 &lt;div id="le-problème-que-personne-ne-voit" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me-que-personne-ne-voit" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Il y a deux mois, j&amp;rsquo;ai déployé une API FastAPI en production et le serveur se comportait étrangement. CPU stable à 40-50% sans raison apparente. J&amp;rsquo;ai pensé que c&amp;rsquo;était une fuite mémoire, que c&amp;rsquo;étaient les logs, que c&amp;rsquo;était la base de données. C&amp;rsquo;était &lt;code&gt;--reload&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il s&amp;rsquo;avère que copier-coller la commande de développement directement dans le conteneur Docker est plus courant que cela ne devrait l&amp;rsquo;être. Et oui, uvicorn avec &lt;code&gt;--reload&lt;/code&gt; fonctionne. Le serveur répond. Les requêtes vont vite. Mais il y a un coût que tu ne vois pas jusqu&amp;rsquo;à ce que tu aies 10K requêtes par jour.&lt;/p&gt;</description></item><item><title>Les minuteurs Systemd : l'alternative moderne à cron dont tu avais besoin</title><link>https://blog.serviciosrogeliowar.com/fr/posts/systemd-timers-la-alternativa-moderna-a-cron-que-necesitabas/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/systemd-timers-la-alternativa-moderna-a-cron-que-necesitabas/</guid><description>&lt;h2 class="relative group"&gt;Pourquoi j&amp;rsquo;ai abandonné cron
 &lt;div id="pourquoi-jai-abandonné-cron" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-jai-abandonn%c3%a9-cron" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;utilise cron sur mes serveurs depuis des années. C&amp;rsquo;est simple, fiable et ça marche. Mais récemment j&amp;rsquo;ai découvert systemd timers et je ne reviens pas en arrière. La raison principale : &lt;strong&gt;logs intégrés dans journald&lt;/strong&gt;, sans fichiers &lt;code&gt;.log&lt;/code&gt; qui traînent partout dans le système, et un meilleur contrôle sur ce qui se passe quand le serveur démarre ou redémarre.&lt;/p&gt;</description></item><item><title>Sauvegardes automatiques avec rsync et cron pour Docker domestique</title><link>https://blog.serviciosrogeliowar.com/fr/posts/backups-automaticos-con-rsync-y-cron-para-docker-domestico/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/backups-automaticos-con-rsync-y-cron-para-docker-domestico/</guid><description>&lt;h2 class="relative group"&gt;Le problème
 &lt;div id="le-problème" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;ai récemment perdu un disque dur sans avertissement. Ce n&amp;rsquo;était pas catastrophique car j&amp;rsquo;avais des sauvegardes, mais cela m&amp;rsquo;a rendu conscient que beaucoup de passionnés avec des serveurs domestiques n&amp;rsquo;ont aucune stratégie de protection des données. Si ton serveur Docker s&amp;rsquo;arrête demain, combien de temps te faudrait-il pour le récupérer ?&lt;/p&gt;
&lt;p&gt;Dans cet article, je partage comment j&amp;rsquo;ai automatisé les sauvegardes de mon infrastructure Docker en utilisant rsync et cron. C&amp;rsquo;est simple, efficace et ça fonctionne.&lt;/p&gt;</description></item><item><title>Synchronisation incrémentale depuis SMB avec smbprotocol sur Linux : authentification NTLM et contrôle des logs</title><link>https://blog.serviciosrogeliowar.com/fr/posts/sincronizacion-incremental-desde-smb-con-smbprotocol-en-linux-autenticacion-ntlm-y-control-de-logs/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/sincronizacion-incremental-desde-smb-con-smbprotocol-en-linux-autenticacion-ntlm-y-control-de-logs/</guid><description>&lt;h2 class="relative group"&gt;Le problème
 &lt;div id="le-problème" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;avais récemment besoin de synchroniser un partage SMB depuis un NAS avec mon serveur Linux. La solution évidente serait &lt;code&gt;smbclient&lt;/code&gt; ou &lt;code&gt;mount -t cifs&lt;/code&gt;, mais je voulais :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Synchronisation &lt;strong&gt;incrémentale&lt;/strong&gt; (uniquement les fichiers nouveaux ou modifiés)&lt;/li&gt;
&lt;li&gt;Détecter les fichiers &lt;strong&gt;supprimés&lt;/strong&gt; du partage&lt;/li&gt;
&lt;li&gt;Contrôler l&amp;rsquo;authentification &lt;strong&gt;NTLM&lt;/strong&gt; directement depuis le code&lt;/li&gt;
&lt;li&gt;Réduire la quantité obscène de logs que génère &lt;code&gt;smbprotocol&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La librairie &lt;code&gt;smbprotocol&lt;/code&gt; de Python résolvait tout cela, mais il n&amp;rsquo;y a pas de documentation sur comment bien le faire. Voici ma solution.&lt;/p&gt;</description></item><item><title>Variables d'environnement avec caractères spéciaux dans Docker Compose: le problème du dollar et comment recréer les conteneurs</title><link>https://blog.serviciosrogeliowar.com/fr/posts/variables-de-entorno-con-caracteres-especiales-en-docker-compose-el-problema-del-dollar-y-como-recrear-contenedores/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/variables-de-entorno-con-caracteres-especiales-en-docker-compose-el-problema-del-dollar-y-como-recrear-contenedores/</guid><description>&lt;h2 class="relative group"&gt;Le vrai problème
 &lt;div id="le-vrai-problème" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-vrai-probl%c3%a8me" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Je fais tourner des services sur mon serveur domestique avec Docker Compose depuis plusieurs mois. Récemment, j&amp;rsquo;ai tenté de configurer un mot de passe avec des caractères spéciaux dans mon fichier &lt;code&gt;.env&lt;/code&gt;. Le mot de passe ressemblait à &lt;code&gt;Pass$word123!@&lt;/code&gt;. Au démarrage des conteneurs, la variable arrivait vide ou malformée. Après investigation, j&amp;rsquo;ai découvert que Docker Compose interprétait le &lt;code&gt;$&lt;/code&gt; comme référence à une autre variable.&lt;/p&gt;</description></item><item><title>Durcissement de serveurs Linux : guide pratique</title><link>https://blog.serviciosrogeliowar.com/fr/posts/hardening-servidores-linux/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/hardening-servidores-linux/</guid><description>&lt;p&gt;Avoir un serveur exposé à Internet sans une configuration de sécurité minimale, c&amp;rsquo;est laisser la porte entrouverte. Dans cet article, je rassemble les étapes que j&amp;rsquo;applique sur mes propres serveurs pour réduire la surface d&amp;rsquo;attaque sans compliquer la gestion du quotidien.&lt;/p&gt;

&lt;h2 class="relative group"&gt;SSH : la première ligne de défense
 &lt;div id="ssh--la-première-ligne-de-défense" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ssh--la-premi%c3%a8re-ligne-de-d%c3%a9fense" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Le service SSH est le point d&amp;rsquo;entrée le plus attaqué sur tout serveur Linux. Voici les réglages les plus importants dans &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; :&lt;/p&gt;</description></item><item><title>Agent IA avec Claude Haiku pour générer des articles de blog depuis le terminal</title><link>https://blog.serviciosrogeliowar.com/fr/posts/agente-ia-con-claude-haiku-para-generar-articulos-de-blog-desde-el-terminal/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/agente-ia-con-claude-haiku-para-generar-articulos-de-blog-desde-el-terminal/</guid><description>&lt;h2 class="relative group"&gt;Pourquoi automatiser la génération de contenu
 &lt;div id="pourquoi-automatiser-la-génération-de-contenu" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-automatiser-la-g%c3%a9n%c3%a9ration-de-contenu" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Écrire des articles techniques prend du temps. Entre la configuration de serveurs, le troubleshooting et la documentation, je trouve peu de temps pour rédiger. J&amp;rsquo;ai donc décidé de créer un agent IA pour m&amp;rsquo;aider à structurer et générer des brouillons depuis le terminal.&lt;/p&gt;
&lt;p&gt;Claude Haiku est parfait pour cela : il est rapide, bon marché et fonctionne bien pour les tâches de génération de texte. Il ne nécessite pas de GPUs puissants. Je lance simplement un script et j&amp;rsquo;obtiens un article prêt à éditer.&lt;/p&gt;</description></item><item><title>Authentification SSH par clé publique : désactiver les mots de passe sur Ubuntu Server</title><link>https://blog.serviciosrogeliowar.com/fr/posts/autenticacion-ssh-por-clave-publica-desactivar-contrasenas-en-ubuntu-server/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/autenticacion-ssh-por-clave-publica-desactivar-contrasenas-en-ubuntu-server/</guid><description>&lt;h2 class="relative group"&gt;Pourquoi passer à l&amp;rsquo;authentification par clé
 &lt;div id="pourquoi-passer-à-lauthentification-par-clé" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-passer-%c3%a0-lauthentification-par-cl%c3%a9" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Après des mois de maintenance d&amp;rsquo;un serveur domestique avec accès SSH ouvert, j&amp;rsquo;en ai eu assez des tentatives de force brute contre le mot de passe. Passer à l&amp;rsquo;authentification par clé publique a été la meilleure décision de sécurité que j&amp;rsquo;ai prise. Les clés sont mathématiquement impossibles à craquer par force brute, alors que les mots de passe sont toujours une cible.&lt;/p&gt;</description></item><item><title>Blog statique avec Hugo et thème Blowfish sur un serveur domestique</title><link>https://blog.serviciosrogeliowar.com/fr/posts/blog-estatico-con-hugo-y-tema-blowfish-en-un-servidor-domestico/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/blog-estatico-con-hugo-y-tema-blowfish-en-un-servidor-domestico/</guid><description>&lt;p&gt;Je documente depuis un moment mes projets d&amp;rsquo;infrastructure. Après avoir testé plusieurs options, j&amp;rsquo;ai décidé de créer un blog statique avec Hugo. La combinaison Hugo + Blowfish s&amp;rsquo;est avérée être exactement ce dont j&amp;rsquo;avais besoin : rapide, propre et facile à maintenir.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Pourquoi Hugo et Blowfish
 &lt;div id="pourquoi-hugo-et-blowfish" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-hugo-et-blowfish" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Hugo est un générateur de sites statiques écrit en Go. Il est incroyablement rapide et ne nécessite ni base de données ni dépendances compliquées. Blowfish est un thème moderne, minimaliste et bien documenté. Les deux fonctionnent parfaitement sur un serveur domestique avec des ressources limitées.&lt;/p&gt;</description></item><item><title>CI/CD avec GitLab Runner local pour déployer automatiquement un blog Hugo</title><link>https://blog.serviciosrogeliowar.com/fr/posts/cicd-con-gitlab-runner-local-para-desplegar-automaticamente-un-blog-hugo/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/cicd-con-gitlab-runner-local-para-desplegar-automaticamente-un-blog-hugo/</guid><description>&lt;h2 class="relative group"&gt;Introduction
 &lt;div id="introduction" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#introduction" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Fatigué de faire des déploiements manuels de mon blog Hugo chaque fois que je publie un article. J&amp;rsquo;ai décidé de mettre en place un pipeline CI/CD local avec GitLab Runner. Le résultat : automatique, fiable et sans dépendre de services externes.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Prérequis
 &lt;div id="prérequis" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pr%c3%a9requis" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Tu as besoin de :&lt;/p&gt;</description></item><item><title>Comment configurer votre propre infrastructure web à la maison avec Docker et Traefik : de zéro à HTTPS automatique</title><link>https://blog.serviciosrogeliowar.com/fr/posts/como-montar-tu-propia-infraestructura-web-en-casa-con-docker-y-traefik-desde-cero-hasta-https-automatico/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/como-montar-tu-propia-infraestructura-web-en-casa-con-docker-y-traefik-desde-cero-hasta-https-automatico/</guid><description>&lt;h2 class="relative group"&gt;Introduction
 &lt;div id="introduction" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#introduction" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Il y a quelques mois, j&amp;rsquo;ai décidé d&amp;rsquo;arrêter d&amp;rsquo;utiliser des services cloud coûteux et de mettre en place ma propre infrastructure à la maison. La solution que j&amp;rsquo;ai trouvée a été de combiner Docker avec Traefik. Cela fonctionne bien et maintenant j&amp;rsquo;ai plusieurs services fonctionnant sous HTTPS sans toucher manuellement à un certificat. Je te raconte comment j&amp;rsquo;ai fait.&lt;/p&gt;</description></item><item><title>Comment indexer votre site web dans Google Search Console : guide pratique avec sitemap et vérification de domaine</title><link>https://blog.serviciosrogeliowar.com/fr/posts/como-indexar-tu-sitio-web-en-google-search-console-guia-practica-con-sitemap-y-verificacion-de-dominio/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/como-indexar-tu-sitio-web-en-google-search-console-guia-practica-con-sitemap-y-verificacion-de-dominio/</guid><description>&lt;p&gt;Quand j&amp;rsquo;ai mis mon premier site en production sur le serveur domestique, j&amp;rsquo;ai commis l&amp;rsquo;erreur de penser que Google le découvrirait tout seul. Ce ne fut pas le cas. Après une semaine sans trace dans les résultats de recherche, j&amp;rsquo;ai compris que je devais être plus proactif. Voici ce que j&amp;rsquo;ai appris en configurant Google Search Console à partir de zéro.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Pourquoi tu as besoin de Google Search Console
 &lt;div id="pourquoi-tu-as-besoin-de-google-search-console" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-tu-as-besoin-de-google-search-console" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Google Search Console n&amp;rsquo;est pas optionnel. C&amp;rsquo;est ta communication directe avec Google concernant ton site. Il te montre les erreurs d&amp;rsquo;indexation, les problèmes de sécurité, et surtout : il te permet de dire à Google exactement quelles pages indexer et quand.&lt;/p&gt;</description></item><item><title>Configurer Traefik v2.11 en tant que reverse proxy avec Docker et HTTPS automatique avec Let's Encrypt</title><link>https://blog.serviciosrogeliowar.com/fr/posts/configurar-traefik-v211-como-reverse-proxy-con-docker-y-https-automatico-con-lets-encrypt/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/configurar-traefik-v211-como-reverse-proxy-con-docker-y-https-automatico-con-lets-encrypt/</guid><description>&lt;h2 class="relative group"&gt;Introduction
 &lt;div id="introduction" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#introduction" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Après des mois d&amp;rsquo;utilisation manuelle de nginx, j&amp;rsquo;ai décidé de passer à Traefik. La raison est simple : gérer les certificats SSL pour chaque nouveau service est fastidieux. Traefik automatise tout avec Let&amp;rsquo;s Encrypt intégré. Voici ma configuration réelle.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Pourquoi Traefik
 &lt;div id="pourquoi-traefik" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-traefik" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Avec Traefik, tu n&amp;rsquo;as pas besoin de recharger nginx chaque fois que tu ajoutes un conteneur. Il détecte automatiquement les services Docker, génère les certificats SSL à la demande et redirige le trafic. Tout est déclaratif.&lt;/p&gt;</description></item><item><title>CSS qui ne faille pas : erreurs courantes lors de la stylisation de pages web et comment les éviter</title><link>https://blog.serviciosrogeliowar.com/fr/posts/css-errores-comunes-estilos/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/css-errores-comunes-estilos/</guid><description>&lt;p&gt;CSS semble simple jusqu&amp;rsquo;à ce que quelque chose ne fonctionne pas comme prévu. Tu passes des heures à regarder l&amp;rsquo;inspecteur du navigateur, tu changes une propriété, puis une autre, et le problème persiste. Cet article recueille les erreurs les plus fréquentes que j&amp;rsquo;ai rencontrées lors de la création de ce blog, avec des solutions directes.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Le fond qui disparaît au défilement
 &lt;div id="le-fond-qui-disparaît-au-défilement" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-fond-qui-dispara%c3%aet-au-d%c3%a9filement" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Le problème :&lt;/strong&gt; La page s&amp;rsquo;affiche bien dans la partie visible, mais en bas apparaît un fond blanc ou différent de celui attendu.&lt;/p&gt;</description></item><item><title>Fail2ban pour protéger SSH et Nginx : configuration pratique sur Ubuntu</title><link>https://blog.serviciosrogeliowar.com/fr/posts/fail2ban-para-proteger-ssh-y-nginx-configuracion-practica-en-ubuntu/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/fail2ban-para-proteger-ssh-y-nginx-configuracion-practica-en-ubuntu/</guid><description>&lt;h2 class="relative group"&gt;Le problème : attaques par force brute
 &lt;div id="le-problème--attaques-par-force-brute" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#le-probl%c3%a8me--attaques-par-force-brute" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Après avoir exposé mon serveur Ubuntu à internet, j&amp;rsquo;ai passé une nuit à examiner les logs. SSH recevait des tentatives de connexion échouées chaque seconde. Nginx aussi avait des requêtes suspectes vers des chemins courants. J&amp;rsquo;avais besoin de quelque chose pour bloquer ces tentatives automatiquement. Fail2ban a été ma solution.&lt;/p&gt;</description></item><item><title>Notifications de sécurité par email depuis le terminal avec msmtp et Gmail</title><link>https://blog.serviciosrogeliowar.com/fr/posts/notificaciones-de-seguridad-por-email-desde-el-terminal-con-msmtp-y-gmail/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/notificaciones-de-seguridad-por-email-desde-el-terminal-con-msmtp-y-gmail/</guid><description>&lt;h2 class="relative group"&gt;Pourquoi tu as besoin de cela
 &lt;div id="pourquoi-tu-as-besoin-de-cela" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-tu-as-besoin-de-cela" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Quand tu lances un serveur à la maison, tu dois savoir si quelque chose d&amp;rsquo;étrange se produit. Un script qui t&amp;rsquo;envoie un email quand il détecte une tentative d&amp;rsquo;accès échouée, un certificat sur le point d&amp;rsquo;expirer ou un disque presque plein est inestimable. Le problème est que ton FAI bloque le port 25, donc tu ne peux pas utiliser sendmail directement. C&amp;rsquo;est là que msmtp intervient.&lt;/p&gt;</description></item><item><title>Réplique d'urgence : comment avoir votre serveur domestique sauvegardé sur un VPS</title><link>https://blog.serviciosrogeliowar.com/fr/posts/replica-emergencia-vps/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/replica-emergencia-vps/</guid><description>&lt;p&gt;Avoir un serveur à la maison présente un point faible évident : s&amp;rsquo;il y a une coupure d&amp;rsquo;électricité, le routeur tombe en panne, ou le disque meurt, ton site disparaît. La solution est d&amp;rsquo;avoir une réplique dans le cloud prête à s&amp;rsquo;activer en quelques minutes.&lt;/p&gt;

&lt;h2 class="relative group"&gt;L&amp;rsquo;architecture
 &lt;div id="larchitecture" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#larchitecture" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[servidor-casa] → rsync cada 6h → [VPS réplica]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; servicios activos réplica en espera
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; TTL DNS: 5 min Uptime Kuma vigilando&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Le serveur de la maison envoie le contenu au VPS toutes les 6 heures. Si le serveur tombe en panne, je change le DNS et en 5 minutes le VPS diffuse le site.&lt;/p&gt;</description></item><item><title>Surveillance complète avec Prometheus, Grafana et Loki : métriques, logs et conteneurs Docker</title><link>https://blog.serviciosrogeliowar.com/fr/posts/monitoring-prometheus-grafana-loki/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/monitoring-prometheus-grafana-loki/</guid><description>&lt;p&gt;Un serveur sans surveillance est un serveur aveugle. Vous ne savez pas quand le disque se remplit, quel conteneur consomme trop de RAM, ou combien de requêtes 404 votre site génère. Cet article documente comment j&amp;rsquo;ai configuré la pile complète : &lt;a href="https://prometheus.io/" target="_blank" rel="noreferrer"&gt;Prometheus&lt;/a&gt; + &lt;a href="https://github.com/prometheus/node_exporter" target="_blank" rel="noreferrer"&gt;Node Exporter&lt;/a&gt; + &lt;a href="https://grafana.com/" target="_blank" rel="noreferrer"&gt;Grafana&lt;/a&gt; + &lt;a href="https://grafana.com/oss/loki/" target="_blank" rel="noreferrer"&gt;Loki&lt;/a&gt; + &lt;a href="https://grafana.com/docs/loki/latest/send-data/promtail/" target="_blank" rel="noreferrer"&gt;Promtail&lt;/a&gt;.&lt;/p&gt;

&lt;h2 class="relative group"&gt;L&amp;rsquo;architecture
 &lt;div id="larchitecture" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#larchitecture" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[Servidor doméstico]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├── node-exporter → métricas del sistema (CPU, RAM, disco, red)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├── docker-stats- → métricas de contenedores (textfile collector)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ collector
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├── prometheus → recolecta y almacena métricas
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├── loki → agrega y almacena logs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├── promtail → envía logs de Nginx y syslog a Loki
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └── grafana → dashboards de todo lo anterior&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Tous les services tournent sur Docker, coordonnés par le même &lt;code&gt;docker-compose.yml&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>WireGuard VPN : accédez à votre serveur domestique de n'importe où</title><link>https://blog.serviciosrogeliowar.com/fr/posts/wireguard-vpn-servidor-dom%C3%A9stico/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/wireguard-vpn-servidor-dom%C3%A9stico/</guid><description>&lt;p&gt;L&amp;rsquo;un des problèmes classiques d&amp;rsquo;avoir un serveur à la maison est l&amp;rsquo;accès à distance sécurisé. Ouvrir les ports SSH directement au monde est une mauvaise idée — vous le voyez dans les logs d&amp;rsquo;authentification : des centaines de tentatives par jour. La solution élégante est un VPN, et &lt;a href="https://www.wireguard.com/" target="_blank" rel="noreferrer"&gt;WireGuard&lt;/a&gt; est aujourd&amp;rsquo;hui la meilleure option disponible.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Pourquoi WireGuard ?
 &lt;div id="pourquoi-wireguard-" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#pourquoi-wireguard-" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Comparé à &lt;a href="https://openvpn.net/" target="_blank" rel="noreferrer"&gt;OpenVPN&lt;/a&gt; ou IPSec :&lt;/p&gt;</description></item><item><title>Comment ce blog est né</title><link>https://blog.serviciosrogeliowar.com/fr/posts/bienvenida/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/posts/bienvenida/</guid><description>&lt;p&gt;Ce blog est né d&amp;rsquo;un processus réel.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;avais un domaine, un serveur à la maison et l&amp;rsquo;envie de monter quelque chose par moi-même. Au lieu de suivre un tutoriel générique, j&amp;rsquo;ai décidé de documenter exactement ce que je faisais — erreurs comprises.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Ce que tu trouveras ici
 &lt;div id="ce-que-tu-trouveras-ici" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ce-que-tu-trouveras-ici" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Des articles sur ce que je construis et ce que j&amp;rsquo;apprends :&lt;/p&gt;</description></item><item><title>À propos de moi</title><link>https://blog.serviciosrogeliowar.com/fr/sobre-mi/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/fr/sobre-mi/</guid><description>&lt;h2 class="relative group"&gt;Bonjour, je suis Rogelio
 &lt;div id="bonjour-je-suis-rogelio" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#bonjour-je-suis-rogelio" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Je suis sysadmin passionné par l&amp;rsquo;infrastructure réelle : celle qui tourne sur du vrai matériel, pas seulement dans le cloud. Depuis des années, je construis et maintiens ma propre infrastructure web depuis chez moi, apprenant au cours du processus tout ce que les cours n&amp;rsquo;enseignent pas.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Ce que tu trouveras ici
 &lt;div id="ce-que-tu-trouveras-ici" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ce-que-tu-trouveras-ici" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Ce blog est mon carnet technique public. Je documente ce que je fais, ce que je casse et comment je le répare. Rien d&amp;rsquo;exemples génériques — tout provient de cas réels.&lt;/p&gt;</description></item></channel></rss>