L’article explique comment éviter les race conditions dans Symfony Workflow en production, illustré par un bug où une commande passe simultanément en état "expédié" et "annulé". L’auteur montre que Symfony Workflow seul ne gère pas les accès concurrents, laissant deux processus modifier le même état en parallèle.
La solution repose sur le composant Symfony Lock, qui permet de verrouiller une ressource (comme une commande) pendant une transition. En utilisant Redis comme stockage partagé, le verrou empêche les accès simultanés et garantit qu’un seul processus peut modifier l’état à la fois. L’article détaille la configuration et l’intégration avec Symfony Messenger pour une gestion robuste des conflits.
L’auteur propose une implémentation progressive, partant d’une approche naïve pour aboutir à une solution production-ready, adaptable à tout projet Symfony utilisant des workers asynchrones.
GitLab propose des solutions pour optimiser les pipelines CI/CD face à des défis complexes comme les monorepos, les microservices ou les déploiements multi-environnements. L’article met en avant cinq cas d’usage concrets où la logique des pipelines GitLab (pipelines parents-enfants, exécution DAG, génération dynamique, etc.) améliore l’efficacité et la maintenabilité. Par exemple, pour un monorepo, GitLab permet de déclencher uniquement les sous-pipelines concernés par un changement, réduisant ainsi les temps d’exécution inutiles.
L’approche repose sur des fonctionnalités composables, comme les parent-child pipelines et les dépendances flexibles via needs, qui évitent les goulots d’étranglement liés aux pipelines linéaires traditionnels. Chaque sous-pipeline peut être géré indépendamment, facilitant la collaboration entre équipes tout en centralisant la visibilité des résultats.
Enfin, l’article souligne que cette modularité permet de résoudre des problèmes réels, comme l’optimisation des tests ou des déploiements, sans sacrifier la lisibilité ou la performance. Les exemples de configuration fournis illustrent comment adapter ces outils à des scénarios spécifiques, tout en restant adaptables à des besoins évolutifs.
Ce guide explique comment configurer un pipeline CI/CD complet pour une application React avec GitLab, permettant des déploiements automatisés. L’auteur souligne les avantages de cette approche, comme l’élimination des erreurs liées aux différences d’environnement local et la suppression des déploiements manuels, source de problèmes passés. Le tutoriel détaille la création d’un fichier .gitlab-ci.yml pour automatiser les tests, la construction et le déploiement sur GitLab Pages à chaque push sur la branche principale.
L’article illustre la configuration avec un projet React simple, intégrant des variables d’environnement pour afficher des informations comme l’heure de construction ou l’environnement. Il met en garde contre des pièges courants, comme la gestion des emojis dans les tests ou les restrictions de CRA concernant les variables d’environnement, et propose des solutions pratiques pour les contourner. Le pipeline est conçu pour reproduire fidèlement l’environnement de production, garantissant ainsi une cohérence dans les builds.
Cet article explique comment déployer un serveur NTP local via Docker (avec Chrony) pour synchroniser précisément vos équipements réseau, même sans accès Internet. Après la configuration du conteneur, l'auteur détaille les étapes pour synchroniser les clients (Windows, Linux, routeur UniFi, NAS Synology) et assure une redondance avec un second serveur. Une solution simple pour éviter les décalages horaires et optimiser la corrélation des logs. 🔧⏱️
L'auteur explique pourquoi Ruby on Rails est devenu, presque par hasard, le framework parfait pour travailler avec des LLM (Large Language Models). Grâce à ses conventions strictes (Convention over Configuration), sa structure prévisible et son langage Ruby proche du naturel, Rails permet aux IA de comprendre et modifier le code sans instructions détaillées. Un exemple concret montre comment un LLM a ajouté un champ à un modèle Rails en quelques minutes, simplement en suivant les conventions connues. L'auteur souligne aussi l'efficacité de Rails pour l'IA : centralisation du schéma de données dans schema.rb, code déclaratif et dense, et Hotwire pour une interactivité côté serveur simplifiée. En résumé, Rails amplifie l'expertise collective des développeurs tout en réduisant les risques d'erreurs pour les IA.
L’auteur de Spirio.fr partage son expérience du déploiement d’IPv6 sur son infrastructure, une transition qu’il avait longtemps repoussée. Après une après-midi dédiée, il détaille les étapes clés : activation de l’adressage IPv6 sur le serveur, configuration du pare-feu, du reverse proxy HTTPD et des DNS, ainsi que l’adaptation d’AdGuardHome (avec des ajustements spécifiques pour Nftables). Malgré quelques défis, notamment autour d’AdGuardHome, l’auteur souligne la relative simplicité de la procédure pour la plupart des services. Un retour d’expérience pratique pour ceux qui hésitent encore à sauter le pas ! 🌐🔧
L'auteur partage la formation à Ansible qu'il propose à des personnes familières avec l'administration de systèmes Linux, et qui souhaitent industrialiser la gestion de leurs configurations.
Cet article décrit la mise en place d'une architecture haute disponibilité pour un blog WordPress, utilisant Galera MariaDB et Redis Sentinel sur trois nœuds. L'auteur, inspiré par un article de Julien MOROT, partage son expérience et ses configurations pour déployer cette solution en laboratoire. Il utilise des conteneurs LXC Debian 12 et couvre l'installation et la configuration de HAProxy, Keepalived, et les bases de données, avec des détails sur les commandes et fichiers de configuration essentiels. L'objectif est de fournir une solution robuste pour héberger un blog WordPress avec une haute disponibilité.
Gestion des dotfiles avec GNU Stow : Xavier Nayrac explique comment il a organisé ses fichiers de configuration (.dotfiles) et scripts utilisateur à l'aide de GNU Stow, un outil qui crée des liens symboliques pour répliquer une structure de fichiers. Il décrit son organisation en modules par fonctionnalité, l'installation de Stow, et des exemples d'utilisation avec des options comme --dotfiles, --simulate, et --target. Une solution simple et efficace pour gérer ses configurations sur plusieurs machines.
Cet article explique comment sécuriser une connexion SSH en utilisant des clés publiques/privées, en désactivant l'authentification par mot de passe et en installant fail2ban. Il détaille les étapes pour générer une paire de clés (préférentiellement avec l'algorithme ed25519), les copier sur le serveur, ajuster les permissions et configurer PuTTY pour Windows. Une manipulation simple mais efficace pour protéger son serveur contre les attaques par force brute.
Ce tutoriel explique comment configurer Caddy 2 avec un certificat SSL wildcard pour tous les sous-domaines d'un domaine, en utilisant le défi DNS avec OVH comme fournisseur DNS. Il couvre l'installation de Caddy via Docker, l'ajout du plugin OVH, la configuration du fichier Caddyfile, et l'obtention des identifiants nécessaires pour OVH. Le guide est détaillé et adapté pour ceux qui souhaitent migrer ou tester Caddy comme reverse proxy.
Ce tutoriel explique comment sécuriser l'envoi d'e-mails en utilisant les protocoles SPF, DKIM et DMARC. Il détaille les failles du protocole SMTP et comment ces trois mécanismes complémentaires, basés sur le DNS, permettent de vérifier l'identité des expéditeurs et de lutter contre le spam et le phishing. Le tutoriel aborde la configuration de chaque protocole, leurs limites et leurs synergies, avec des exemples de syntaxe pour les enregistrements DNS.
Richard Dern partage son expérience de mise en place d'IPv6 sur son réseau avec OPNsense et une Freebox Pop Fibre en mode bridge. Après des années d'échecs dus à une méconnaissance technique, il a utilisé ChatGPT pour configurer son système. L'objectif était d'assurer une double connectivité IPv4 et IPv6 pour ses clients LAN et ses serveurs. La configuration implique l'activation du Next Hop IPv6 sur la Freebox et la configuration de l'interface WAN d'OPNsense en mode SLAAC. ChatGPT a géré la configuration avec succès, en procédant à des sauvegardes et en exécutant des commandes sans interruption.
L'auteur partage son expérience de gestion d'environnements de développement multi-OS (MacOS, Fedora, Ubuntu) avec des outils comme Zed, Neovim, et 1Password. Il explique comment il a résolu les défis de configuration et de synchronisation en utilisant chezmoi, un outil recommandé par un collègue, et mise pour automatiser l'installation et la gestion des outils de développement. Il détaille le processus d'installation et d'utilisation de ces outils, ainsi que leur intégration dans son workflow quotidien. L'article se conclut par une réflexion sur l'efficacité de cette combinaison pour gérer ses environnements de développement.
Andrew Nesbitt explique dans cet article les fichiers spéciaux que Git recherche dans les dépôts pour contrôler son comportement. Ces fichiers, comme .gitignore, .gitattributes, .lfsconfig et .gitmodules, sont commis avec le code et influencent la manière dont Git traite les fichiers. Par exemple, .gitignore définit les fichiers à ignorer, .gitattributes configure le traitement des fichiers spécifiques, .lfsconfig gère les paramètres de Git LFS, et .gitmodules configure les sous-modules. Ces fichiers sont essentiels pour les outils travaillant avec les dépôts Git.
L'auteur de ce blog, utilisant Hugo pour son site statique, partage son parcours pour améliorer la sécurité de son blog en configurant les en-têtes HTTP grâce à l'outil Mozilla HTTP Observatory. Initialement noté F, il parvient à obtenir la note A+ en implémentant plusieurs en-têtes de sécurité tels que Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, Referrer-Policy et X-Frame-Options. Il détaille les étapes, les défis rencontrés, notamment avec la configuration de nginx, et les solutions apportées pour sécuriser efficacement son site.
Testssl.sh est un outil open source pour auditer la configuration SSL/TLS des serveurs web. Il permet de vérifier les protocoles supportés, les suites de chiffrement, les vulnérabilités connues et les en-têtes de sécurité HTTP. Fonctionnant sous Linux, macOS, FreeBSD et Windows (via WSL), il est également disponible en image Docker. Ce tutoriel explique son installation, son utilisation et l'interprétation des rapports générés, offrant une solution complète pour sécuriser les échanges web.
Ce billet explique comment configurer HTTP/3 avec Nginx sous Debian Trixie. Il détaille les changements de syntaxe pour activer HTTP/3 et Quic, notamment l'utilisation de directives séparées pour HTTP/2 et HTTP/3. L'auteur souligne un problème spécifique avec les backends en HTTP/1.1, où la variable $http_host est vide en HTTP/3, ce qui bloque les requêtes. La solution proposée est de remplacer $http_host par $host dans le fichier proxy_params. Un bug a été ouvert chez Debian pour corriger ce comportement par défaut.
Le guide explique comment automatiser un serveur multimédia Docker en ajoutant Prowlarr, Sonarr, Radarr ainsi que des outils annexes comme Recyclarr et qbit_manage à l’architecture de la partie 1 pour automatiser la recherche, le téléchargement et le classement des films/séries, en insistant sur une configuration correcte des volumes et des liaisons Docker, l’intégration des indexeurs via Prowlarr et une connexion sécurisée à qBittorrent via un reverse-proxy, tout en utilisant Recyclarr pour appliquer des règles de qualité des releases.
La Partie 1 du Guide Media Server Docker 2026 détaille comment sécuriser un serveur de médias auto-hébergé en conteneur Docker avec un VPN via Gluetun et un client qBittorrent, en se concentrant sur la mise en place d’une architecture réseau isolée et performante : l’article recommande l’installation de Docker/Docker-Compose sur un serveur Linux, la création d’un utilisateur dédié pour limiter les privilèges, une structure de dossiers optimisée pour les hardlinks, puis la configuration de Gluetun comme unique accès Internet pour qBittorrent avec port forwarding automatique afin de masquer l’IP et maintenir de bons débits tout en évitant les fuites et en assurant un « killswitch » si le VPN tombe, avec un exemple de stack Docker-Compose et des conseils pratiques pour la configuration et les tests.