Naar inhoud springen

Implementeren op Cloudflare Pages ​

Cloudflare Pages biedt snelle, wereldwijde hosting van statische sites met onbeperkte bandbreedte.

Snel implementeren ​

  1. Ga naar Cloudflare Pages
  2. Klik op "Create a project"
  3. Koppel je GitHub-repository

Buildconfiguratie ​

InstellingWaarde
Framework presetNone
Build commandnpm run build
Build output directorydist
Root directory/

Omgevingsvariabelen ​

Voeg deze toe onder Settings → Environment variables:

VariabeleWaarde
NODE_VERSION18
SIMPLE_MODEfalse (optioneel)
VITE_BRAND_NAMEAangepaste merknaam (optioneel)
VITE_BRAND_LOGOLogopad relatief aan public/ (optioneel)
VITE_FOOTER_TEXTAangepaste footer-/copyrighttekst (optioneel)
VITE_DEFAULT_LANGUAGEStandaardtaal van de interface, bijv. fr (optioneel)

Configuratiebestand ​

Maak _headers aan in je map 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

Belangrijk

De headers Cross-Origin-Embedder-Policy en Cross-Origin-Opener-Policy zijn vereist voor conversies van Word/ODT/Excel/PowerPoint naar PDF. Zonder deze headers is SharedArrayBuffer niet beschikbaar en kan de LibreOffice WASM-engine niet starten.

Maak _redirects aan voor SPA-routing:

/*    /index.html   200

Eigen domein ​

  1. Ga naar je Pages-project
  2. Klik op "Custom domains"
  3. Voeg je domein toe
  4. Cloudflare configureert DNS automatisch als het domein bij Cloudflare staat

Voordelen ​

  • Gratis onbeperkte bandbreedte
  • Wereldwijd CDN met 300+ edge-locaties
  • Automatische HTTPS
  • Previewimplementaties voor pull requests
  • Snelle builds

Probleemoplossing ​

Uploads van grote bestanden ​

Cloudflare Pages ondersteunt bestanden tot 25 MB. WASM-modules zouden geen probleem moeten zijn, maar als je tegen limieten aanloopt, overweeg dan:

bash
# Split large files during build
npm run build

Groottelimieten van Workers ​

Gebruik je Cloudflare Workers voor geavanceerde routing, let dan op de limiet van 1 MB voor gratis abonnementen.

CORS-proxyworker (voor digitale handtekeningen) ​

De tool voor digitale handtekeningen vereist een CORS-proxy om certificaatketens op te halen. Implementeer de meegeleverde worker:

bash
cd cloudflare
npx wrangler login
npx wrangler deploy

Beveiligingsfuncties ​

FunctieBeschrijving
URL-beperkingenAlleen certificaat-URL's toegestaan
BestandsgroottelimietMax 10MB per verzoek
Rate limiting60 verzoeken/IP/min (vereist KV)
Blokkering privé-IP'sBlokkeert localhost en interne IP's

Rate limiting inschakelen ​

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

Bouwen met proxy-URL ​

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

Of met 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 .

Opmerking: Zie de README voor de installatie van de HMAC-handtekening.

Dubbel gelicentieerd onder AGPL-3.0 en een commerciële licentie.