Recherche Avancée

Explorez l'ensemble des projets, notes techniques, documentation et expériences du CV.

Résultats de recherche 11

2026-11-02

Passionné et autonome, je conçois et déploie des applications web performantes et des infrastructures auto-hébergées sécurisées. Fort d'une solide expérience d'... … 2004–2026 : Prismaflex International — Agent de Production Impression & Référent Processus Gestion de systèmes d'impression numériques industriels en flux t...

### Contexte & Enjeux Diffuser publiquement en clair des coordonnées personnelles (numéro de téléphone, adresse e-mail) sur un site web expose au moissonnage automatique (*scraping*) par des robots spammers. Jusqu'alors, l'accès à ces informations exigeait une connexion préalable à l'Espace Pro. Cependant, cette contrainte alourdissait le parcours d'un recruteur ou d'un contact arrivant depuis un CV papier, un PDF ou un QR Code via le sous-domaine dédié `cv.fredt.eu`. L'objectif est d'offrir un accès immédiat aux coordonnées pour tout visiteur humain, sans imposer de CAPTCHA visuel ou de mot de passe. --- ### Actions & Choix Techniques * **Vérification d'Humanité en Arrière-plan (Human Check / Proof-of-Work) :** - Mise en place d'un défi cryptographique léger basé sur la preuve de travail SHA-256 (via le protocole open-source *Cap* / `trilbymedia/cap-php`). - Déclenchement au clic sur un simple bouton ("*Pour voir les coordonnées, je ne suis pas un robot*"). * **Souveraineté & Respect du RGPD :** - Aucun appel vers un service tiers externe (pas de dépendance à Google reCAPTCHA ou Cloudflare Turnstile). - Validation du défi entièrement exécutée entre le navigateur du client et le serveur PHP du portfolio. * **Persistance en Session :** - Une fois la preuve d'humanité validée par le serveur, un jeton sécurisé est conservé en session HTTP. Les coordonnées complètes sont alors affichées sans réinterroger l'utilisateur durant sa navigation. --- ### Résultats & Bénéfices * **Expérience Recruteur Fluide :** Un simple clic suffit pour afficher instantanément l'e-mail et le téléphone, sans formulaire de connexion ni puzzle visuel. * **Protection Efficace contre le Spam :** Blocage des robots d'exploration automatique incapable d'exécuter la preuve de travail JavaScript. * **Architecture Souveraine & Légère :** Composant PHP pur intégré sans aucun build Node.js en production, parfaitement compatible avec l'hébergement mutualisé OVH.

Notes Veille & Architecture

Hébergement de Code & Souveraineté

2026-07-21

