mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-05 20:02:47 +01:00
123 lines
3.8 KiB
Markdown
123 lines
3.8 KiB
Markdown
# Implementeren op Vercel
|
|
|
|
[Vercel](https://vercel.com) biedt de eenvoudigste implementatie-ervaring voor statische sites.
|
|
|
|
## Implementeren met één klik
|
|
|
|
[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
|
|
|
|
## Handmatig implementeren
|
|
|
|
### Stap 1: Fork de repository
|
|
|
|
Fork [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) naar je GitHub-account.
|
|
|
|
### Stap 2: Importeren in Vercel
|
|
|
|
1. Ga naar [vercel.com/new](https://vercel.com/new)
|
|
2. Selecteer je geforkte repository
|
|
3. Configureer het project:
|
|
|
|
| Instelling | Waarde |
|
|
| ---------------- | --------------- |
|
|
| Framework Preset | Vite |
|
|
| Build Command | `npm run build` |
|
|
| Output Directory | `dist` |
|
|
| Install Command | `npm install` |
|
|
|
|
### Stap 3: Omgevingsvariabelen (optioneel)
|
|
|
|
Voeg deze toe indien nodig:
|
|
|
|
| Variabele | Beschrijving |
|
|
| ----------------------- | ------------------------------------------------------------------------ |
|
|
| `SIMPLE_MODE` | Stel in op `true` voor een minimale interface |
|
|
| `VITE_BRAND_NAME` | Eigen merknaam (vervangt "BentoPDF") |
|
|
| `VITE_BRAND_LOGO` | Logopad relatief ten opzichte van `public/` (bijv. `images/my-logo.svg`) |
|
|
| `VITE_FOOTER_TEXT` | Eigen footer-/copyrighttekst |
|
|
| `VITE_DEFAULT_LANGUAGE` | Standaardtaal van de interface (bijv. `fr`, `de`, `es`) |
|
|
|
|
### Stap 4: Implementeren
|
|
|
|
Klik op "Deploy" en wacht tot de build klaar is.
|
|
|
|
## Eigen domein
|
|
|
|
1. Ga naar de projectinstellingen
|
|
2. Ga naar "Domains"
|
|
3. Voeg je eigen domein toe
|
|
4. Configureer DNS zoals aangegeven
|
|
|
|
## Beperkingen
|
|
|
|
::: warning Grote bestanden
|
|
De serverless functions van Vercel hebben een limiet van 50 MB. Omdat BentoPDF een statische site is, zou dit je niet moeten raken, maar WASM-modules zijn groot (~100 MB in totaal). Zorg dat ze worden aangeboden vanuit de map `/public`.
|
|
:::
|
|
|
|
## Probleemoplossing
|
|
|
|
### Build-timeout
|
|
|
|
Als builds een timeout geven, probeer dan:
|
|
|
|
```json
|
|
// vercel.json
|
|
{
|
|
"buildCommand": "npm run build",
|
|
"outputDirectory": "dist"
|
|
}
|
|
```
|
|
|
|
### 404 bij vernieuwen
|
|
|
|
Voeg een `vercel.json` toe voor SPA-routing:
|
|
|
|
```json
|
|
{
|
|
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
|
|
}
|
|
```
|
|
|
|
### Word/ODT/Excel naar PDF werkt niet
|
|
|
|
LibreOffice WASM-conversies vereisen `SharedArrayBuffer`, waarvoor deze responsheaders op alle pagina's nodig zijn:
|
|
|
|
- `Cross-Origin-Embedder-Policy: require-corp`
|
|
- `Cross-Origin-Opener-Policy: same-origin`
|
|
|
|
De vooraf gecomprimeerde bestanden `.wasm.gz` en `.data.gz` hebben ook `Content-Encoding: gzip` nodig, zodat de browser ze decomprimeert.
|
|
|
|
Voeg deze toe aan je `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" }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Controleer dit door de DevTools-console te openen en `console.log(window.crossOriginIsolated)` uit te voeren: het moet `true` teruggeven.
|