Dernière MAJ : 16 Juin 2026 Auteur : Fefe (via ZCode) Statut : ✅ Opérationnel — sites servis à 100 % par Cloudflare
Le site MADACUP est entièrement servi par Cloudflare
Pages (CDN global + SSL + edge cache). Le VPS ne sert plus
madacup.online ni dev.madacup.online —
uniquement les sous-domaines shop., oauth.,
media..
┌──────────────────────────┐
madacup.online │ Cloudflare Pages │
dev.madacup.online│ (CDN edge, SSL auto) │
──────────►│ madacup.pages.dev │
madacup-dev.pages.dev │
└──────────────────────────┘
▲
│ déploiement
│
┌─────────┴────────────────┐
│ VPS Ubuntu 24.04 │
│ /var/www/madacup-website │ ← source prod
│ /var/www/dev.madacup.online-nexus │ ← source dev
│ /root/deploy-madacup.sh │ ← script de déploiement
└──────────────────────────┘
| Projet | Branche prod | URL pages.dev | Custom domain | Source sur VPS |
|---|---|---|---|---|
madacup |
main |
https://madacup.pages.dev | madacup.online |
/var/www/madacup-website |
madacup-dev |
main |
https://madacup-dev.pages.dev | dev.madacup.online |
/var/www/dev.madacup.online-nexus |
| Élément | Valeur |
|---|---|
| Account | Fenohery |
| Account ID | f30dd0d409679ae65e841302cc0caa8c |
Zone madacup.online |
062eb8c3e10c8fe2ec9fdd1f9fd18047 |
| Nameservers | blakely.ns.cloudflare.com,
kianchau.ns.cloudflare.com |
| Dashboard | https://dash.cloudflare.com → Workers & Pages |
madacup.online| Enregistrement | Type | Cible | Proxy |
|---|---|---|---|
madacup.online (apex) |
CNAME | madacup.pages.dev |
🟠 proxied |
dev.madacup.online |
CNAME | madacup-dev.pages.dev |
🟠 proxied |
*.madacup.online (wildcard) |
A | 173.212.232.124 (VPS) |
⚪ DNS only |
media.madacup.online |
A | 173.212.232.124 |
🟠 proxied |
shop.madacup.online |
(wildcard) | VPS Nginx | — |
oauth.madacup.online |
(wildcard) | VPS Nginx | — |
| MX, TXT (mail) | — | Zoho / SPF / Google | ⚪ DNS only |
/root/deploy-madacup.sh./deploy-madacup.sh # déploie prod + dev (défaut)
./deploy-madacup.sh prod # déploie seulement la prod
./deploy-madacup.sh dev # déploie seulement le dev
./deploy-madacup.sh --check # vérifie l'état HTTP sans déployer/root/.secrets/cf-api-token-full.txt) et wrangler/tmp/deploy-madacup-<env>/ en
excluant :
.env (clé Stripe) 🔒.git, .gitignore, .wrangler,
.agents, .githubnode_modules, .DS_Store.env est
détecté dans le staging → déploiement annuléwrangler pages deploy vers le
projet ciblemadacup.online, dev.madacup.online,
/impressum, /datenschutzactive# 1. Modifier les fichiers source
vim /var/www/madacup-website/index.html
# 2. Déployer
/root/deploy-madacup.sh prod
# 3. Le script vérifie le HTTP automatiquement après coupCes fichiers vivent à la racine de chaque site
(/var/www/madacup-website/ et
/var/www/dev.madacup.online-nexus/).
_headers — Sécurité &
cache/*
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: geolocation=(), microphone=(), camera=()
Cache-Control: public, max-age=3600
/assets/* → Cache-Control: public, max-age=31536000, immutable
/css/* → idem
/js/* → idem
/fonts/* → idem
/*.html → Cache-Control: public, max-age=0, must-revalidate_redirects — Routing# Cloudflare Pages gère nativement les "pretty URLs"
# (/impressum → impressum.html) — ne PAS les redéfinir (boucle 308).
/* /index.html 200 # Fallback 404 → page d'accueil⚠️ Leçon apprise : ne jamais redéfinir
/impressum → /impressum.htmldans_redirects. Pages le fait déjà nativement → ça crée une boucle 308 infinie.
Les liens symboliques ont été retirés de
/etc/nginx/sites-enabled/. Les fichiers de config sont
conservés dans /etc/nginx/sites-available/
(réactivables).
| Vhost | Statut |
|---|---|
madacup.online |
❌ désactivé (servi par Cloudflare Pages) |
dev.madacup.online |
❌ désactivé (servi par Cloudflare Pages) |
Réactivation éventuelle (si retour VPS nécessaire) :
ln -s /etc/nginx/sites-available/madacup.online /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/dev.madacup.online /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx| Vhost | Racine | Rôle |
|---|---|---|
shop.madacup.online |
/var/www/shop.madacup.online/out |
E-commerce Next.js |
oauth.madacup.online |
/var/www/madacup/oauth |
Auth OAuth |
media.madacup.online |
/var/www/media |
Médias (cartoon/webp/webm) |
html (default) |
/var/www/html |
Page par défaut Nginx |
| Fichier | Rôle | Permissions |
|---|---|---|
/root/.secrets/cf-api-token-full.txt |
Token Cloudflare (full access) | 600 |
/root/.secrets/cf-api-token-madacup.txt |
Token Cloudflare (Madacup only) | 600 |
/var/www/madacup-website/.env |
Clé Stripe (LIVE) | 🔒 jamais déployé |
/var/www/dev.madacup.online-nexus/.env |
Clé Stripe (dev) | 🔒 jamais déployé |
🔴 Les tokens Cloudflare proviennent de
vps-tailscale(144.91.96.120) via le script/root/pull-okf.sh. La source de vérité est sur ce VPS principal.
mkdir -p /root/.secrets
scp root@144.91.96.120:/root/.secrets/cf-api-token-full.txt /root/.secrets/
chmod 600 /root/.secrets/cf-api-token-full.txtblakely.ns.cloudflare.com +
kianchau.ns.cloudflare.com)ERR_QUIC_PROTOCOL_ERROR
sur madacup.onlineCause probable : le WHOIS du domaine est en
vérification chez Namecheap → les NS basculent vers
failed-whois-verification.namecheap.com → le DNS Cloudflare
n’est plus consulté.
Diagnostic :
dig NS madacup.online +short
# Si on voit "failed-whois-verification.namecheap.com" → aller valider le WHOIS chez NamecheapFix : Dashboard Namecheap → valider les infos de contact WHOIS du domaine.
/impressumCause : règle _redirects redondante
avec les pretty URLs natifs de Pages.
Fix : s’assurer que _redirects ne
contient que le fallback :
/* /index.html 200pendingCause : DNS pas encore propagé, ou certificat SSL en cours d’émission.
Diagnostic :
/root/deploy-madacup.sh --checkFix : attendre 2-15 min (propagation + SSL). Vérifier sur le dashboard Cloudflare → Pages → Custom domains.
curl -sI https://madacup.online | grep -iE 'server|cf-ray'
# Doit renvoyer : server: cloudflare + cf-ray: xxx-XXXmadacup + madacup-dev
via APImadacup.online +
dev.madacup.online*.pages.dev_redirects)madacup.online +
dev.madacup.online/root/deploy-madacup.sh