Aller au contenu

Docker · CI/CD · Auto-hébergé

Comment ce site est construit

J’administre des serveurs, j’automatise des déploiements et je sécurise des infrastructures : ce site est fait avec les mêmes méthodes que chez mes clients. Voici ce qu’il y a sous le capot, de la requête de votre navigateur jusqu’à la sauvegarde de la nuit.

Du navigateur au conteneur

Trois étages, chacun avec un seul rôle. Rien d’exotique : des briques standard, bien configurées. Et pas de base de données à maintenir ni à sécuriser, puisque le site n’en a pas besoin.

  1. Frontal

    Traefik

    Reçoit toutes les requêtes, sert le site uniquement en HTTPS et redirige www vers le domaine principal. Les certificats Let’s Encrypt se renouvellent seuls.

    Certificats renouvelés sans intervention

  2. Application

    Conteneur Apache + PHP

    Une image Docker partie de la configuration de production officielle de PHP. Le serveur web ne peut pas modifier son propre code : il n’a le droit d’écrire que dans le dossier des demandes.

    Conteneur sans privilèges supplémentaires

  3. Données

    Un volume, sauvegardé chaque nuit

    Les demandes du formulaire sont stockées hors du dossier public. Chaque nuit, celles de plus de 3 ans et les envois suspects de plus de 30 jours sont supprimés, puis le dossier est archivé.

    30 archives quotidiennes conservées

Une mise en production sans stress

Ce que je mets en place chez mes clients, appliqué à mon propre site : chaque modification est testée, déployée en une commande et réversible.

Des tests à chaque modification

Chaque modification envoyée sur la branche principale déclenche la CI : elle construit l’image Docker du site, la démarre et lance plus de 200 vérifications : pages, redirections, en-têtes de sécurité, protections du formulaire, puis un vrai navigateur qui teste le menu mobile, l’affichage sur téléphone et l’envoi d’une demande.

Un déploiement en une commande

Un script récupère la dernière version, reconstruit l’image et attend que le conteneur se déclare en bonne santé. S’il ne l’est pas au bout d’une minute, l’image précédente est remise en service automatiquement.

Toute la configuration dans Git

Image Docker, configuration d’Apache et de PHP, règles de routage, scripts de déploiement et de sauvegarde : tout est versionné, et chaque changement est daté, expliqué et réversible.

Une version toujours traçable

Le numéro de version et la date du déploiement sont affichés en bas de chaque page : on sait à tout moment quel code tourne en production.

En ce moment : version 993dc11, déployée le 31/10/2026.

Protégé par défaut

Un site vitrine est une cible comme une autre. Les protections sont en place même si personne ne les voit.

HTTPS obligatoire

Connexions chiffrées uniquement, et le navigateur retient de ne jamais revenir en HTTP (HSTS).

Aucune ressource tierce

Une politique de sécurité stricte (CSP) interdit tout script, style ou police venant d’un autre site, ainsi que le code injecté dans la page. Pas de Google Fonts ni de Google Maps : la carte du Calvados est un dessin intégré.

Formulaire protégé

Jeton anti-falsification (CSRF), champ piège pour les robots, délai minimal de remplissage et limite de 5 envois par heure et par adresse IP.

Données minimisées

Les adresses IP ne sont jamais stockées en clair, et les demandes reçues sont supprimées automatiquement au bout de 3 ans.

Serveur discret

Versions des logiciels masquées, fichiers internes inaccessibles, et le site refuse d’être affiché dans un cadre sur un autre domaine (protection contre le clickjacking).

  • Debian
  • Docker
  • Traefik
  • Let’s Encrypt
  • Apache
  • PHP
  • Tailwind CSS
  • GitHub Actions

Léger, rapide et sans traceur

Pas de framework JavaScript, pas de publicité, pas de mesure d’audience tierce : la page arrive vite, même avec une connexion mobile moyenne.

< 150 Ko
pour l’accueil complet (texte, styles, script et polices), compressé
0 cookie
sur cette page : seul le formulaire de contact en pose un, pour sa protection anti-falsification
0 traceur
ni Google Analytics, ni pixel publicitaire : pas besoin de bandeau cookies
1 an
de cache pour les styles, scripts et polices : une visite suivante ne retélécharge presque rien

Accessible aussi : navigation complète au clavier, contrastes vérifiés, animations coupées si votre système le demande, et un site qui reste lisible sans JavaScript.

Les mêmes méthodes pour votre infrastructure

Tests automatiques, déploiements réversibles, sauvegardes, durcissement, supervision : c’est ce que je mets en place chez mes clients, à l’échelle de leur projet.