Files

3.7 KiB

Wdrożenie na Vercel

Vercel oferuje najprostszy sposób wdrażania statycznych stron.

Wdrożenie jednym kliknięciem

Deploy with Vercel

Wdrożenie ręczne

Krok 1: Zrób fork repozytorium

Zrób fork bentopdf/bentopdf na swoje konto GitHub.

Krok 2: Zaimportuj do Vercel

  1. Przejdź do vercel.com/new
  2. Wybierz swój fork repozytorium
  3. Skonfiguruj projekt:
Ustawienie Wartość
Framework Preset Vite
Build Command npm run build
Output Directory dist
Install Command npm install

Krok 3: Zmienne środowiskowe (opcjonalnie)

Dodaj je, jeśli są potrzebne:

Zmienna Opis
SIMPLE_MODE Ustaw na true dla minimalnego interfejsu
VITE_BRAND_NAME Własna nazwa marki (zastępuje "BentoPDF")
VITE_BRAND_LOGO Ścieżka do logo względem public/ (np. images/my-logo.svg)
VITE_FOOTER_TEXT Własny tekst stopki/praw autorskich
VITE_DEFAULT_LANGUAGE Domyślny język interfejsu (np. fr, de, es)

Krok 4: Wdróż

Kliknij "Deploy" i poczekaj na zakończenie budowania.

Własna domena

  1. Przejdź do ustawień projektu
  2. Otwórz "Domains"
  3. Dodaj swoją domenę
  4. Skonfiguruj DNS zgodnie z instrukcjami

Ograniczenia

::: warning Duże pliki Funkcje serverless Vercel mają limit 50 MB. Ponieważ BentoPDF jest statyczną stroną, nie powinno to na Ciebie wpłynąć, ale moduły WASM są duże (łącznie ok. 100 MB). Upewnij się, że są serwowane z folderu /public. :::

Rozwiązywanie problemów

Przekroczenie czasu budowania

Jeśli budowanie przekracza limit czasu, spróbuj:

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

Błąd 404 po odświeżeniu

Dodaj plik vercel.json dla routingu SPA:

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

Konwersja Word/ODT/Excel na PDF nie działa

Konwersje LibreOffice WASM wymagają SharedArrayBuffer, a to wymaga tych nagłówków odpowiedzi na wszystkich stronach:

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

Wstępnie skompresowane pliki .wasm.gz i .data.gz potrzebują też nagłówka Content-Encoding: gzip, aby przeglądarka je rozpakowała.

Dodaj je do swojego 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" }
      ]
    }
  ]
}

Aby to zweryfikować, otwórz konsolę DevTools i uruchom console.log(window.crossOriginIsolated). Powinno zwrócić true.