Poste de travail
Machine Linux de développement : VS Code, Git, SSH et administration du lab.
Physique · localUn laboratoire personnel pour concevoir et exploiter une infrastructure hybride : Linux, virtualisation KVM, Docker, GitLab CI/CD, réseau privé WireGuard et déploiements vers plusieurs environnements.
Dernière mise à jour : · Schémas simplifiés pour publication publique · Aucune donnée d'accès ni adresse privée exposée.
Le whiteboard distingue trois zones : le poste et l'hyperviseur locaux, le réseau domestique derrière la Freebox, et les ressources OVHcloud. Le diagramme ci-dessous présente les rôles sans divulguer la topologie d'adressage.
Un changement de HTML part du poste de travail, passe par GitLab et son registre de conteneurs, puis rejoint deux cibles de déploiement. Le pipeline comporte les étapes test, build, deploy-ovh et deploy-freebox.
Le contenu HTML est édité localement puis envoyé dans Git. Le commit devient l'unité de traçabilité.
GitLab exécute le pipeline et construit une image Docker Nginx contenant la version du site. L'image est publiée dans le Container Registry.
Les jobs de déploiement récupèrent l'image et recréent le conteneur applicatif sur OVH et sur le serveur Debian domestique.
Sur OVH, Caddy doit devenir le point d'entrée HTTPS permanent. Le CV Nginx reste remplaçable à chaque pipeline, sans recréer les certificats.
Le job de build utilise docker:dind : un service Docker dédié permet au client Docker exécuté dans le job GitLab CI de construire l’image Nginx du CV. Cette image est ensuite taguée avec l’identifiant court du commit et poussée vers le Container Registry privé.
Intérêt : builds reproductibles et traçables, séparation construction/déploiement et même artefact livré sur plusieurs cibles. Point de vigilance : DinD nécessite une configuration de sécurité adaptée du runner et du daemon Docker.
Le VPS rejoint les réseaux du homelab via un tunnel chiffré. Les routes sont limitées aux sous-réseaux utiles : le trafic Internet ordinaire n'a pas besoin de traverser la maison.
Un serveur peut joindre une adresse IP tout en échouant à résoudre un nom. Le lab a permis d'identifier un DNS poussé par WireGuard qui perturbait la résolution publique du VPS.
Les VM utilisent un réseau virtuel distinct du LAN. L'accès depuis le VPS exige une route vers le réseau KVM et des règles de filtrage ciblées, plutôt qu'une ouverture générale.
Sur les deux cibles, Caddy reçoit les connexions HTTPS publiques et les transmet à Nginx sur le réseau Docker privé. Les certificats Let’s Encrypt sont conservés dans des volumes persistants.
Architecture opérationnelle sur les deux cibles : Caddy expose HTTPS, reverse-proxy vers Nginx sur cv-web et conserve ses certificats dans des volumes persistants.
Une architecture réellement exploitée : postes et hôtes physiques à domicile, virtualisation KVM, machines hébergées par la Freebox et ressources distantes OVHcloud. Les références CPU, RAM et stockage détaillées ne sont pas publiées ici.
Machine Linux de développement : VS Code, Git, SSH et administration du lab.
Physique · localHôte adri3n : KVM/libvirt, réseau virtuel NAT et VM GitLab avec Container Registry.
Physique + VMRouteur Freebox avec serveur WireGuard ; hôtes Debian et Alpine sur l’infrastructure domestique.
Réseau + hôtes locauxVPS Debian distant : Docker, Nginx pour le CV, tunnel WireGuard et reverse proxy Caddy HTTPS actif.
Hébergé · actifPOC déjà réalisé sur OVH Public Cloud ; environnement utilisé pour expérimenter l’infrastructure cloud et préparer la reproductibilité avec Terraform et Ansible.
POC réalisé · évolutions envisagéesLecture rapide du whiteboard : ce qui fonctionne est séparé des travaux prévus. Les adresses privées et les identifiants d'accès ne sont pas publiés.
INTERNET
|
+--> VPS OVH (Debian)
| |-- Docker : project1 / Nginx --> CV HTTPS public via Caddy
| |-- reseau Docker prive : cv-web [actif]
| `-- WireGuard [actif]
| |
| Freebox [route vers KVM]
| |
| Hyperviseur Debian / KVM
| `-- VM GitLab + Container Registry
|
`--> GitLab CI/CD : test -> build -> deploy OVH + Freebox
LAN : serveur Debian (Nginx + Caddy HTTPS) + Alpine (lab)EVOLUTIONS ENVISAGEES
INTERNET
|
`--> HTTPS / Let's Encrypt
|
Caddy (proxy permanent)
|
cv-web (reseau Docker prive)
|
Nginx / CV (image CI/CD)
LAB + OVH PUBLIC CLOUD
|-- Terraform : provisionnement reproductible
|-- Ansible : configuration idempotente
|-- Vault : secrets (a etudier)
|-- Jenkins : automatisation de scenarios
`-- PRA : DEJA TESTE -> formalisation / automatisation
Ansible Vault : chiffrement des variables de playbooksDebian, services systemd, réseau, SSH, DNS, analyse des journaux et diagnostic en ligne de commande.
KVM/libvirt, réseaux NAT, routage, pare-feu, WireGuard et segmentation des flux.
Git, GitLab CI/CD, Docker, registre d'images, déploiements automatisés et reverse proxy.
Diagnostic progressif, hypothèses vérifiées, captures réseau, tests de connectivité et analyse de la cause racine.
Persistance des configurations, redémarrages contrôlés, séparation des responsabilités et documentation.
PRA testé dans le laboratoire ; Terraform, Ansible et Vault intégrés à une feuille de route explicite, sans confondre projets et réalisations.
Une même image Docker, construite par GitLab CI/CD, est déployée sur deux infrastructures indépendantes :
Deux environnements, deux reverse proxies Caddy, deux certificats TLS publics et un même pipeline de livraison automatisée.
Clin d’œil à ma règle de conduite ITIL : KISS — Keep It Simple, Stupid. Une architecture compréhensible, des changements mesurés, un test à la fois et pas d’usine à gaz. « Mon impatience est un moteur. Ma méthode est le volant. »