### 1. Le paradoxe de GitHub dans le recrutement IT Pour beaucoup de recruteurs informatiques, la présence d'un lien GitHub sur un CV est un réflexe incontournable. C'est considéré comme le "portfolio du développeur". Pourtant, cette dépendance quasi exclusive pose une vraie contradiction pour qui se soucie de souveraineté numérique : * **Centralisation extrême :** GitHub (propriété de Microsoft) héberge une immense majorité du code open-source mondial. Cette centralisation fragilise la diversité du web et pose des questions éthiques (notamment l'entraînement de modèles d'IA sur du code sans consentement explicite). * **Dépendance aux politiques de tiers :** Fermetures de comptes arbitraires, pannes de service globales, ou modifications unilatérales des conditions d'utilisation rappellent que déléguer son patrimoine logiciel à un acteur unique comporte des risques opérationnels réels. Plutôt que d'alimenter un profil public GitHub peu fourni ou "par défaut" qui ne reflète pas ma véritable expertise, je préfère aborder ce sujet sous l'angle de l'ingénierie système et de la souveraineté. ### 2. L'alternative d'infrastructure allemande : Hetzner Cloud Pour héberger son infrastructure de manière autonome et performante tout en respectant un cadre législatif européen strict (RGPD), le choix du fournisseur cloud est déterminant. J'ai récemment étudié de près la solution allemande **Hetzner Online**. Réputé auprès des administrateurs système et des professionnels de l'infrastructure, cet acteur se démarque par : * **Une souveraineté européenne garantie :** Des centres de données localisés principalement en Allemagne et en Finlande, à l'abri des lois extraterritoriales comme le Cloud Act américain. * **Un rapport performance/prix exceptionnel :** Des serveurs dédiés et des VPS à mémoire ECC et disques NVMe de niveau professionnel pour un coût bien inférieur aux hyperscalers traditionnels (AWS, GCP ou Azure). * **Des API de provisionnement robustes :** Une intégration parfaite avec des outils d'Infrastructure as Code (IaC) comme Terraform ou Ansible, facilitant le déploiement automatisé et reproductible de services. ### 3. Comparatif des moteurs Git self-hosted Dans l'optique d'installer ma propre plateforme d'hébergement et de révision de code, plusieurs alternatives s'offrent à moi pour remplacer GitHub au quotidien : | Solution | Avantages | Inconvénients / Limites | |----------|-----------|-------------------------| | **GitLab CE** | Extrêmement complet, CI/CD native ultra-puissante, gestion de projet très mature. | Très lourd en ressources (consommation RAM élevée), surdimensionné pour des projets personnels. | | **Gitea / Forgejo** | Incroyablement léger (écrit en Go), interface calquée sur GitHub, s'installe en quelques secondes via Docker. | CI/CD intégrée (via Runner) un peu plus récente et moins mature que celle de GitLab. | | **Git simple (SSH)** | Sécurité maximale, aucune dépendance web, ultra-léger. | Pas d'interface de révision graphique (pull requests), pas de gestion collaborative visuelle. | ### 4. Ma feuille de route : Déploiement de dépôts self-hosted Plutôt que d'avoir un compte GitHub hébergeant mon code de manière passive, j'ai initié un projet d'infrastructure complet qui s'intégrera directement dans mes réalisations futures. Ma feuille de route se décompose ainsi : 1. **Provisionnement de l'infrastructure :** Déploiement d'une nouvelle instance VPS chez Hetzner sécurisée selon les principes présentés dans ma note sur le [Durcissement de serveur](/notes/securite). 2. **Orchestration de Forgejo :** Installation de **Forgejo** (le fork communautaire et totalement libre de Gitea) via Docker Compose, routé de manière sécurisée par notre reverse proxy Traefik avec gestion automatique du certificat Let's Encrypt. 3. **CI/CD Autonome :** Configuration d'un agent Forgejo Runner pour automatiser les tests et le déploiement continu des futurs micro-projets directement sur le serveur sans passer par des API américaines tierces. Cette démarche prouve qu'un développeur ne se résume pas à ses "commits" ou sa "courbe de contributions" sur GitHub, mais à sa capacité à concevoir, sécuriser et maintenir un écosystème logiciel de bout en bout de manière souveraine.

### 1. Pourquoi se réapproprier ses données ? À l'ère du cloud omniprésent, déléguer le stockage de nos contacts, de nos agendas et de nos écrits les plus personnels à des tiers géants de la Silicon Valley pose un double problème : un manque flagrant de confidentialité (exploitation des données comportementales) et une perte de souveraineté opérationnelle. L'auto-hébergement s'impose comme une réponse éthique et une démarche technique engagée. La souveraineté numérique n'est pas qu'un mot à la mode, c'est la capacité de garder le contrôle de ses outils de travail et de ses données personnelles face aux pannes géantes et aux modifications arbitraires de conditions tarifaires. ### 2. L'approche pragmatique de l'administration système Mais s'auto-héberger à la légère est un danger plus grand encore. Sans compétences rigoureuses, un serveur mal configuré se transforme en passoire de sécurité. La méthodologie que j'applique repose sur trois piliers fondamentaux : * **L'automatisation :** Rien ne doit être configuré manuellement à répétition. Tout doit passer par des scripts testés ou des orchestrations déclaratives (Docker Compose). * **Le cloisonnement :** Chaque service tourne dans son conteneur isolé, sans privilèges root sur la machine hôte. * **La surveillance et la résilience :** Avoir des journaux de logs centralisés, des alertes de sécurité en temps réel et des sauvegardes testées régulièrement. ### 3. Transition d'un profil informatique polyvalent En mettant en œuvre cette infrastructure, j'ai pu lier mes compétences historiques d'analyste développeur à des pratiques de SysAdmin d'aujourd'hui. L'auto-hébergement est le bac à sable idéal pour valider les concepts d'infrastructure et l'utilisation d'outils modernes, consolidant ainsi ma capacité d'apprentissage autonome.

