Preskočiť na obsah

Nasadenie na Netlify ​

Netlify ponúka výborný hosting statických webov so štedrým bezplatným plánom.

Nasadenie jedným kliknutím ​

Nasadiť na Netlify

Ručné nasadenie ​

Krok 1: Pripojte repozitár ​

  1. Prihláste sa do Netlify
  2. Kliknite na „Add new site“ → „Import an existing project“
  3. Pripojte svoj účet GitHub
  4. Vyberte svoj fork BentoPDF

Krok 2: Nakonfigurujte nastavenia zostavenia ​

NastavenieHodnota
Príkaz zostavenianpm run build
Publikačný adresárdist
Verzia Node18+

Krok 3: Nasaďte ​

Kliknite na „Deploy site“ a počkajte na zostavenie.

Konfiguračný súbor ​

V koreňovom adresári projektu vytvorte netlify.toml:

toml
[build]
  command = "npm run build"
  publish = "dist"

[build.environment]
  NODE_VERSION = "18"

# Required security headers for SharedArrayBuffer (used by LibreOffice WASM)
[[headers]]
  for = "/*"
  [headers.values]
    Cross-Origin-Embedder-Policy = "require-corp"
    Cross-Origin-Opener-Policy = "same-origin"
    Cross-Origin-Resource-Policy = "cross-origin"

# Pre-compressed LibreOffice WASM binary - must be served with Content-Encoding
[[headers]]
  for = "/libreoffice-wasm/soffice.wasm.gz"
  [headers.values]
    Content-Type = "application/wasm"
    Content-Encoding = "gzip"
    Cache-Control = "public, max-age=31536000, immutable"

# Pre-compressed LibreOffice WASM data - must be served with Content-Encoding
[[headers]]
  for = "/libreoffice-wasm/soffice.data.gz"
  [headers.values]
    Content-Type = "application/octet-stream"
    Content-Encoding = "gzip"
    Cache-Control = "public, max-age=31536000, immutable"

# Cache other WASM files
[[headers]]
  for = "*.wasm"
  [headers.values]
    Cache-Control = "public, max-age=31536000, immutable"
    Content-Type = "application/wasm"

# SPA routing
[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

Dôležité

Hlavičky Cross-Origin-Embedder-Policy a Cross-Origin-Opener-Policy sú potrebné pre konverzie Word/ODT/Excel/PowerPoint do PDF. Bez nich nie je SharedArrayBuffer dostupný a engine LibreOffice WASM sa nepodarí inicializovať.

Hlavičky Content-Encoding: gzip pri súboroch .wasm.gz a .data.gz hovoria prehliadaču, aby ich automaticky dekomprimoval. Bez nich prehliadač dostane surové gzip bajty a kompilácia WASM zlyhá.

Premenné prostredia ​

Nastavte ich v Site settings → Environment variables:

PremennáPopis
SIMPLE_MODENastavte na true pre minimálne zostavenie
VITE_BRAND_NAMEVlastný názov značky (nahrádza „BentoPDF“)
VITE_BRAND_LOGOCesta k logu relatívne k public/ (napr. images/my-logo.svg)
VITE_FOOTER_TEXTVlastný text päty / autorských práv
VITE_DEFAULT_LANGUAGEPredvolený jazyk rozhrania (napr. fr, de, es)

Vlastná doména ​

  1. Prejdite do Site settings → Domain management
  2. Kliknite na „Add custom domain“
  3. Postupujte podľa pokynov na konfiguráciu DNS

Veľké médiá ​

Pre veľké WASM súbory zvážte zapnutie Netlify Large Media:

bash
netlify lm:setup
git lfs track "*.wasm"

Riešenie problémov ​

Konverzia Word/ODT/Excel do PDF sa zasekne na 55 % ​

Ak sa konverzie dokumentov zaseknú na 55 %, otvorte konzolu DevTools a skontrolujte:

js
console.log(window.crossOriginIsolated); // should be true
console.log(typeof SharedArrayBuffer); // should be "function"

Ak je crossOriginIsolated false, hlavičky COEP/COOP z vášho netlify.toml sa neuplatňujú. Uistite sa, že súbor je v koreňovom adresári projektu, a nasaďte znova.

Ak v konzole vidíte expected magic word 00 61 73 6d, found 1f 8b 08 08, súborom .wasm.gz chýbajú hlavičky Content-Encoding: gzip. Uistite sa, že bloky [[headers]] pre soffice.wasm.gz a soffice.data.gz sú vo vašom netlify.toml.

Zostavenie zlyhá ​

Skontrolujte kompatibilitu verzie Node:

toml
[build.environment]
  NODE_VERSION = "20"

Pomalé prvé načítanie ​

Zapnite optimalizáciu zdrojov v Site settings → Build & deploy → Asset optimization.

Duálne licencovaný pod AGPL-3.0 a komerčnou licenciou.