Vai al contenuto

Deploy su Vercel ​

Vercel offre l'esperienza di deploy più semplice per i siti statici.

Deploy con un clic ​

Deploy with Vercel

Deploy manuale ​

Passaggio 1: fai il fork del repository ​

Fai il fork di bentopdf/bentopdf sul tuo account GitHub.

Passaggio 2: importa su Vercel ​

  1. Vai su vercel.com/new
  2. Seleziona il tuo repository forkato
  3. Configura il progetto:
ImpostazioneValore
Framework PresetVite
Build Commandnpm run build
Output Directorydist
Install Commandnpm install

Passaggio 3: variabili d'ambiente (facoltativo) ​

Aggiungile se necessario:

VariabileDescrizione
SIMPLE_MODEImposta su true per un'interfaccia minimale
VITE_BRAND_NAMENome del brand personalizzato (sostituisce "BentoPDF")
VITE_BRAND_LOGOPercorso del logo relativo a public/ (ad es. images/my-logo.svg)
VITE_FOOTER_TEXTTesto personalizzato del footer/copyright
VITE_DEFAULT_LANGUAGELingua predefinita dell'interfaccia (ad es. fr, de, es)

Passaggio 4: esegui il deploy ​

Fai clic su "Deploy" e attendi il completamento della build.

Dominio personalizzato ​

  1. Vai alle impostazioni del progetto
  2. Apri "Domains"
  3. Aggiungi il tuo dominio personalizzato
  4. Configura il DNS come indicato

Limitazioni ​

File di grandi dimensioni

Le funzioni serverless di Vercel hanno un limite di 50MB. Poiché BentoPDF è un sito statico, questo non dovrebbe riguardarti, ma i moduli WASM sono grandi (~100MB in totale). Assicurati che vengano serviti dalla cartella /public.

Risoluzione dei problemi ​

Timeout della build ​

Se le build vanno in timeout, prova:

json
// vercel.json
{
  "buildCommand": "npm run build",
  "outputDirectory": "dist"
}

404 al ricaricamento ​

Aggiungi un vercel.json per il routing SPA:

json
{
  "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}

Conversione da Word/ODT/Excel a PDF non funzionante ​

Le conversioni WASM di LibreOffice richiedono SharedArrayBuffer, che necessita di questi header di risposta su tutte le pagine:

  • Cross-Origin-Embedder-Policy: require-corp
  • Cross-Origin-Opener-Policy: same-origin

Anche i file precompressi .wasm.gz e .data.gz richiedono Content-Encoding: gzip, così il browser li decomprime.

Aggiungili al tuo 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" }
      ]
    }
  ]
}

Per verificare, apri la Console di DevTools ed esegui console.log(window.crossOriginIsolated): dovrebbe restituire true.

Doppia licenza: AGPL-3.0 e Licenza commerciale.