Une fois votre site Astro construit, le déploiement est l’étape critique : il doit être rapide, automatisé via Git, sécurisé en HTTPS, et idéalement servi depuis un edge proche de vos visiteurs africains. Deux options dominent en 2026 : Cloudflare Pages (managé, edge mondial, gratuit jusqu’à un seuil élevé) et Coolify (auto-hébergé sur VPS Hetzner). Voici comment configurer chacune.
Voir notre guide complet Astro 5 et le guide Coolify.
Option A — Cloudflare Pages
Cloudflare Pages est l’option recommandée pour la majorité des sites Astro statiques visant l’Afrique. Avantages :
- Gratuit : 500 builds/mois, 100k requêtes/jour, bandwidth illimitée
- Edge mondial : datacenters Lagos, Casablanca, Le Caire pour latence Afrique < 50 ms
- HTTPS automatique
- Preview déploiements à chaque PR
- Cache CDN intelligent + Workers à la demande
Étape 1 — Pousser sur GitHub
git init
git add .
git commit -m "init"
git remote add origin git@github.com:username/mon-site.git
git push -u origin main
Étape 2 — Connecter Cloudflare Pages
- Cloudflare dashboard → Workers & Pages → Create → Pages → Connect to Git
- Autoriser GitHub, choisir le repo
- Build settings : framework preset « Astro », build command
npm run build, output dirdist - Environment variables si besoin (NODE_VERSION=20, etc.)
- Save and Deploy
Premier build en 1-3 minutes. URL your-project.pages.dev. Connectez votre domaine custom dans Custom domains.
Étape 3 — SSR/Server Islands
bun add @astrojs/cloudflare
// astro.config.mjs
import cloudflare from "@astrojs/cloudflare";
export default defineConfig({
output: "server",
adapter: cloudflare(),
});
Option B — Coolify sur Hetzner
Cloudflare Pages couvre 95 % des cas. Si vous voulez la souveraineté complète, du SSR custom, ou de la perf cumulée avec d’autres apps, Coolify sur Hetzner est l’option auto-hébergée. Voir notre guide Coolify.
Setup Coolify
- Coolify → New Resource → Application → Public/Private Repository
- Build pack : Nixpacks (auto-détecte Astro)
- Build command :
npm run build - Start command :
node dist/server/entry.mjs(si SSR) ou serveur statique - Port : 4321 ou 8080 selon adapter
- Domaine, HTTPS, déployer
Caddy pour servir le statique
Pour un site purement statique sur VPS, vous pouvez aussi le servir via Caddy directement, sans framework runtime :
# /etc/caddy/Caddyfile
exemple.sn {
root * /var/www/mon-site/dist
file_server
encode gzip zstd
# Cache assets longue durée
@assets path *.js *.css *.woff2 *.png *.jpg *.svg
header @assets Cache-Control "public, max-age=31536000, immutable"
}
Cloudflare devant Coolify
Combinaison gagnante pour l’Afrique : Coolify sur Hetzner Helsinki + Cloudflare Free devant. Vos visiteurs africains accèdent au cache edge Cloudflare proche, le serveur Hetzner reçoit moins de requêtes, et vous gardez le contrôle complet.
- Domain → Cloudflare DNS
- Activer « Proxied » (orange)
- SSL/TLS mode : « Full (strict) » — Coolify a déjà un cert valide
- Cache Rules : agressif sur les assets, normal sur les HTML
Comparaison rapide
| Critère | Cloudflare Pages | Coolify Hetzner |
|---|---|---|
| Coût | Gratuit (jusqu’à seuil) | ~5 €/mois fixe |
| Setup | 5 min | 30 min (Coolify déjà installé) |
| Latence Afrique | Excellente (edge Lagos) | Bonne avec Cloudflare devant |
| Souveraineté | Données chez Cloudflare | Totale |
| SSR/Server Islands | Workers (limites runtime) | Node/Bun complet |
| Custom backend | Workers | N’importe quel service |
Recommandation
Site statique simple ou blog → Cloudflare Pages, point. Site avec backend custom, SaaS, e-commerce → Coolify + Cloudflare devant.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Build CF Pages timeout | Build > 20 min | Réduire pages générées, optimiser dépendances |
| SSR ne fonctionne pas | Pas d’adapter | Installer @astrojs/cloudflare ou node |
| Images cassées en prod | Path absolu vs relatif | Toujours import via src/assets/ |
| Cache HTML trop long | Cloudflare cache HTML par défaut | Page Rules : Cache Level Bypass sur /*.html |