Перайсці да зместу

Разгортванне на Cloudflare Pages ​

Cloudflare Pages прапануе хуткі глабальны хостынг статычных сайтаў з неабмежаванай прапускной здольнасцю.

Хуткае разгортванне ​

  1. Перайдзіце ў Cloudflare Pages
  2. Націсніце "Create a project"
  3. Падключыце ваш рэпазіторый GitHub

Канфігурацыя зборкі ​

ПараметрЗначэнне
Framework presetNone
Каманда зборкіnpm run build
Каталог вываду зборкіdist
Каранёвы каталог/

Зменныя асяроддзя ​

Дадайце іх у Settings → Environment variables:

ЗменнаяЗначэнне
NODE_VERSION18
SIMPLE_MODEfalse (неабавязкова)
VITE_BRAND_NAMEУласная назва брэнда (неабавязкова)
VITE_BRAND_LOGOШлях да лагатыпа адносна public/ (неабавязкова)
VITE_FOOTER_TEXTУласны тэкст футэра/аўтарскіх правоў (неабавязкова)
VITE_DEFAULT_LANGUAGEМова інтэрфейсу па змаўчанні, напрыклад fr (неабавязкова)

Файл канфігурацыі ​

Стварыце _headers у тэчцы public:

# Required security headers for SharedArrayBuffer (used by LibreOffice WASM)
/*
  Cross-Origin-Embedder-Policy: require-corp
  Cross-Origin-Opener-Policy: same-origin
  Cross-Origin-Resource-Policy: cross-origin

# Pre-compressed LibreOffice WASM binary
/libreoffice-wasm/soffice.wasm.gz
  Content-Type: application/wasm
  Content-Encoding: gzip
  Cache-Control: public, max-age=31536000, immutable

# Pre-compressed LibreOffice WASM data
/libreoffice-wasm/soffice.data.gz
  Content-Type: application/octet-stream
  Content-Encoding: gzip
  Cache-Control: public, max-age=31536000, immutable

# Cache WASM files aggressively
/*.wasm
  Cache-Control: public, max-age=31536000, immutable
  Content-Type: application/wasm

# Service worker
/sw.js
  Cache-Control: no-cache

Важна

Загалоўкі Cross-Origin-Embedder-Policy і Cross-Origin-Opener-Policy абавязковыя для канвертацыі Word/ODT/Excel/PowerPoint у PDF. Без іх SharedArrayBuffer недаступны, і рухавік LibreOffice WASM не здолее ініцыялізавацца.

Стварыце _redirects для SPA-маршрутызацыі:

/*    /index.html   200

Уласны дамен ​

  1. Перайдзіце ў ваш праект Pages
  2. Націсніце "Custom domains"
  3. Дадайце ваш дамен
  4. Cloudflare аўтаматычна наладзіць DNS, калі дамен знаходзіцца ў Cloudflare

Перавагі ​

  • Бясплатная неабмежаваная прапускная здольнасць
  • Глабальны CDN з 300+ пагранічнымі вузламі
  • Аўтаматычны HTTPS
  • Папярэднія разгортванні для pull request
  • Хуткія зборкі

Вырашэнне праблем ​

Загрузка вялікіх файлаў ​

Cloudflare Pages падтрымлівае файлы да 25 MB. З модулямі WASM праблем быць не павінна, але калі вы ўпраецеся ў ліміты, паспрабуйце:

bash
# Split large files during build
npm run build

Ліміты памеру Worker ​

Калі вы выкарыстоўваеце Cloudflare Workers для пашыранай маршрутызацыі, улічвайце ліміт 1 MB на бясплатных планах.

CORS-проксі Worker (для лічбавых подпісаў) ​

Інструменту лічбавага подпісу патрэбны CORS-проксі, каб атрымліваць ланцужкі сертыфікатаў. Разгарніце ўключаны worker:

bash
cd cloudflare
npx wrangler login
npx wrangler deploy

Функцыі бяспекі ​

ФункцыяАпісанне
Абмежаванні URLДазволены толькі URL сертыфікатаў
Ліміт памеру файлаМаксімум 10MB на запыт
Абмежаванне частаты60 запытаў/IP/хв (патрабуе KV)
Блакіроўка прыватных IPБлакіруе localhost і ўнутраныя IP

Уключэнне абмежавання частаты ​

bash
# Create KV namespace
npx wrangler kv namespace create "RATE_LIMIT_KV"

# Add to wrangler.toml with returned ID:
# [[kv_namespaces]]
# binding = "RATE_LIMIT_KV"
# id = "YOUR_ID"

npx wrangler deploy

Зборка з URL проксі ​

bash
VITE_CORS_PROXY_URL=https://your-worker.workers.dev npm run build

Або з Docker:

bash
export VITE_CORS_PROXY_URL="https://your-worker.workers.dev"
DOCKER_BUILDKIT=1 docker build \
  --secret id=VITE_CORS_PROXY_URL,env=VITE_CORS_PROXY_URL \
  -t your-bentopdf .

Заўвага: наладка подпісу HMAC апісана ў README.

Двайная ліцэнзія: AGPL-3.0 і камерцыйная ліцэнзія.