Перейти до вмісту

Розгортання у Vercel ​

Vercel пропонує найпростіше розгортання статичних сайтів.

Розгортання в один клік ​

Deploy with Vercel

Ручне розгортання ​

Крок 1: Створіть форк репозиторію ​

Створіть форк bentopdf/bentopdf у своєму акаунті GitHub.

Крок 2: Імпортуйте у Vercel ​

  1. Перейдіть на vercel.com/new
  2. Виберіть свій форк репозиторію
  3. Налаштуйте проєкт:
ПараметрЗначення
Framework PresetVite
Build Commandnpm run build
Output Directorydist
Install Commandnpm install

Крок 3: Змінні середовища (необов’язково) ​

Додайте їх за потреби:

ЗміннаОпис
SIMPLE_MODEВстановіть true для мінімального інтерфейсу
VITE_BRAND_NAMEВласна назва бренду (замінює "BentoPDF")
VITE_BRAND_LOGOШлях до логотипа відносно public/ (наприклад, images/my-logo.svg)
VITE_FOOTER_TEXTВласний текст футера/авторських прав
VITE_DEFAULT_LANGUAGEМова інтерфейсу за замовчуванням (наприклад, fr, de, es)

Крок 4: Розгортання ​

Натисніть "Deploy" і дочекайтеся завершення збірки.

Власний домен ​

  1. Перейдіть до налаштувань проєкту
  2. Відкрийте "Domains"
  3. Додайте свій домен
  4. Налаштуйте DNS відповідно до інструкцій

Обмеження ​

Великі файли

Серверні функції Vercel мають ліміт 50 МБ. Оскільки BentoPDF є статичним сайтом, це не повинно вплинути на вас, але модулі WASM великі (загалом ~100 МБ). Переконайтеся, що вони віддаються з папки /public.

Усунення неполадок ​

Тайм-аут збірки ​

Якщо збірка завершується за тайм-аутом, спробуйте:

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

Помилка 404 після оновлення сторінки ​

Додайте vercel.json для маршрутизації SPA:

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

Не працює перетворення Word/ODT/Excel у PDF ​

Перетворення через LibreOffice WASM потребують SharedArrayBuffer, для якого на всіх сторінках потрібні такі заголовки відповіді:

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

Попередньо стиснуті файли .wasm.gz і .data.gz також потребують Content-Encoding: gzip, щоб браузер їх розпакував.

Додайте це до свого 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" }
      ]
    }
  ]
}

Щоб перевірити, відкрийте консоль DevTools і виконайте console.log(window.crossOriginIsolated): має повернутися true.

Подвійне ліцензування: AGPL-3.0 і комерційна ліцензія.