2.7 KiB
2.7 KiB
Déploiement — oki-foundation.org (SvelteKit statique)
Le site est entièrement pré-rendu : npm run build produit un dossier build/ de fichiers statiques servable par n'importe quel hébergement de fichiers, sans serveur Node.
npm install
npm run build # → build/
Contenu notable de build/ : pages HTML par route (index.html, dons/index.html, en/…), assets fingerprintés (_app/), polices (fonts/), PDF presse (assets/press/), PWA (sw.js, registerSW.js, manifest.webmanifest), 404.html, robots.txt, sitemap.xml.
Option A — o2switch (Apache, mutualisé)
- Builder en local puis transférer le contenu de
build/à la racine web du domaine (via FTP/SFTP ou le gestionnaire de fichiers cPanel), typiquementpublic_html/. - Conserver le fichier
build/.htaccess(fichier caché — vérifier qu'il est bien transféré). Il contient :- redirection HTTP → HTTPS (compatible proxy),
ErrorDocument 404 /404.html,- headers de sécurité (HSTS, CSP
default-src 'self',X-Frame-Options: DENY,nosniff,Referrer-Policy,Permissions-Policy), - cache immutable pour
/_app/et/fonts/.
- HTTPS : activer le certificat Let's Encrypt dans cPanel (la redirection exempte
.well-known/acme-challenge/). - Vérifications post-déploiement :
curl -sI https://oki-foundation.org/→ headers de sécurité présents,curl -s https://oki-foundation.org/ | grep -c "b-cdn.net\|googleapis"→0,- une URL inexistante → page 404 designée avec statut 404.
Le service worker (
sw.js) est servi entext/javascriptpar défaut sous Apache — rien à configurer.
Option B — Cloudflare Pages
- Projet Pages connecté au dépôt, ou déploiement direct :
npx wrangler pages deploy build. - Configuration du projet :
- Build command :
npm run build - Build output directory :
build
- Build command :
- Le fichier
build/_headersest pris en compte automatiquement par Cloudflare Pages (headers de sécurité + cache immutable). Ne pas le supprimer. - La page 404 : Cloudflare Pages sert automatiquement
/404.htmlavec le statut 404 pour les routes inconnues. - HTTPS/HSTS : gérés par Cloudflare ; le header HSTS est aussi dans
_headers.
Points communs
- Aucune variable d'environnement n'est nécessaire au build.
- Le site fonctionne sans JavaScript côté serveur ; les seuls scripts sont statiques (
theme.js,lang-redirect.js,registerSW.js, bundles_app/). - CSP stricte : si vous ajoutez un jour une ressource externe, il faudra l'ajouter à la CSP (dans
.htaccessET_headers) — ou mieux, la self-héberger. - Les PDF de presse (~34 Mo dans
assets/press/) font partie du déploiement.