Avant toute publication (règle de l'Orchestrator)
- Cible : données privées ou secrets, donc
local; site public statique, donccloudflare-pagesougithub-pages(ADR 0001). - Inspecter le dossier de sortie : données personnelles, secrets,
.env, métadonnées, sauvegardes. noindex,nofollow: baliserobotset en-têteX-Robots-Tag./publier-pages:gardien-confidentialite(bloquant) etcyberagent.- Une publication est visible de tous et peut être mise en cache.
Chemin d'une requête
DNS et proxy
| Proxifié | DNS seul | |
|---|---|---|
| Réponse DNS | adresses Cloudflare | adresse réelle de l'origine |
| Types | A, AAAA, CNAME | tous (MX, TXT…) |
| Fonctions | DDoS, cache, WAF, règles | aucune |
Un seul A/AAAA proxifié sur un nom : tous traités comme proxifiés. « DNS seul » révèle l'IP de l'origine.
dig example.com A +shortdig example.com NS +shortBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : Terminal macOS ; domaine de documentation à remplacer par le sien.
- Droits : utilisateur.
- Effet : requêtes DNS, lecture seule.
- Vérification : adresses Cloudflare pour un nom proxifié.
- Retour arrière : sans objet.
Cache (CDN)
- Décidé par l'extension du fichier ; HTML et JSON non mis en cache par défaut.
- Pas de cache si
private,no-store,no-cache,max-age=0,Set-Cookie, ou méthode non GET. - Durées par défaut : 120 min (200, 301), 20 min (302, 303), 3 min (404, 410).
- Valeurs de
cf-cache-statuset purge : non relues.
curl -sI --max-time 10 https://example.com/ | grep -i -E 'cf-cache-status|cache-control'Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : Terminal macOS ; domaine à remplacer par le sien.
- Droits : utilisateur.
- Effet : une requête HTTPS, en-têtes seulement ; lecture seule.
- Vérification : deux appels successifs montrent si la copie vient du cache.
- Retour arrière : sans objet.
HTTPS : modes SSL/TLS
| Mode | Cloudflare vers origine | Avis |
|---|---|---|
| Off | clair | à éviter |
| Flexible | clair | à éviter |
| Full | HTTPS, certificat non validé | acceptable en dépannage |
| Full (strict) | HTTPS, certificat validé | recommandé |
| Strict (origin pull) | toujours HTTPS validé | variante stricte |
Universal SSL : certificats gratuits DV, émis et renouvelés automatiquement ; couvre la racine et les sous-domaines de premier niveau. Mode automatique par défaut (déploiement progressif, état du compte non vérifié).
Pages
| Élément | État consulté le 2026-10-17 |
|---|---|
| Envoi direct | glisser-déposer : 1 000 fichiers ; wrangler : 20 000 fichiers ; 25 MiB par fichier |
| Git | GitHub et GitLab seulement ; aperçus par branche (publics aussi) |
| Passage direct vers Git | impossible : nouveau projet |
| Plan gratuit | 500 constructions par mois, 100 projets, 100 domaines par projet |
| Adresse | <NOM-PROJET>.pages.dev |
Attention, effet notable. Cette commande a un effet notable. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
npx wrangler pages deploy <DOSSIER-DE-SORTIE>Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : Terminal macOS ; dossier de sortie validé par
/publier-pagesetgardien-confidentialite. - Droits : jeton ou connexion avec droit de modifier Pages.
- Effet : publie le contenu à une adresse
*.pages.dev, visible de tous et pouvant être mise en cache. - Vérification : ouvrir l'adresse en navigation privée ; contrôler les en-têtes et la liste des fichiers.
- Retour arrière : supprimer le déploiement ou le projet dans le tableau de bord ; copies en cache possibles ; révoquer tout secret exposé.
_headers (dans le dossier publié) :
https://:project.pages.dev/*
X-Robots-Tag: noindex
Non appliqué aux réponses de Pages Functions ; 100 règles maximum.
Domaine personnalisé : sous-domaine = CNAME vers <NOM-PROJET>.pages.dev ; racine = zone gérée par Cloudflare. Ajouter le domaine dans Pages avant le CNAME (sinon erreur 522). Un CAA restrictif bloque le certificat.
Pages ou Workers pour un projet neuf : la documentation oriente vers Workers mais ne dit rien de l'avenir de Pages ; choix à confirmer par Stéphane.
Workers, R2, D1
| Produit | Rôle | Chiffres (état consulté le 2026-10-17) |
|---|---|---|
| Workers | code exécuté en bordure | Free : 100 000 requêtes par jour, 10 ms CPU, 50 sous-requêtes |
| R2 | objets (compatible S3) | gratuit : 10 GB-mois, 1 M opérations A, 10 M opérations B ; pas de frais de sortie |
| D1 | base SQL pour Workers | Free : 10 bases, 500 MB par base, 5 GB au total |
- Aucun secret dans le code d'un Worker ; bucket non public : pas de données personnelles dans un bucket exposé.
- D1 et R2 hébergent chez un tiers : données privées, donc
local.
Tunnel et Access
- Tunnel :
cloudflaredouvre des connexions sortantes ; aucun port entrant. Son jeton est un secret. - Access : refus par défaut ; stratégies Allow, Block, Bypass ; durée de session ; l'origine valide le jeton d'application.
- Tunnel sans Access = service public. Commandes de
cloudflared: non vérifiées ; service permanent =ops-macospuiscyberagent.
WAF et limitation de débit
| Plan | Règles personnalisées | Règles de limitation de débit |
|---|---|---|
| Free | 5 | 1 (chemin seulement, par IP) |
| Pro | 20 | 2 |
| Business | 100 | 5 |
| Enterprise | 1 000 | jusqu'à 100 |
Actions : Block, Managed Challenge, Skip, Log. Évaluation dans l'ordre ; Block arrête. Tester en Log quand le plan le permet.
wrangler en lecture
npx wrangler whoaminpx wrangler pages project listnpx wrangler pages deployment list --project-name <NOM-PROJET>Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : Terminal macOS ; session ou jeton d'un compte de test ; syntaxe à confirmer avec
--help. - Droits : ceux du jeton ; lecture seule suffit.
- Effet : requêtes de lecture ; sortie pouvant contenir noms de projets et ID de compte : ne pas la coller dans le dépôt.
- Vérification : même liste que le tableau de bord.
- Retour arrière : sans objet.
Attention : deploy, delete et les commandes de création ou de suppression modifient le compte.
Jetons d'API
Attention : un jeton est un mot de passe. Portée minimale (permission et ressource précises), date d'expiration, restriction d'IP si possible ; secret affiché une seule fois. Jamais dans un fichier, un dépôt, une capture, une URL ou un journal. Mac de Stéphane : bin/secret get NOM ou bin/avec-secrets NOM -- commande. Fuite : révoquer aussitôt, puis cyberagent.
Pièges fréquents
- Publier avant
/publier-pages: interdit. - Choisir « Flexible » : trajet en clair vers l'origine.
- Créer le CNAME avant d'ajouter le domaine à Pages : erreur 522.
- Penser qu'un fichier supprimé a disparu : cache et historiques.
- Aperçus de branche : URL publiques aussi.
- Quotas et prix : relire la page officielle.
Sources
Toutes consultées le 17 octobre 2026 (service sans numéro de version).
- Proxy status (s’ouvre dans un nouvel onglet)
- Default cache behavior (s’ouvre dans un nouvel onglet)
- SSL/TLS encryption modes (s’ouvre dans un nouvel onglet)
- Universal SSL (s’ouvre dans un nouvel onglet) (page du 2026-08-14)
- Pages : Direct Upload (s’ouvre dans un nouvel onglet) (2026-04-21)
- Pages : Git integration (s’ouvre dans un nouvel onglet) (2026-10-15)
- Pages : Custom domains (s’ouvre dans un nouvel onglet) (2026-04-21)
- Pages : Headers (s’ouvre dans un nouvel onglet) (2026-08-25)
- Pages : Limits (s’ouvre dans un nouvel onglet) (2026-09-05)
- Migrate from Pages to Workers (s’ouvre dans un nouvel onglet) (2026-10-12)
- Workers : Limits (s’ouvre dans un nouvel onglet) (2026-10-12)
- R2 : Pricing (s’ouvre dans un nouvel onglet) (2026-10-01)
- D1 : Limits (s’ouvre dans un nouvel onglet) (2026-04-21)
- Cloudflare Tunnel (s’ouvre dans un nouvel onglet) (2026-08-04)
- Access : self-hosted public app (s’ouvre dans un nouvel onglet) (2026-04-17)
- WAF : custom rules (s’ouvre dans un nouvel onglet) (2026-10-16)
- WAF : rate limiting rules (s’ouvre dans un nouvel onglet) (2026-08-25)
- Wrangler : commands (s’ouvre dans un nouvel onglet) (2026-04-23, version non indiquée)
- Create an API token (s’ouvre dans un nouvel onglet) (2026-04-20)
- ADR 0001 de l'Orchestrator (
docs/decisions/0001-cibles-de-deploiement.md)