Aller au contenu

Déployer sur Vercel ​

Vercel offre l'expérience de déploiement la plus simple pour les sites statiques.

Déploiement en un clic ​

Deploy with Vercel

Déploiement manuel ​

Étape 1 : forker le dépôt ​

Forkez bentopdf/bentopdf vers votre compte GitHub.

Étape 2 : importer dans Vercel ​

  1. Rendez-vous sur vercel.com/new
  2. Sélectionnez votre dépôt forké
  3. Configurez le projet :
ParamètreValeur
Préréglage du frameworkVite
Commande de buildnpm run build
Répertoire de sortiedist
Commande d'installationnpm install

Étape 3 : variables d'environnement (facultatif) ​

Ajoutez-les si nécessaire :

VariableDescription
SIMPLE_MODEMettre à true pour une interface minimale
VITE_BRAND_NAMENom de marque personnalisé (remplace « BentoPDF »)
VITE_BRAND_LOGOChemin du logo relatif à public/ (par ex. images/my-logo.svg)
VITE_FOOTER_TEXTTexte personnalisé du pied de page/copyright
VITE_DEFAULT_LANGUAGELangue 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é ​

  1. Ouvrez les paramètres de votre projet
  2. Allez dans « Domains »
  3. Ajoutez votre domaine personnalisé
  4. 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-corp
  • Cross-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.

Double licence : AGPL-3.0 et licence commerciale.