2026-07-21

### Analyse Caddy est formidable pour sa simplicité, mais **Traefik** se démarque par sa gestion dynamique d'API via les labels Docker. En déclarant la configuration du routage directement dans le fichier `docker-compose.yml` de chaque service, le reverse proxy s'auto-configure au démarrage sans redémarrage global de l'infrastructure. Cela permet une modularité incomparable : ajouter un nouveau service ou mettre à jour un certificat SSL n'impacte jamais les autres conteneurs en cours de fonctionnement sur la machine.

Génération locale et intégration automatisée en CI/CD de QR codes vectoriels pour le CV imprimable avec `qrencode`. ## Contexte & Enjeux Lors de la distribution d'un CV sous format imprimé ou PDF, il est indispensable de permettre aux recruteurs et interlocuteurs techniques d'accéder instantanément à la version en ligne interactive du site, tout en mesurant la provenance du trafic grâce à des marqueurs d'analyse de fréquentation (`utm_source=qrcode`). Pour garantir un rendu graphique irréprochable et éviter toute dépendance vers des API externes web lors du build, le projet génère un fichier vectoriel SVG de manière totalement autonome en local et dans la chaîne de déploiement continu. ## Actions Réalisées ### 1. Script d'automatisation Bash (`scripts/generate-qrcode-cv.sh`) Un script shell complet et paramétrable a été développé au sein du répertoire `scripts/`. Il encapsule l'utilitaire `qrencode` pour produire des fichiers vectoriels SVG légers et précis. #### Fonctionnalités principales : - **Détection des prérequis** : Vérification de la présence de `qrencode`. En mode interactif, le script propose son installation automatique (`sudo apt-get install -y qrencode`). - **Mode Interactif avec personnalisation** : L'utilisateur peut valider ou ajuster à la volée l'URL cible, le chemin de sortie, la marge et le niveau de correction d'erreur. - **Mode Autonome / CI/CD (`-y` / `--non-interactive`)** : Exécution sans invite de commande pour intégration transparente dans les pipelines d'intégration continue et scripts de déploiement. #### Exemples d'utilisation : ```bash # Exécution interactive standard ./scripts/generate-qrcode-cv.sh # Exécution autonome CI/CD avec valeurs par défaut ./scripts/generate-qrcode-cv.sh --non-interactive # Exécution autonome avec paramètres sur-mesure ./scripts/generate-qrcode-cv.sh -y \ --url "https://cv.fredt.eu?utm_source=print_event" \ --output "src/www/img/qrcode-cv.svg" \ --type SVG \ --margin 4 \ --error-level H ``` ### 2. Automatisation CI/CD & Déploiement Le script s'intègre naturellement dans les étapes de build d'un pipeline (GitLab CI, GitHub Actions ou scripts d'environnement de staging) avant le déploiement des assets web : ```yaml # Exemple d'étape GitHub Actions / GitLab CI generate-assets: stage: build script: - sudo apt-get update && sudo apt-get install -y qrencode - ./scripts/generate-qrcode-cv.sh --ci ``` ### 3. Intégration sur les pages du CV (`index.php` & `cv-edit.php`) Le fichier SVG généré (`src/www/img/qrcode-cv.svg`) est directement intégré dans le bloc d'en-tête du CV. Grâce à la classe utilitaire Bootstrap `d-none d-print-block` et aux règles CSS spécifiques d'impression (`@media print`), le QR Code reste invisible sur écran et s'affiche élégamment sur la version imprimée A4 ou l'export PDF. ### 4. Journalisation Système & Tracking Traffic (`traffic.log`) Un mécanisme global a été intégré au bootstrap de l'application (`src/bootstrap.php`). Lorsqu'un visiteur accède au site via le QR code (ou toute URL contenant un paramètre `utm_source`), l'événement est capturé et journalisé en JSON Lines dans `logs/traffic.log` avec le canal `traffic` et l'événement `UTM_SOURCE_DETECTED` (incluant l'URI demandée, l'IP, le référant et le User-Agent). ## Résultats & Bénéfices - **Indépendance totale** : Aucune requête vers des services tiers générateurs de QR codes (respect du RGPD et résilience). - **Qualité Vectorielle (SVG)** : Rendu parfait quelle que soit la résolution d'impression. - **Tracking Précis** : Mesure de l'impact des supports papier/PDF via le paramètre UTM dédié. - **Industrialisation** : Processus reproductible de bout en bout en local comme en CI/CD.

