Étude de solution · démo opérationnelle
Des sources + un prompt.
Un microsite en ligne en quelques minutes.
Publier des microsites statiques sécurisés, gouvernés et reproductibles — transformer une recherche, une démonstration ou un livrable interactif en expérience consultable au rythme du client.
Cette page en est la preuve : elle a été générée et déployée par l'agent, via le pipeline qu'elle décrit.
Le pipeline
Aucune étape manuelle entre le dépôt des sources et l'URL finale. L'opérateur dépose, prompte, relit.
Déposer
Sources en vrac dans projects/<site>/intent/ : brief,
documents, images, exports — tout format.
Prompter
« Déploie <site> ». L'agent lit l'intent, applique les
guidelines communes et la direction artistique.
Build
SPA vanilla HTML/CSS/JS, navigable sans backend,
autoportante : zéro CDN, zéro télémétrie. Choix tracés dans
doc/.
Déployer
Connecteur scripté et idempotent → hébergement statique, domaine personnalisé, HTTPS. Retrait tout aussi scripté.
$ common/deploy/cloudflare-pages.sh deploy microsite-factory projects/microsite-factory/site
→ Création du projet Pages 'fwd-microsite-factory'
→ Upload (wrangler pages deploy)
✨ Success! Uploaded 3 files (1.3 sec)
✨ Deployment complete!
→ Domaine custom microsite-factory.ps-fr-demo.com
→ CNAME → fwd-microsite-factory.pages.dev (proxied)
HTTP 200 — https://microsite-factory.ps-fr-demo.com/
L'architecture
Un dépôt unique : des standards communs, un dossier par microsite, des connecteurs d'hébergement interchangeables.
fast-website-deploy/
├── common/
│ ├── guidelines/ # structure imposée, qualité, autoportance
│ ├── da/ # direction artistique (défaut ou par projet)
│ ├── credentials/ # secrets — jamais versionnés
│ └── deploy/ # les connecteurs ↓
└── projects/
└── <site>/
├── intent/ # ce qu'on dépose
├── site/ # ce qui est déployé
├── doc/ # choix tracés par l'agent
└── project.yml
Cloudflare Pages actif
Hébergement statique natif : upload direct, CDN mondial, HTTPS et domaine custom automatiques. 0 € , 0 docker, 0 serveur.
Docker on-premise prêt
nginx mutualisé derrière un tunnel sortant — même interface
deploy / delete, pour un hébergement maîtrisé en interne.
Azure Static Web Apps étudié
Le staticwebapp.config.json de l'arbo cible est son format
natif ; auth Entra ID intégrée — chemin naturel pour du PS interne.
AWS S3 + CloudFront étudié
Bucket privé + OAC, même interface de connecteur.
Vos critères de succès
Lecture honnête : ce que la démo couvre aujourd'hui, et le chemin pour le reste.
| Critère | État | Comment |
|---|---|---|
| Structure statique / sites | ✅ | Arborescence imposée par les guidelines : index.html, css/, js/, assets/ |
| SPA vanilla sans backend, toujours disponible | ✅ | Autoportance vérifiée au build (zéro CDN, zéro appel sortant) |
| 0..N microsites | ✅ | 1 dossier = 1 site = 1 projet d'hébergement isolé |
| Domaine personnalisé | ✅ | <site>.ps-fr-demo.com posé automatiquement (DNS + certificat) |
| Accès isolé par microsite | ⚠️ partiel | PIN distinct par site (barrière de confidentialité). L'isolation gouvernée = Cloudflare Access ou Entra ID, voir ci-dessous |
| Anonyme refusé / interne PS / externe ciblé / révocation | ⚠️ partiel | Aujourd'hui : PIN (rotation = révocation). Demain : policies par utilisateur et par site |
| CI reproductible (déploiement / suppression) | ✅ | Connecteurs scriptés, idempotents — branchables tels quels dans GitHub Actions |
Gouvernance des accès : la trajectoire
Aujourd'hui — PIN par microsite
Overlay côté client, PIN distinct par site, rotation à la demande. Suffisant pour de la confidentialité légère (démo client, livrable en cours) ; ce n'est pas de l'authentification.
Cible — identité par utilisateur
Cloudflare Access (gratuit ≤ 50 utilisateurs) : policy par hostname, OTP email ou SSO Entra ID. Anonyme refusé, interne PS autorisé, externes ciblés par email, révocation immédiate, aucun droit implicite entre site A et site B. Alternative Azure SWA : rôles et invitations Entra natifs.
Réversibilité démontrable
Le retrait est un script, pas un ticket :
cloudflare-pages.sh delete <site> détache le domaine, supprime
le DNS et le projet avec tous ses déploiements. Propriétaire, date et statut de
chaque site sont versionnés dans project.yml.
La preuve
Ce site : microsite-factory.ps-fr-demo.com ·
Smoke test : hello.ps-fr-demo.com
Prochaine étape proposée : brancher vos premiers contenus réels et, si le besoin
gouvernance se confirme, activer Cloudflare Access sur un site pilote.