Ce guide complet explique comment installer et configurer un VPN WireGuard sur un VPS Ubuntu pour naviguer de manière sécurisée et anonyme. WireGuard, léger et intégré au noyau Linux, utilise des algorithmes modernes comme ChaCha20 et Curve25519. Le processus inclut : l’installation de WireGuard, la génération des clés de chiffrement, la configuration du serveur et du client, l’activation du forwarding IP et du NAT, ainsi que la gestion des règles pare-feu. Une fois configuré, le VPN permet de rediriger tout le trafic internet via le serveur, avec des options pour exclure le réseau local si besoin. Le guide propose aussi des astuces pour ajouter plusieurs clients, dépanner les connexions et optimiser la sécurité (changement de port, surveillance des connexions). Idéal pour protéger sa vie privée, WireGuard offre une alternative simple et performante à OpenVPN
L’article explique comment implémenter une architecture multi-tenant dans Symfony à l’aide du bundle Hakam Multi Tenancy Bundle. L’objectif est de créer une application SaaS où chaque client (tenant) dispose de sa propre base de données isolée, tout en partageant une infrastructure commune. L’architecture repose sur une base principale (pour les utilisateurs et les configurations) et des bases dédiées par tenant (pour les données métiers, comme les patients dans l’exemple d’une application médicale). Le tutoriel détaille la configuration du bundle, la séparation des entités (Main/Tenant), la création des fixtures, et l’automatisation de la commutation de contexte en fonction de l’utilisateur connecté. L’approche permet une isolation totale des données, une scalabilité optimisée et une maintenance simplifiée. Idéal pour les applications nécessitant une sécurité et une personnalisation par client.
Cet article explique comment optimiser un agent IA en utilisant le composant Symfony Messenger pour gérer les tâches longues (comme les appels à des API externes ou des modèles LLM) de manière asynchrone. Grâce à cette approche, l’agent devient plus performant et résilient : les opérations bloquantes (récupération d’emails, traitement par LLM, envoi de notifications) sont découplées et exécutées en arrière-plan via des files de messages (Redis, AMQP, etc.). L’auteur détaille la configuration des bus de commandes, requêtes et événements (CQRS), illustre la création de messages et de handlers dédiés, et montre comment lancer un consommateur Symfony pour traiter les tâches sans bloquer l’application principale. Résultat : un système scalable, tolérant aux pannes et prêt pour la production.
Ce tutoriel montre comment créer un agent IA personnalisé avec Symfony en seulement 11 minutes, en utilisant des modèles comme OpenAI, Gemini ou Llama. L’exemple concret consiste à récupérer des emails via IMAP, à les résumer automatiquement avec une IA, puis à envoyer le résumé par email ou messagerie. L’article détaille l’installation du composant Symfony AiAgent (sorti en juillet 2025), la configuration de l’API OpenAI, la gestion des emails (stripping HTML, utilisation de Symfony Mime et Notifier), et l’intégration du tout dans une commande console. Une base flexible pour automatiser des workflows avec Symfony et l’IA, adaptable à d’autres sources de données ou canaux de notification.
Symfony AI est un nouvel ensemble de composants PHP conçu pour faciliter l’intégration de l’intelligence artificielle dans les applications Symfony. Il propose notamment Platform, une interface unifiée pour interagir avec des plateformes d’IA (OpenAI, Mistral, Gemini, etc.) afin de vectoriser des textes (transformation en vecteurs numériques pour mesurer leur similarité), et Store, un système de stockage et de recherche optimisé pour les données vectorielles, compatible avec des bases comme Postgres, Redis ou Meilisearch. L’article illustre comment vectoriser des documents, les stocker, puis retrouver ceux qui sont sémantiquement proches grâce à des mesures comme la cosine similarity. Symfony AI permet ainsi de créer facilement des fonctionnalités avancées comme la recherche sémantique ou le RAG (Retrieval-Augmented Generation), tout en offrant la flexibilité de changer de fournisseur d’IA ou de base de données selon ses besoins. Une solution performante et modulaire pour exploiter l’IA en maîtrisant ses données.
Créer une machine virtuelle Windows 11 avec VirtualBox – Ce guide explique comment installer Windows 11 dans une VM, en utilisant une licence d’évaluation gratuite (90 jours) ou une version non activée, suffisante pour un usage ponctuel. L’auteur détaille les étapes pour contourner l’obligation de compte Microsoft lors de l’installation (via la commande OOBE\BYPASSNRO
), optimiser la VM avec les VirtualBox Guest Additions, désinstaller les applications et services indésirables (Edge, OneDrive, Copilot, etc.), et configurer un environnement propre et respectueux de la vie privée. Il aborde aussi l’installation d’un navigateur alternatif comme LibreWolf, le nettoyage des paramètres de confidentialité, et propose des astuces pour personnaliser l’interface. Un bonus est consacré à la configuration de Rust pour la compilation. L’article souligne la complexité de "dépolluer" Windows 11, tout en reconnaissant les améliorations ergonomiques par rapport à Windows 10.
L’article raconte l’expérience de Kate, une designer UX fictive dans une FinTech, qui intègre l’IA dans son processus de design sprint sur une semaine. Chaque jour, elle explore comment l’IA peut l’aider à comprendre les besoins des utilisateurs, générer des idées, critiquer des concepts, prototyper et tester, tout en restant centrée sur l’humain. L’IA accélère certaines tâches (synthèse de données, génération d’idées, création de prototypes), mais Kate réalise qu’elle doit constamment superviser, vérifier et adapter les résultats pour éviter les erreurs ou les biais. Elle souligne l’importance de conserver des compétences purement humaines comme l’empathie, la pensée critique et la curiosité, car l’IA reste un outil complémentaire, pas un remplaçant. L’article montre que l’IA peut être un collaborateur créatif, à condition de l’utiliser avec discernement et de ne pas lui déléguer le jugement ou la compréhension fine des utilisateurs. Une réflexion utile pour les designers souhaitant adopter l’IA sans perdre leur touche humaine.
L’auteur raconte sa migration de services auto-hébergés depuis un VPS vers un mini-PC à domicile (un Minisforum UM880 Plus), en profitant de l’occasion pour mettre en place une infrastructure plus flexible et robuste avec Proxmox VE. L’objectif est de pouvoir expérimenter (notamment avec Kubernetes) sans risquer de casser sa production, tout en sécurisant ses données via le chiffrement disque et des sauvegardes solides. Après avoir installé Debian avec chiffrement LUKS, il automatise la configuration de Proxmox et du réseau (pont bridge) via Ansible, afin de pouvoir recréer rapidement son infrastructure en cas de vol ou de panne matérielle. Il prévoit d’utiliser OpenTofu et cloud-init pour déployer et configurer des machines virtuelles de manière reproductible, et Ansible pour gérer la configuration des services. Le billet détaille aussi les écueils rencontrés (comme le blocage au démarrage après l’installation de Proxmox, résolu en configurant une IP statique) et explique comment son playbook Ansible permet de tout réinstaller automatiquement. Une suite est annoncée pour aborder le déploiement de VM et la gestion des services avec Kubernetes.
Ce tutoriel détaillé explique comment mettre en place une solution de supervision complète de vos serveurs avec Prometheus (pour la collecte et le stockage des métriques système) et Grafana (pour leur visualisation sous forme de tableaux de bord interactifs).
Il couvre l’installation et la configuration de Prometheus et Grafana via Docker sur un serveur dédié, ainsi que le déploiement d’exporters comme node_exporter (métriques système), cAdvisor (métriques containers Docker), process_exporter (métriques processus), et blackbox_exporter (tests de disponibilité des services). Le guide aborde aussi la sécurisation des interfaces, la création d’alertes, et l’intégration d’Alert Manager pour la gestion des notifications. Idéal pour surveiller en temps réel l’état de votre infrastructure et recevoir des alertes en cas de dépassement de seuils, avec des exemples concrets et des tableaux de bord Grafana prêts à l’emploi.
Ce tutoriel explique comment déployer Longhorn, une solution de stockage distribué, sur un cluster K3s (Kubernetes léger).
Il détaille les prérequis (Kubernetes 1.28+, 2 Go de RAM, open-iscsi
installé), la préparation d’un dossier dédié (/opt/longhorn
), puis l’installation via un manifest YAML personnalisé pour spécifier le chemin de stockage. Après déploiement, il montre comment vérifier l’état des pods, corriger une mauvaise configuration via un patch, et tester le stockage avec un PVC de 1 Go. Des astuces pour la mise à jour, la vérification de l’état du service et le redimensionnement des volumes sont aussi partagées. Idéal pour ajouter du stockage persistant et résilient à un cluster K3s avec peu de ressources.
Ajouter la GeoIP à Nginx Proxy Manager (NPM 2.12+) permet de bloquer ou logger les visiteurs par pays. Il suffit d’activer les modules GeoIP via root_top.conf
, de télécharger les bases GeoLite2 de Maxmind (gratuites, après inscription), et de configurer les règles de blocage dans http_top.conf
. Les logs peuvent aussi être enrichis avec les infos géographiques.
L'auteur analyse et améliore la section "hero" du site Time.com, critiquant notamment le passage trop précoce à un affichage mobile (1 colonne) qui gaspille l’espace disponible sur les écrans intermédiaires. Il propose une approche plus flexible et progressive, en utilisant des techniques CSS modernes : CSS Grid, container queries, display: contents, style queries, grid areas, et le sélecteur :has()
pour créer un layout adaptatif et dynamique. L’objectif est de laisser le contenu guider la mise en page, avec des transitions fluides entre 1, 2 et 3 colonnes, tout en optimisant l’espace et la lisibilité. L’article illustre aussi l’utilisation des query units (cqw
) pour des tailles de police fluides et des astuces comme text-wrap: pretty
pour équilibrer les titres. Une démonstration concrète de comment construire des layouts robustes et modulaires avec du CSS avancé.
Le tutoriel présente BunkerWeb, une solution open-source combinant reverse proxy et Web Application Firewall (WAF) pour sécuriser les services web. Elle intègre des fonctionnalités comme le filtrage ModSecurity avec les règles OWASP CRS, le renforcement TLS, et la limitation de requêtes. Le tutoriel guide à travers le déploiement de BunkerWeb via Docker Compose, depuis la préparation de l'environnement jusqu'à la configuration d'un service web. Il explique comment créer un fichier compose.yaml
, lancer les conteneurs, et configurer BunkerWeb via une interface web d'administration. Le tutoriel montre également comment déployer un service web interne, comme IT-Tools, derrière BunkerWeb, en détaillant les étapes de configuration pour sécuriser et publier le service. Enfin, il conclut en soulignant la facilité d'utilisation et les options avancées de BunkerWeb pour renforcer la sécurité des applications web.
L'article explique comment déployer un serveur Counter-Strike 2 sur Kubernetes en utilisant une image conteneur existante. Il guide à travers plusieurs étapes clés : la création d'un Namespace pour isoler les ressources, la configuration d'un Deployment basique, la mise en place d'un PersistentVolumeClaim pour le stockage persistant, et l'injection d'une ConfigMap pour la configuration du serveur. Il expose également les ports nécessaires et crée un Service de type NodePort pour rendre le serveur accessible publiquement. L'article suppose que le lecteur a déjà un cluster Kubernetes fonctionnel et utilise des commandes kubectl pour appliquer les configurations. Enfin, il propose des pistes pour aller plus loin, comme l'utilisation de l'outil k9s pour naviguer dans le cluster.
L'article explique comment compiler des programmes en C à l'aide de make. Il détaille les étapes essentielles : installer un compilateur C, gérer les dépendances, exécuter ./configure si nécessaire, et utiliser make pour construire le programme. L'autrice partage des astuces pour résoudre les erreurs de compilation, souvent liées aux dépendances, et explique comment utiliser des variables d'environnement comme CPPFLAGS et LDLIBS pour configurer le compilateur et l'éditeur de liens. L'article souligne également l'importance de comprendre les bases de la compilation C, même si on ne développe pas en C, et propose des conseils pour installer les binaires compilés.
Comment configurer Claude Desktop avec MCP pour accéder à vos fichiers : Guide complet – Idriss Code
Il s'agit d'un tutoriel pour connecter Claude Desktop au système de fichiers via le Model Context Protocol. L'auteur est sous Windows 10, (mais ça devrait marcher sous d'autres OS) Il faut avoir Claude Desktop dans une version récente, Node.js et un compte Claude Pro de préférence.
L'article explique comment connecter un conteneur Podman à Open vSwitch, d'abord en créant un namespace réseau avec ip netns add. Ensuite, ajoutez un port à Open vSwitch et configurez-le comme interface interne. Assignez cette interface au namespace créé et activez-la. Construisez une image de conteneur avec les outils réseau nécessaires et lancez le conteneur en utilisant l'option --network pour le connecter au namespace. Cela permet au conteneur de communiquer avec les machines virtuelles connectées à Open vSwitch, intégrant ainsi les conteneurs dans une topologie réseau virtualisée existante.
L'auteur a besoin de tester des rôles Ansible sur plusieurs versions de clones RHEL. Il a donc installé un multiboot de 4 systèmes : AlmaLinux 8 et 9, RockyLinux 8 et 9. Il détaille dans cet article comment il s'y est pris.
L'auteur décrit comment il a utilisé Claude pour développer une simple application météo : depuis le choix des technologies jusqu'à l'implémentation. Il donne quelques conseils sur le bon usage de l'IA pour l'aide au développement : importance du contexte, questionner les choix, etc.
Suite de https://css-tricks.com/a-better-api-for-the-resize-observer/ , l'article propose une refonte des API pour MutationObserver et IntersectionObserver afin de les rendre plus simples à utiliser. L'auteur montre comment simplifier l'utilisation de ces observateurs en utilisant des motifs de rappel et d'écouteurs d'événements. Pour MutationObserver, il explique comment observer les mutations du DOM et se déconnecter proprement en utilisant une méthode disconnect. Concernant IntersectionObserver, il détaille comment observer les changements d'intersection d'un élément avec un ancêtre ou une fenêtre de visualisation. Enfin, l'article mentionne une bibliothèque pratique, Splendid Labz, qui offre des utilitaires pour ces observateurs, facilitant leur intégration dans des projets web.