Frontend
Astro, Starlight, starlight-blog, Markdown/MDX, CSS
Ce site n’a pas été créé avec un outil « clé en main » comme WordPress ou Wix. Je l’ai construit à partir de briques open source, je l’héberge dans le cloud et il se met à jour automatiquement à chaque nouvelle publication.
Cette fiche présente les technologies utilisées, sans entrer dans tous les détails : l’objectif est d’avoir une vue d’ensemble et de savoir quelles compétences il faut pour travailler sur un projet comme celui-ci.
Du texte que j’écris jusqu’à la page que tu lis, voici le chemin parcouru :
master.Frontend
Astro, Starlight, starlight-blog, Markdown/MDX, CSS
Hébergement
Docker, nginx, Google Cloud Run, Artifact Registry
CI/CD
Git, GitLab, GitLab CI, Kaniko, gcloud
Outillage
Node.js, npm, TypeScript
Astro est un framework web orienté contenu. Ici, il est utilisé comme générateur de site statique : au moment du build, il transforme les fichiers de contenu en pages HTML prêtes à être servies. Aucun code ne tourne côté serveur quand un visiteur consulte une page, ce qui rend le site rapide, léger et simple à héberger.
Astro prend aussi en charge :
Starlight est le thème de documentation officiel d’Astro. Il fournit la structure du site : menu latéral généré à partir des dossiers, recherche intégrée, mode sombre, navigation adaptée au mobile et composants prêts à l’emploi (cartes, encadrés, étapes…).
Le plugin starlight-blog ajoute la partie blog : liste des articles, images de couverture et tags.
Les pages sont écrites en Markdown, un format texte très simple, ou en MDX, qui permet d’y insérer des composants. C’est ce qui donne les cartes et les encadrés de mes fiches de révision.
Le contenu est organisé en collections de contenu : chaque page commence par un en-tête (le frontmatter) dont les champs sont validés par un schéma. Une page sans titre, par exemple, fait échouer le build au lieu d’être publiée cassée.
---title: Le développement de ce sitedescription: Les technologies derrière ce site…date: 2026-09-28tags: [informatique, développement web]---Le thème est personnalisé avec une feuille de CSS : frise chronologique, grille de trois cartes, bloc « à retenir » des fiches de révision… Chaque style est pensé pour fonctionner en mode clair et en mode sombre, et pour s’adapter aux petits écrans.
Comme le site est statique, il n’y a ni serveur applicatif ni base de données. Le travail côté serveur consiste à servir des fichiers de façon fiable, rapide et automatisée.
Docker permet d’empaqueter une application et tout ce dont elle a besoin dans une image, qui fonctionnera de la même façon partout.
Le Dockerfile du site utilise une construction en plusieurs étapes (multi-stage build) :
# --- Étape de build ---FROM node:22-alpine AS buildRUN npm ciRUN npm run build
# --- Étape de service ---FROM nginx:1.27-alpine AS runtimeCOPY --from=build /app/dist /usr/share/nginx/htmlnginx est le serveur web qui répond aux visiteurs. Sa configuration gère :
Cloud Run est un service de Google Cloud qui exécute des conteneurs sans avoir à gérer de serveur : il démarre et arrête les instances selon le trafic. Les images Docker du site sont stockées dans Artifact Registry, le registre d’images de Google Cloud, dans la région europe-west1.
CI/CD signifie Continuous Integration / Continuous Deployment (intégration et déploiement continus) : chaque modification validée est construite et mise en ligne automatiquement, sans manipulation manuelle.
Le code est versionné avec Git et hébergé sur GitLab. Je ne modifie jamais directement la branche principale master :
feat/..., fix/...) ;master déclenche la mise en ligne.Le pipeline est décrit dans le fichier .gitlab-ci.yml (documentation GitLab CI/CD). Il ne se lance que sur la branche principale, et comporte deux étapes :
stages: - build - deploy
workflow: rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
build: stage: build image: gcr.io/kaniko-project/executor:v1.23.2-debug # construit l'image Docker et la pousse dans Artifact Registry
deploy: stage: deploy image: google/cloud-sdk:slim # gcloud run deploy : déploie la nouvelle image sur Cloud Run1. Build
Kaniko construit l’image Docker sans démon Docker, ce qui est adapté à un environnement de CI. L’image est taguée avec l’identifiant du commit, pour savoir exactement quelle version tourne en production.
2. Deploy
L’outil en ligne de commande gcloud déploie cette image sur Cloud Run. Le pipeline s’authentifie auprès de Google Cloud avec un compte de service, dont la clé est stockée dans les variables protégées de GitLab et jamais dans le code.
| Domaine | Compétences |
|---|---|
| Frontend | HTML, CSS (thèmes clair/sombre, responsive), Markdown et MDX, composants Astro/Starlight |
| Outillage | Node.js, npm et gestion des dépendances, configuration TypeScript |
| Conteneurisation | Docker, builds multi-étapes, configuration de nginx |
| Cloud | Google Cloud Run, Artifact Registry, comptes de service, CLI gcloud |
| CI/CD | Git, workflow par branches et merge requests, pipelines GitLab CI en YAML, gestion des secrets |
| Maintenance | Lecture de logs de pipeline, diagnostic d’erreurs de build, redirections d’URL |