2026-04-11

### Contexte Afin de garantir la totale souveraineté de mes données numériques (contacts, agendas, mots de passe, documents et photos personnelles), j'ai conçu et déployé un serveur Linux auto-hébergé. L'objectif était de me défaire totalement des solutions cloud des géants de la tech, tout en maintenant le même niveau de disponibilité et de sécurité. ### Actions réalisées * **Conteneurisation :** Déploiement modulaire de services via **Docker Compose** pour un isolement total et des mises à jour simplifiées. * **Routage & Sécurité :** Configuration d'un reverse proxy **Traefik** pour l'obtention automatique de certificats SSL Let's Encrypt et le routage HTTPS. * **Sauvegardes automatisées :** Développement de scripts **Bash** planifiés pour la compression, le chiffrement et le transfert automatique des sauvegardes vers un stockage distant sécurisé. * **Intelligence Artificielle :** Déploiement et auto-hébergement d'instances de modèles de langage (LLM) locaux pour assister mes tâches quotidiennes en toute confidentialité. ### Résultats chiffrés * **100%** de souveraineté des données personnelles acquise. * Sauvegardes quotidiennes externalisées avec succès (RTO de moins de 30 minutes). * Disponibilité de l'infrastructure constatée à **99.9%** sur l'année écoulée.

### Contexte Face au volume massif de documentations techniques accumulées en 30 ans de pratique (fichiers d'aide, livres, veille web, extraits de code) et aux risquesdes formats propriétaires (Word, Access, OneNote), le défi majeur résidait dans la pérennisation, l'indexation et l'interrogation rapide de ce savoir sans dépendre de services cloud tiers. ### Actions réalisées * **Migration vers des formats souverains & ouverts :** - Structuration progressive des mémos et documentations vers le format ouvert **Markdown** (via Joplin et moteurs Flat-File) afin d'en garantir la pérennité indépendamment de l'OS ou des logiciels. - Catégorisation méthodique par étiquettes, arborescences sémantiques et fiches synthétiques réutilisables. * **Déploiement d'une station IA locale dédiée (2025-2026) :** - Assemblage et configuration d'une station de calcul haute performance (RTX 5080, Ryzen 7, 64 GB RAM) dédiée au traitement de données en local. - Intégration de modèles de langage (LLM locaux) permettant d'interroger, résumer, débugger et nettoyer automatiquement les gros volumes de documentations accumulées, en totale confidentialité. * **Scraping, résumé et nettoyage automatisé :** - Élaboration de scripts de veille et d'extraction de contenu pour synthétiser les meilleures ressources techniques et éliminer la documentation obsolète. ### Résultats chiffrés * **Indépendance numérique à 100% :** Consultation et recherche instantanées dans 30 ans de base de connaissances sans aucune dépendance envers un cloud propriétaire. * **Productivité de recherche démultipliée :** Temps de recherche de solutions techniques ou d'extraits de code divisé par **5** grâce à l'assistance IA locale et à l'indexation plein texte. * **Souveraineté des données :** Zéro fuite de données personnelles ou de code source vers des API tierces lors des requêtes IA.

