Résultats de recherche 2
Réinitialiser les filtresGé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.
### 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.