Déployer sur Vercel
Vercel offre l'expérience de déploiement la plus simple pour les sites statiques.
Déploiement en un clic
Déploiement manuel
Étape 1 : forker le dépôt
Forkez bentopdf/bentopdf vers votre compte GitHub.
Étape 2 : importer dans Vercel
- Rendez-vous sur vercel.com/new
- Sélectionnez votre dépôt forké
- Configurez le projet :
| Paramètre | Valeur |
|---|---|
| Préréglage du framework | Vite |
| Commande de build | npm run build |
| Répertoire de sortie | dist |
| Commande d'installation | npm install |
Étape 3 : variables d'environnement (facultatif)
Ajoutez-les si nécessaire :
| Variable | Description |
|---|---|
SIMPLE_MODE | Mettre à true pour une interface minimale |
VITE_BRAND_NAME | Nom de marque personnalisé (remplace « BentoPDF ») |
VITE_BRAND_LOGO | Chemin du logo relatif à public/ (par ex. images/my-logo.svg) |
VITE_FOOTER_TEXT | Texte personnalisé du pied de page/copyright |
VITE_DEFAULT_LANGUAGE | Langue par défaut de l'interface (par ex. fr, de, es) |
Étape 4 : déployer
Cliquez sur « Deploy » et attendez la fin du build.
Domaine personnalisé
- Ouvrez les paramètres de votre projet
- Allez dans « Domains »
- Ajoutez votre domaine personnalisé
- Configurez le DNS comme indiqué
Limitations
Fichiers volumineux
Les fonctions serverless de Vercel ont une limite de 50 Mo. BentoPDF étant un site statique, cela ne devrait pas vous concerner, mais les modules WASM sont volumineux (~100 Mo au total). Assurez-vous qu'ils sont servis depuis le dossier /public.
Dépannage
Délai d'attente du build dépassé
Si les builds dépassent le délai, essayez :
json
// vercel.json
{
"buildCommand": "npm run build",
"outputDirectory": "dist"
}Erreur 404 à l'actualisation
Ajoutez un fichier vercel.json pour le routage SPA :
json
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}La conversion Word/ODT/Excel vers PDF ne fonctionne pas
Les conversions LibreOffice WASM nécessitent SharedArrayBuffer, qui exige ces en-têtes de réponse sur toutes les pages :
Cross-Origin-Embedder-Policy: require-corpCross-Origin-Opener-Policy: same-origin
Les fichiers précompressés .wasm.gz et .data.gz ont aussi besoin de Content-Encoding: gzip pour que le navigateur les décompresse.
Ajoutez-les à votre vercel.json :
json
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }],
"headers": [
{
"source": "/(.*)",
"headers": [
{ "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" },
{ "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
{ "key": "Cross-Origin-Resource-Policy", "value": "cross-origin" }
]
},
{
"source": "/libreoffice-wasm/soffice.wasm.gz",
"headers": [
{ "key": "Content-Type", "value": "application/wasm" },
{ "key": "Content-Encoding", "value": "gzip" }
]
},
{
"source": "/libreoffice-wasm/soffice.data.gz",
"headers": [
{ "key": "Content-Type", "value": "application/octet-stream" },
{ "key": "Content-Encoding", "value": "gzip" }
]
}
]
}Pour vérifier, ouvrez la console des DevTools et exécutez console.log(window.crossOriginIsolated) : le résultat doit être true.