Aller au contenu

Déployer sur Cloudflare Pages ​

Cloudflare Pages propose un hébergement de sites statiques rapide et mondial, avec une bande passante illimitée.

Déploiement rapide ​

  1. Allez sur Cloudflare Pages
  2. Cliquez sur « Create a project »
  3. Connectez votre dépôt GitHub

Configuration du build ​

ParamètreValeur
Framework presetNone
Build commandnpm run build
Build output directorydist
Root directory/

Variables d'environnement ​

Ajoutez-les dans Settings → Environment variables :

VariableValeur
NODE_VERSION18
SIMPLE_MODEfalse (facultatif)
VITE_BRAND_NAMENom de marque personnalisé (facultatif)
VITE_BRAND_LOGOChemin du logo relatif à public/ (facultatif)
VITE_FOOTER_TEXTTexte de pied de page/copyright personnalisé (facultatif)
VITE_DEFAULT_LANGUAGELangue par défaut de l'interface, p. ex. fr (facultatif)

Fichier de configuration ​

Créez _headers dans votre dossier public :

# Required security headers for SharedArrayBuffer (used by LibreOffice WASM)
/*
  Cross-Origin-Embedder-Policy: require-corp
  Cross-Origin-Opener-Policy: same-origin
  Cross-Origin-Resource-Policy: cross-origin

# Pre-compressed LibreOffice WASM binary
/libreoffice-wasm/soffice.wasm.gz
  Content-Type: application/wasm
  Content-Encoding: gzip
  Cache-Control: public, max-age=31536000, immutable

# Pre-compressed LibreOffice WASM data
/libreoffice-wasm/soffice.data.gz
  Content-Type: application/octet-stream
  Content-Encoding: gzip
  Cache-Control: public, max-age=31536000, immutable

# Cache WASM files aggressively
/*.wasm
  Cache-Control: public, max-age=31536000, immutable
  Content-Type: application/wasm

# Service worker
/sw.js
  Cache-Control: no-cache

Important

Les en-têtes Cross-Origin-Embedder-Policy et Cross-Origin-Opener-Policy sont requis pour les conversions Word/ODT/Excel/PowerPoint vers PDF. Sans eux, SharedArrayBuffer n'est pas disponible et le moteur LibreOffice WASM ne parviendra pas à s'initialiser.

Créez _redirects pour le routage SPA :

/*    /index.html   200

Domaine personnalisé ​

  1. Ouvrez votre projet Pages
  2. Cliquez sur « Custom domains »
  3. Ajoutez votre domaine
  4. Cloudflare configurera automatiquement le DNS si le domaine est chez Cloudflare

Avantages ​

  • Bande passante illimitée et gratuite
  • CDN mondial avec plus de 300 points de présence
  • HTTPS automatique
  • Déploiements de prévisualisation pour les pull requests
  • Builds rapides

Dépannage ​

Téléversement de gros fichiers ​

Cloudflare Pages prend en charge les fichiers jusqu'à 25 Mo. Les modules WASM ne devraient pas poser de problème, mais si vous atteignez les limites, envisagez :

bash
# Split large files during build
npm run build

Limites de taille des Workers ​

Si vous utilisez Cloudflare Workers pour un routage avancé, notez la limite de 1 Mo des offres gratuites.

Worker proxy CORS (pour les signatures numériques) ​

L'outil de signature numérique nécessite un proxy CORS pour récupérer les chaînes de certificats. Déployez le worker fourni :

bash
cd cloudflare
npx wrangler login
npx wrangler deploy

Fonctionnalités de sécurité ​

FonctionnalitéDescription
Restrictions d'URLSeules les URL de certificats sont autorisées
Limite de taille10 Mo max par requête
Limitation de débit60 req/IP/min (nécessite KV)
Blocage des IP privéesBloque localhost et les IP internes

Activer la limitation de débit ​

bash
# Create KV namespace
npx wrangler kv namespace create "RATE_LIMIT_KV"

# Add to wrangler.toml with returned ID:
# [[kv_namespaces]]
# binding = "RATE_LIMIT_KV"
# id = "YOUR_ID"

npx wrangler deploy

Compiler avec l'URL du proxy ​

bash
VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build

Ou avec Docker :

bash
export VITE_CORS_PROXY_URL="https://your-worker.workers.dev"
DOCKER_BUILDKIT=1 docker build \
  --secret id=VITE_CORS_PROXY_URL,env=VITE_CORS_PROXY_URL \
  -t your-bentopdf .

Remarque : Consultez le README pour la configuration de la signature HMAC.

Double licence : AGPL-3.0 et licence commerciale.