mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-05 20:02:47 +01:00
123 lines
3.9 KiB
Markdown
123 lines
3.9 KiB
Markdown
# Implantar no Vercel
|
|
|
|
O [Vercel](https://vercel.com) oferece a experiência de implantação mais simples para sites estáticos.
|
|
|
|
## Implantação com Um Clique
|
|
|
|
[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
|
|
|
|
## Implantação Manual
|
|
|
|
### Passo 1: Faça um Fork do Repositório
|
|
|
|
Faça um fork de [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) para sua conta do GitHub.
|
|
|
|
### Passo 2: Importe no Vercel
|
|
|
|
1. Acesse [vercel.com/new](https://vercel.com/new)
|
|
2. Selecione seu repositório com o fork
|
|
3. Configure o projeto:
|
|
|
|
| Configuração | Valor |
|
|
| ---------------- | --------------- |
|
|
| Framework Preset | Vite |
|
|
| Build Command | `npm run build` |
|
|
| Output Directory | `dist` |
|
|
| Install Command | `npm install` |
|
|
|
|
### Passo 3: Variáveis de Ambiente (Opcional)
|
|
|
|
Adicione estas se necessário:
|
|
|
|
| Variável | Descrição |
|
|
| ----------------------- | -------------------------------------------------------------------- |
|
|
| `SIMPLE_MODE` | Defina como `true` para uma interface mínima |
|
|
| `VITE_BRAND_NAME` | Nome de marca personalizado (substitui "BentoPDF") |
|
|
| `VITE_BRAND_LOGO` | Caminho do logotipo relativo a `public/` (ex.: `images/my-logo.svg`) |
|
|
| `VITE_FOOTER_TEXT` | Texto personalizado de rodapé/direitos autorais |
|
|
| `VITE_DEFAULT_LANGUAGE` | Idioma padrão da interface (ex.: `fr`, `de`, `es`) |
|
|
|
|
### Passo 4: Implante
|
|
|
|
Clique em "Deploy" e aguarde a conclusão da compilação.
|
|
|
|
## Domínio Personalizado
|
|
|
|
1. Acesse as configurações do seu projeto
|
|
2. Navegue até "Domains"
|
|
3. Adicione seu domínio personalizado
|
|
4. Configure o DNS conforme as instruções
|
|
|
|
## Limitações
|
|
|
|
::: warning Arquivos Grandes
|
|
As funções serverless do Vercel têm um limite de 50MB. Como o BentoPDF é um site estático, isso não deve afetar você, mas os módulos WASM são grandes (~100MB no total). Garanta que eles sejam servidos a partir da pasta `/public`.
|
|
:::
|
|
|
|
## Solução de Problemas
|
|
|
|
### Tempo Limite da Compilação
|
|
|
|
Se a compilação exceder o tempo limite, tente:
|
|
|
|
```json
|
|
// vercel.json
|
|
{
|
|
"buildCommand": "npm run build",
|
|
"outputDirectory": "dist"
|
|
}
|
|
```
|
|
|
|
### 404 ao Atualizar a Página
|
|
|
|
Adicione um `vercel.json` para o roteamento de SPA:
|
|
|
|
```json
|
|
{
|
|
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
|
|
}
|
|
```
|
|
|
|
### Conversão de Word/ODT/Excel para PDF Não Funciona
|
|
|
|
As conversões do LibreOffice WASM exigem `SharedArrayBuffer`, que precisa destes cabeçalhos de resposta em todas as páginas:
|
|
|
|
- `Cross-Origin-Embedder-Policy: require-corp`
|
|
- `Cross-Origin-Opener-Policy: same-origin`
|
|
|
|
Os arquivos pré-comprimidos `.wasm.gz` e `.data.gz` também precisam de `Content-Encoding: gzip` para que o navegador os descompacte.
|
|
|
|
Adicione isto ao seu `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" }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Para verificar, abra o Console do DevTools e execute `console.log(window.crossOriginIsolated)`. Deve retornar `true`.
|