À venir
Bourse
Aller plus loin que le graphique actuel : plus de valeurs, des commentaires, un suivi dans le temps.
Projets · Ce site
Un site statique écrit avec Astro, versionné sur GitHub, publié automatiquement sur mon serveur à chaque modification. Le tout monté en une journée, le 1er novembre 2026. Voici comment les pièces s'emboîtent.
git push à la mise en ligneSchéma 1
Un seul serveur répond à trois adresses. Choisissez une requête pour suivre son chemin, du navigateur jusqu'au bon conteneur.
Schéma 2
Je ne copie jamais de fichiers à la main. Chaque modification poussée sur la branche main déclenche une chaîne automatique, toujours la même.
Mon MacGitHubMon serveur
Durées mesurées sur les déploiements du jour (entre 18 et 23 secondes au total). Si une étape échoue, le site en ligne reste sur la version précédente.
Schéma 3
Le tableau des marchés (actions, indices et OAT 10 ans) est alimenté par un petit service maison. Il interroge Yahoo Finance et CNBC à rythme fixe et garde le résultat en mémoire. Les visiteurs lisent cette copie, si bien que le nombre d'appels aux sources ne dépend pas du trafic.
938 appels par heure aux sources (15 cours par minute, plus 19 appels d’historique toutes les 30 minutes), qu'il y ait un visiteur ou mille. Les visites montrées ici sont un trafic d'exemple. Les données sont différées et données à titre indicatif.
Les briques
| Rôle | Outil | Pourquoi ce choix |
|---|---|---|
| Nom de domaine et DNS | Hostinger | Le domaine y était déjà. Trois noms pointent vers le serveur : le domaine nu, www et le sous-domaine des projets sensibles. |
| Serveur | VPS Hostinger, Ubuntu 24.04 | Un serveur à moi, qui héberge aussi les projets sensibles et mon laboratoire IA. |
| Conteneurs | Docker | Chaque service vit dans sa boîte et se redémarre sans toucher aux autres. |
| Aiguillage et HTTPS | Traefik v3 + Let's Encrypt | Il lit le nom de domaine et le chemin de chaque requête, et renouvelle seul les certificats. |
| Site | Astro 7 | Produit du HTML statique, rapide et sans base de données. Le contenu tient dans un seul fichier. |
| Serveur web | nginx | Sert les fichiers produits par Astro, en lecture seule. |
| Graphique | uPlot | Une bibliothèque de graphiques très légère (une cinquantaine de Ko). |
| Service marchés | Node.js 22 | Une centaine de lignes, sans aucune dépendance à installer. |
| Accès privé | WordPress + MySQL | L'ancien site WordPress, déplacé sur son sous-domaine : une partie dédiée à des projets sensibles, non visibles par le grand public. |
| Code et historique | Git + GitHub | Chaque modification est tracée et peut être annulée. |
| Publication | GitHub Actions + rsync sur SSH | Construit le site et n'envoie que les fichiers modifiés. |
| Portrait | Script Node.js + sharp | Le portrait est calculé à partir de ma photo, puis recoloré. |
| Binôme | Claude Code | Écriture du code, configuration du serveur et des déploiements, en dialogue. |
Journal du 1er novembre
Le domaine bertrand-didier.tech affichait un site WordPress, déjà installé dans un conteneur sur mon VPS Hostinger.
Première idée : publier le site depuis Git sur l'hébergement web Hostinger. Mon offre étant de type « AI Builder », elle n'accepte pas de code personnel, ce que le support a confirmé.
Le WordPress déménage sur son propre sous-domaine et accueille les projets sensibles, non visibles par le grand public ; le domaine principal accueille le nouveau site. Traefik aiguille les deux.
Création du dépôt, du site Astro et du workflow GitHub Actions. Un compte dédié sur le serveur reçoit les fichiers, avec une clé SSH qui ne sert qu'à ça.
Le service Node.js met les cours en cache et le graphique uPlot affiche une année en base 100, avec l'OAT 10 ans sur l'axe de droite.
Un bandeau avec la Philharmonie de nuit, plusieurs essais de portrait, puis une refonte éditoriale claire : grande typographie, accent brique, et un portrait recoloré qui reste fidèle à la photo.
Avec Claude
Tout le site a été construit en dialogue avec Claude Code, l’assistant de développement d’Anthropic. Il écrit, configure et vérifie ; je fixe le cap, je relis et je valide.
Chiffres relevés dans le dépôt Git et l’historique GitHub Actions à la sortie de la version 1.1.
Sécurité
Aucun mot de passe ne circule dans la chaîne de publication, et aucun secret n'est écrit dans le code.
Traefik obtient et renouvelle automatiquement les certificats Let's Encrypt pour les trois adresses.
Le compte de déploiement n'a pas de mot de passe. Sa clé est restreinte et ne donne accès qu'au dossier du site.
GitHub vérifie l'empreinte du serveur avant chaque envoi : une machine qui se ferait passer pour lui serait refusée.
La clé de déploiement est stockée dans les secrets chiffrés de GitHub, jamais dans le dépôt.
nginx ne peut que lire les fichiers du site. Le service marchés n'est joignable que sur le chemin /api/.
Le site ne publie ni adresse e-mail ni téléphone : le contact passe par LinkedIn.
Et ensuite
À venir
Aller plus loin que le graphique actuel : plus de valeurs, des commentaires, un suivi dans le temps.
En réflexion
Ce qu’un golfeur aimerait avoir, avec un coach IA discret.
Chantier technique
Aujourd'hui mis à jour à la main sur le serveur. Il pourra suivre la même chaîne automatique que le site.