4.7 KiB
4.7 KiB
Plan d'implémentation — Double hébergement (GitHub Pages + Web externe)
Statut 2026-03-14: plan historique. Le double hebergement n'est plus la strategie active. Remplacements:
docs/README.md,docs/ovh-ftp-preview-solution-2026-03-14.md,docs/SPRINT-PLAYBOOK-2026-03-02.md.
Date: 2026-03-02 Statut: En cours Pilote: Codex
1) Audit rapide du repo
Etat actuel confirmé
- Pipeline GitHub Pages présent:
.github/workflows/deploy-pages.yml - Build externe Astro présent:
npm run build:external->dist/ - Config Vercel présente:
vercel.json - Config Netlify présente:
netlify.toml - Scripts déploiement serveur mutualisé présents:
scripts/deploy-ovh-ftp.sh,scripts/deploy-ovh-sftp.sh - Contrat tracking présent et automatisé:
npm run tracking:check
Vérification technique locale (2026-03-02)
npm run tracking:check: OKnpm run build:external: OKdist/lab/est bien inclus après build externe
2) Décision d'architecture (recommandée)
Cible A — GitHub Pages (production stable)
- Garder la version racine statique actuelle (
index.html,styles.css,script.js,assets/,lab/). - Continuer le déploiement via workflow Pages existant.
Cible B — Web externe (production parallèle)
- Publier la version Astro
dist/issue denpm run build:external. - Priorité recommandée: Vercel (intégration Astro directe).
- Fallback 1: Netlify (build command + publish directory déjà prêts).
- Fallback 2: Cloudflare Pages (si besoin edge/CDN/Workers unifiés).
3) Plan agents + TODOs
Agent 1 — Stabilisation GitHub Pages
- Vérifier dans GitHub Settings > Pages que la source est
GitHub Actions. - Lancer le workflow actuel sur
main(push ouworkflow_dispatch). - Contrôler en public:
https://electron-rare.github.io/https://electron-rare.github.io/lab/- ancres
#a-propos,#projets,#contact
- Si domaine custom: configurer le domaine dans les settings Pages (pas uniquement via fichier
CNAME).
Agent 2 — External Web (Vercel prioritaire)
- Créer/importer le projet sur Vercel depuis ce repo.
- Conserver
buildCommand: npm run build:externaletoutputDirectory: dist(déjà dansvercel.json). - Définir
PUBLIC_SITE_URL=https://<domaine-externe>/dans l'environnement de build. - Déployer et valider:
//#a-propos,/#projets,/#contact/lab/
Agent 3 — Fallback external (Netlify ou Cloudflare)
- Netlify (fallback): importer repo, confirmer
commandetpublishdepuisnetlify.toml. - Cloudflare Pages (fallback): configurer Build command
npm run build:externalet Build output directorydist. - Harmoniser la variable
PUBLIC_SITE_URLsur l'hôte retenu.
Agent 4 — Qualité, SEO, tracking, non-régression
- Exécuter avant release:
npm run tracking:checknpm run preflight:pages
- Contrôles SEO sur les 2 cibles:
robots.txtsitemap.xml- canonical cohérent avec le domaine
- Contrôles analytics:
- GA4 Realtime
- GA4 DebugView (
event_category,event_label,destination)
- Contrôles visuels 390/768/1024/1440 avec captures archivées dans
artifacts/.
4) Risques et garde-fous
- Le repo local est actuellement en état très modifié (worktree non propre): ne pas mélanger ce plan avec des modifications UI non stabilisées.
- Garder un seul domaine principal déclaré comme canonique par cible.
- Ne pas dériver le contrat tracking entre Pages et version externe.
5) Critères de fin
- GitHub Pages stable validé en public.
- Une cible externe validée en public (Vercel recommandé).
- Contrat tracking validé sur les deux cibles.
- Checklist SEO validée sur les deux cibles.
6) Références web (implémentation)
- GitHub Docs — Publishing source (branch ou custom Actions):
- GitHub Docs — Custom domain + DNS + sécurité:
- Astro Docs — Déploiement GitHub Pages:
- Astro Docs — Déploiement Vercel:
- Astro Docs — Déploiement générique (build/publish dist):
- Netlify Docs — Build command / publish directory:
- Cloudflare Pages Docs — Build command / output directory: