3.9 KiB
Despliegue en Vercel
Vercel ofrece la experiencia de despliegue más sencilla para sitios estáticos.
Despliegue con un clic
Despliegue manual
Paso 1: Hacer un fork del repositorio
Haz un fork de bentopdf/bentopdf en tu cuenta de GitHub.
Paso 2: Importar en Vercel
- Ve a vercel.com/new
- Selecciona tu repositorio con el fork
- Configura el proyecto:
| Ajuste | Valor |
|---|---|
| Framework Preset | Vite |
| Comando de compilación | npm run build |
| Directorio de salida | dist |
| Comando de instalación | npm install |
Paso 3: Variables de entorno (opcional)
Añádelas si las necesitas:
| Variable | Descripción |
|---|---|
SIMPLE_MODE |
Ponla en true para una interfaz mínima |
VITE_BRAND_NAME |
Nombre de marca personalizado (reemplaza "BentoPDF") |
VITE_BRAND_LOGO |
Ruta del logotipo relativa a public/ (p. ej. images/my-logo.svg) |
VITE_FOOTER_TEXT |
Texto personalizado del pie de página y de derechos de autor |
VITE_DEFAULT_LANGUAGE |
Idioma predeterminado de la interfaz (p. ej. fr, de, es) |
Paso 4: Desplegar
Haz clic en "Deploy" y espera a que termine la compilación.
Dominio personalizado
- Ve a los ajustes de tu proyecto
- Ve a "Domains"
- Añade tu dominio personalizado
- Configura el DNS según las instrucciones
Limitaciones
::: warning Archivos grandes
Las funciones serverless de Vercel tienen un límite de 50 MB. Como BentoPDF es un sitio estático, esto no debería afectarte, pero los módulos WASM son grandes (~100 MB en total). Asegúrate de que se sirvan desde la carpeta /public.
:::
Solución de problemas
Tiempo de espera agotado en la compilación
Si las compilaciones agotan el tiempo de espera, prueba lo siguiente:
// vercel.json
{
"buildCommand": "npm run build",
"outputDirectory": "dist"
}
Error 404 al recargar
Añade un vercel.json para el enrutamiento SPA:
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}
La conversión de Word/ODT/Excel a PDF no funciona
Las conversiones de LibreOffice WASM requieren SharedArrayBuffer, que necesita estas cabeceras de respuesta en todas las páginas:
Cross-Origin-Embedder-Policy: require-corpCross-Origin-Opener-Policy: same-origin
Los archivos precomprimidos .wasm.gz y .data.gz también necesitan Content-Encoding: gzip para que el navegador los descomprima.
Añade esto a tu vercel.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" }
]
}
]
}
Para verificarlo, abre la consola de DevTools y ejecuta console.log(window.crossOriginIsolated): debería devolver true.