Files
bentopdf/docs/ru/self-hosting/vercel.md
T

123 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Развертывание в Vercel
[Vercel](https://vercel.com) предлагает самый простой способ развертывания статических сайтов.
## Развертывание в один клик
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
## Ручное развертывание
### Шаг 1: Сделайте форк репозитория
Сделайте форк [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) в свой аккаунт GitHub.
### Шаг 2: Импортируйте в Vercel
1. Перейдите на [vercel.com/new](https://vercel.com/new)
2. Выберите свой форк репозитория
3. Настройте проект:
| Параметр | Значение |
| ---------------- | --------------- |
| Framework Preset | Vite |
| Build Command | `npm run build` |
| Output Directory | `dist` |
| Install Command | `npm 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 по инструкции
## Ограничения
::: warning Большие файлы
У serverless-функций 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`.