2026-03-30

### Contexte Pour présenter mes compétences sans surcouche et surcoût de maintenance de framework lourd, j'ai conçu et développé ce portfolio sur-mesure. Le besoin exigeait une application rapide, sécurisée, accessible (WCAG) et facilement déployable sur un hébergement mutualisé standard. ### Actions réalisées * **Architecture PHP MVC :** Conception d'une structure logicielle modulaire en PHP 8 avec autoloader Composer, séparation nette des responsabilités (`AuthManager`, `SessionManager`, `Fail2banManager`, `Layout`) et routage explicite. * **Moteur Hybride Flat-File & SQLite :** - **Contenu éditorial (Projets, Notes, Docs) :** Stockage en Markdown avec métadonnées Frontmatter YAML, indexé en temps réel dans un fichier JSON léger (`articles_index.json`). - **Authentification & Audit :** Bases SQLite embarquées et découplées (`auth.db` pour le contrôle d'accès RBAC et `fail2ban.db` pour le suivi des événements de sécurité). * **Sécurité en profondeur :** Protection anti-brute force Fail2ban applicative (statuts avertissement/blocage IP sur 24h), Content Security Policy (CSP) stricte sans aucun script ni style inline, et gestion des sessions sans bloquer d'inodes. * **Accessibilité & UX :** Conformité WCAG 2.1 Level AA (liens d'évitement `.skip-link`, gestion `:focus-visible`, sémantique HTML5 complète, support du mode sombre et gestion A4 à l'impression). * **Moteur de recherche intégré :** Recherche plein texte indexée inter-sections (Markdown + CV) respectant les permissions d'accès aux données personnelles. ### Résultats chiffrés * **Performance d'affichage :** Temps de rendu serveur `< 15 ms` et score Google Lighthouse de **100/100** sur la performance et la sécurité. * **Zéro dépendance lourde :** Empreinte mémoire minime (`< 2 Mo` par requête) tournant nativement sur PHP 8.x sans base de données externe complexe. * **Couverture de tests :** Suite de 12 modules de tests unitaires CLI automatisés validant la sécurité, la gestion des sessions et la cohérence de l'index à chaque modification.

Projects Développement Web Client

Sites Web WordPress

2018-09-10

### Contexte Accompagnement de petites entreprises, artisans locaux et associations de pêche (AAPPMA) dans l'établissement de leur présence en ligne professionnelle. ### Actions réalisées Création de thèmes personnalisés, écriture de plugins PHP sur-mesure pour étendre les fonctionnalités de base, sécurisation de l'accès administrateur et de la base de données. ### Résultats Plus de **10 sites livrés clés en main**, sécurisés, avec une interface de gestion facile d'accès permettant une autonomie complète du client.

Projects Application Web Réelle

Absolu-peche.fr

2018-05-15

### Contexte Conception, développement et maintenance à long terme d'un site communautaire et réseau social pour passionnés de pêche. Ce projet m'a permis de me confronter à des problématiques de montée en charge réelles, de gestion de bases de données volumineuses et de conformité réglementaire. ### Actions réalisées * **Architecture :** Développement sous le framework PHP **Yii**, structuré selon le modèle MVC (Model-View-Controller) assurant la maintenabilité de l'application. * **Optimisation de base de données :** Analyse régulière des requêtes SQL et optimisation des index MySQL pour maintenir un temps de réponse rapide malgré le volume d'enregistrements. * **Analyse de logs :** Mise en place de scripts d'analyse de logs d'accès Apache pour détecter et bloquer les requêtes malveillantes, optimiser le crawl des moteurs de recherche et assurer la conformité RGPD. * **Sécurité applicative :** Protection robuste contre les injections SQL, failles XSS et CSRF intégrée nativement. ### Résultats chiffrés * Audience au pic : plus de **50 000 visites par mois** de manière fluide. * Bases de données de plus de **50 000 enregistrements** maintenue sans dégradation de performance. * Temps de chargement moyen divisé par **2** grâce aux index de requêtes et à l'analyse de cache PHP. ---