İçeriğe geç

Netlify'a Dağıtım ​

Netlify, cömert bir ücretsiz katmanla mükemmel statik site barındırma sunar.

Tek Tıkla Dağıtım ​

Deploy to Netlify

Elle Dağıtım ​

Adım 1: Depoyu Bağlayın ​

  1. Netlify'a giriş yapın
  2. "Add new site" → "Import an existing project" seçeneğine tıklayın
  3. GitHub hesabınızı bağlayın
  4. BentoPDF fork'unuzu seçin

Adım 2: Derleme Ayarlarını Yapılandırın ​

AyarDeğer
Derleme komutunpm run build
Yayın dizinidist
Node sürümü18+

Adım 3: Dağıtın ​

"Deploy site"a tıklayın ve derlemenin bitmesini bekleyin.

Yapılandırma Dosyası ​

Proje kök dizininizde netlify.toml oluşturun:

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

Önemli

Cross-Origin-Embedder-Policy ve Cross-Origin-Opener-Policy başlıkları Word/ODT/Excel/PowerPoint'ten PDF'ye dönüştürmeler için gereklidir. Bunlar olmadan SharedArrayBuffer kullanılamaz ve LibreOffice WASM motoru başlatılamaz.

.wasm.gz ve .data.gz dosyalarındaki Content-Encoding: gzip başlıkları, tarayıcıya bunları otomatik olarak açmasını söyler. Bunlar olmadan tarayıcı ham gzip baytlarını alır ve WASM derlemesi başarısız olur.

Ortam Değişkenleri ​

Bunları Site settings → Environment variables bölümünde ayarlayın:

DeğişkenAçıklama
SIMPLE_MODEAsgari derleme için true yapın
VITE_BRAND_NAMEÖzel marka adı ("BentoPDF" yerine geçer)
VITE_BRAND_LOGOpublic/ dizinine göre logo yolu (örn. images/my-logo.svg)
VITE_FOOTER_TEXTÖzel alt bilgi/telif hakkı metni
VITE_DEFAULT_LANGUAGEVarsayılan arayüz dili (örn. fr, de, es)

Özel Alan Adı ​

  1. Site settings → Domain management bölümüne gidin
  2. "Add custom domain"e tıklayın
  3. DNS yapılandırma yönergelerini izleyin

Büyük Medya ​

Büyük WASM dosyaları için Netlify Large Media özelliğini etkinleştirmeyi düşünebilirsiniz:

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

Sorun Giderme ​

Word/ODT/Excel'den PDF'ye Dönüştürme %55'te Takılıyor ​

Belge dönüştürmeleri %55'te takılırsa DevTools Konsolu'nu açıp şunları kontrol edin:

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

crossOriginIsolated değeri false ise, netlify.toml dosyanızdaki COEP/COOP başlıkları uygulanmıyor demektir. Dosyanın proje kök dizininizde olduğundan emin olun ve yeniden dağıtın.

Konsolda expected magic word 00 61 73 6d, found 1f 8b 08 08 görüyorsanız, .wasm.gz dosyalarında Content-Encoding: gzip başlıkları eksiktir. soffice.wasm.gz ve soffice.data.gz için [[headers]] bloklarının netlify.toml dosyanızda olduğundan emin olun.

Derleme Başarısız Oluyor ​

Node sürümü uyumluluğunu kontrol edin:

toml
[build.environment]
  NODE_VERSION = "20"

Yavaş İlk Yükleme ​

Site settings → Build & deploy → Asset optimization bölümünde varlık optimizasyonunu etkinleştirin.

AGPL-3.0 ve Ticari Lisans ile çift lisanslıdır.