Blog personnel sur l'administration système, l'infrastructure, le homelab et le DevOps.
Ce blog documente mes expériences et découvertes en tant qu'administrateur système et réseau. Les articles couvrent des sujets pratiques autour de Linux, Docker, la virtualisation, la sécurité et le self-hosting.
Thématiques principales :
- 🐧 Administration Linux (Debian, Ubuntu, Arch)
- 🐳 Conteneurisation & Docker
- 🔐 Sécurité système et réseau
- 🏠 Homelab & self-hosting
- ⚙️ DevOps & automatisation
| Composant | Technologie |
|---|---|
| Framework | Astro 5 — output statique |
| Thème | Astro Pure par cworld1 |
| Style | UnoCSS |
| Déploiement | Vercel |
| Commentaires | Waline + anti-spam Cloudflare Turnstile |
| Recherche | Pagefind |
| Maths | KaTeX |
| Images | Sharp + zoom via Medium Zoom |
- ✅ Site 100% en français (système i18n centralisé dans
src/i18n/) - ✅ SEO complet — Open Graph, Twitter Card, JSON-LD, sitemap, RSS
- ✅ Mode sombre / clair
- ✅ Table des matières automatique
- ✅ Recherche full-text offline (Pagefind)
- ✅ Commentaires avec compteur de vues (Waline)
- ✅ Coloration syntaxique (Shiki) avec copie de code
- ✅ Images optimisées (WebP, responsive)
- ✅ En-têtes de sécurité (CSP, HSTS, X-Frame-Options…)
- ✅ Score Lighthouse ≥ 90
Prérequis : Bun ≥ 1.0
# Installer les dépendances
bun install
# Lancer le serveur de développement
bun dev
# Build de production
bun build
# Vérification TypeScript
bun checkCréer un fichier .env.local à la racine :
# URL du serveur Waline (commentaires)
PUBLIC_WALINE_URL=https://votre-serveur-waline.vercel.app/
# Clé publique Cloudflare Turnstile (anti-spam)
PUBLIC_TURNSTILE_KEY=votre_cle_publiquesrc/
├── i18n/ # Traductions françaises
│ ├── fr.ts # Toutes les chaînes de caractères
│ ├── utils.ts # Fonctions t(), getSection(), replace()
│ └── index.ts # Point d'entrée
├── components/
│ └── overrides/ # Composants remplaçant ceux du thème
├── content/
│ └── blog/ # Articles en Markdown
├── pages/
│ └── api/quote.ts # Endpoint citations françaises
└── site.config.ts # Configuration principale
bun newOu créer manuellement un dossier dans src/content/blog/ avec un fichier index.md :
---
title: 'Titre de l'article'
description: 'Description courte (max 160 caractères)'
publishDate: '2026-01-01'
tags:
- linux
- docker
heroImage:
src: ./image.png
alt: 'Description de l'image'
---Le site se déploie automatiquement sur Vercel à chaque push sur main.
Les en-têtes de sécurité sont configurés dans vercel.json :
Content-Security-Policy, HSTS, X-Frame-Options, Referrer-Policy, Permissions-Policy.
Ce blog est basé sur le thème Astro Pure de cworld1, distribué sous licence Apache 2.0.
Conformément à la licence, les fichiers du thème original sont conservés dans packages/pure/ sans modification.