26 KiB
Príručka pre vlastný hosting
BentoPDF môžete hostovať na vlastnej infraštruktúre. Táto príručka pokrýva rôzne možnosti nasadenia.
Rýchly štart s Docker / Podman
Najrýchlejší spôsob, ako hostovať BentoPDF vo vlastnej réžii:
Tip
BentoPDF sa dodáva v dvoch zostaveniach:
- Zostavenie Self-Hosted:
ghcr.io/alam00000/bentopdf-simple:latest. Všetky PDF nástroje, bez marketingových prvkov (bez úvodnej sekcie, FAQ, referencií a päty). Použite ho pre interné, tímové a organizačné nasadenia. Nie je to funkčne obmedzená verzia „lite“.- Komerčné zostavenie:
ghcr.io/alam00000/bentopdf:latest. Kompletný marketingový web, ktorý používa samotný bentopdf.com a držitelia komerčnej licencie pri verejných nasadeniach.Ak si nie ste istí, stiahnite zostavenie Self-Hosted.
Important
Konverzia súborov Office vyžaduje
SharedArrayBuffer, čo znamená, že aplikácia musí byť izolovaná z hľadiska cross-origin a zároveň poskytovaná zo zabezpečeného kontextu. Oficiálny obraz už posiela potrebné hlavičky COOP/COEP, prehliadače všakSharedArrayBufferstále vypínajú na obyčajných HTTP pôvodoch v lokálnej sieti, ako jehttp://192.168.x.x.
http://localhostpoužívajte len na testovanie na tom istom zariadení. Ak používatelia pristupujú k BentoPDF cez IP adresu alebo názov hostiteľa v LAN, zabezpečte ho cez HTTPS.
# Docker
docker run -d -p 3000:8080 ghcr.io/alam00000/bentopdf-simple:latest
# Podman
podman run -d -p 3000:8080 ghcr.io/alam00000/bentopdf-simple:latest
Alebo pomocou Docker Compose / Podman Compose:
# docker-compose.yml
services:
bentopdf:
image: ghcr.io/alam00000/bentopdf-simple:latest
ports:
- '3000:8080'
restart: unless-stopped
# Docker Compose
docker compose up -d
# Podman Compose
podman-compose up -d
Podman Quadlet (Linux Systemd)
Spustite BentoPDF ako službu systemd. Vytvorte ~/.config/containers/systemd/bentopdf.container:
[Container]
Image=ghcr.io/alam00000/bentopdf-simple:latest
ContainerName=bentopdf
PublishPort=3000:8080
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now bentopdf
Kompletnú dokumentáciu ku Quadlet nájdete v príručke nasadenia Docker.
Zostavenie zo zdrojového kódu
# Clone and build
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
npm install
npm run build
# The built files are in the `dist` folder
Možnosti konfigurácie
Zostavenie Self-Hosted (Simple Mode)
Zostavenie Self-Hosted (obraz bentopdf-simple, nazývaný aj Simple Mode) je funkčne identické s komerčným zostavením: obsahuje všetky PDF nástroje a tie sa správajú rovnako. Iba skrýva marketingové prvky, ktoré dávajú zmysel len na samotnom bentopdf.com alebo pri komerčnom verejnom nasadení. Nie je to funkčne obmedzená ani „lite“ verzia.
Čo zostavenie Self-Hosted skrýva (len kozmetické zmeny, žiadne PDF funkcie sa neodstraňujú):
- Navigačnú lištu, úvodnú sekciu, sekciu funkcií, FAQ, referencie, pätu
- Mení titulok stránky na „Nástroje PDF“
Čo zostavenie Self-Hosted zachováva (všetko, čo skutočne pracuje s PDF):
- Všetky PDF nástroje (spájanie, rozdeľovanie, úpravy, podpisovanie, OCR, konverzia Office atď.)
- Podporu vlastnej značky, všetku konfiguráciu pri zostavení aj za behu
Komerčné zostavenie (ghcr.io/alam00000/bentopdf:latest) poháňa samotný bentopdf.com a používajú ho držitelia komerčnej licencie pri verejných nasadeniach. Pridáva úvodnú sekciu, FAQ, referencie a pätu, ktoré by pri internom nástroji nedávali zmysel.
Ak hostujete BentoPDF pre svoj tím, organizáciu alebo ako interný nástroj, stiahnite zostavenie Self-Hosted:
# Use the pre-built image (recommended)
docker run -p 3000:8080 ghcr.io/alam00000/bentopdf-simple:latest
# Or build it yourself
SIMPLE_MODE=true npm run build
Všetky podrobnosti nájdete v SIMPLE_MODE.md.
Komerčné zostavenie (verejné nasadenia pod vlastnou značkou)
Komerčné zostavenie (obraz bentopdf, bez prípony -simple) poháňa samotný bentopdf.com. Okrem všetkých PDF nástrojov obsahuje kompletný marketingový web (úvodná sekcia, funkcie, FAQ, referencie, päta). Toto zostavenie použite, keď chcete nasadiť BentoPDF ako verejnú PDF službu pod vlastnou značkou, napríklad:
- Prevádzkujete BentoPDF ako hostovanú SaaS službu pre koncových používateľov na vlastnej doméne
- Chcete zážitok úvodnej stránky (marketingové sekcie + nástroje), nie len samotné nástroje
- Ste držiteľom komerčnej licencie a integrujete BentoPDF do komerčného produktu
Spustenie bez úprav (so značkou BentoPDF, užitočné na náhľad zostavenia):
docker run -p 3000:8080 ghcr.io/alam00000/bentopdf:latest
Zostavenie s vlastnou značkou (typický komerčný postup):
docker build \
--build-arg VITE_BRAND_NAME="AcmePDF" \
--build-arg VITE_BRAND_LOGO="images/acme-logo.svg" \
--build-arg VITE_FOOTER_TEXT="© 2026 Acme Corp. All rights reserved." \
-t acmepdf .
docker run -p 3000:8080 acmepdf
Všetky ostatné možnosti pri zostavení (BASE_URL, VITE_DEFAULT_LANGUAGE, DISABLE_TOOLS, prepísanie URL pre WASM atď.) fungujú rovnako ako pri zostavení Self-Hosted.
::: warning Licencovanie Prevádzka komerčného zostavenia je povolená v rámci ktorejkoľvek z dvoch licenčných možností BentoPDF:
- AGPL-3.0 (zadarmo): povolené, ak vaše nasadenie zverejní celý svoj zdrojový kód pod AGPL vrátane všetkých úprav značky a súvisiacej obchodnej logiky.
- Komerčná licencia (79 $ doživotne): potrebná pre uzavreté / proprietárne nasadenia, kde nezverejňujete svoj fork so značkou ani obchodný kód.
Úplné porovnanie nájdete na stránke licencovania. WASM moduly pod licenciou AGPL (PyMuPDF, Ghostscript, CoherentPDF) sa načítavajú z CDN za behu, takže sa nedostanú do vášho obrazu a nemenia vašu licenčnú pozíciu. :::
Základná URL
Nasadenie do podadresára:
BASE_URL=/pdf-tools/ npm run build
Vlastná značka
Pri zostavení nahraďte predvolené logo, názov a text päty BentoPDF vlastnými:
| Premenná | Popis | Predvolené |
|---|---|---|
VITE_BRAND_NAME |
Názov značky v hlavičke a päte | BentoPDF |
VITE_BRAND_LOGO |
Cesta k logu relatívne k public/ |
images/favicon-no-bg.svg |
VITE_FOOTER_TEXT |
Vlastný text päty / autorských práv | © 2026 BentoPDF. All rights reserved. |
# Place your logo in public/, then build
VITE_BRAND_NAME="AcmePDF" \
VITE_BRAND_LOGO="images/acme-logo.svg" \
VITE_FOOTER_TEXT="© 2026 Acme Corp. Internal use only." \
npm run build
Alebo cez Docker:
docker build \
--build-arg VITE_BRAND_NAME="AcmePDF" \
--build-arg VITE_BRAND_LOGO="images/acme-logo.svg" \
--build-arg VITE_FOOTER_TEXT="© 2026 Acme Corp. Internal use only." \
-t acmepdf .
Vlastná značka funguje v plnom režime aj v Simple Mode a dá sa kombinovať so všetkými ostatnými možnosťami pri zostavení (BASE_URL, SIMPLE_MODE, VITE_DEFAULT_LANGUAGE).
Vypnutie konkrétnych nástrojov
Skryte jednotlivé nástroje z dôvodu súladu s predpismi alebo bezpečnosti. Vypnuté nástroje sa odstránia z domovskej stránky, vyhľadávania, skratiek, nástroja na tvorbu workflow aj z priameho prístupu cez URL.
ID nástroja je URL stránky bez .html: otvorte ľubovoľný nástroj a pozrite sa na URL (napr. edit-pdf, sign-pdf, encrypt-pdf).
Pri zostavení (zapečené do balíka):
DISABLE_TOOLS="edit-pdf,sign-pdf" npm run build
Za behu (bez nového zostavenia, stačí pripojiť config.json):
{
"disabledTools": ["edit-pdf", "sign-pdf"]
}
docker run -d -p 3000:8080 \
-v ./config.json:/usr/share/nginx/html/config.json:ro \
ghcr.io/alam00000/bentopdf-simple:latest
Obe metódy sa dajú kombinovať, zoznamy sa zlúčia.
V PDF editore môžete vypnúť aj konkrétne funkcie (napr. redigovanie) bez vypnutia celého nástroja, a to pridaním editorDisabledCategories do config.json. Úplný zoznam kategórií nájdete v príručke Docker.
Príručky nasadenia
Vyberte si platformu:
- Vercel
- Netlify
- Cloudflare Pages
- AWS S3 + CloudFront
- Hostinger
- Nginx
- Apache
- Docker
- Kubernetes
- CORS proxy - Potrebný pre digitálne podpisy
Časté problémy
Konverzia Word / ODT / Excel / PowerPoint do PDF zamrzne (SharedArrayBuffer nie je dostupný)
Príznak: Konverzie dokumentov založené na LibreOffice (Word, ODT, Excel, PowerPoint do PDF) zamrznú na ~55 % alebo sa vôbec nespustia. Konzola prehliadača môže zobraziť:
ReferenceError: SharedArrayBuffer is not defined
…alebo window.crossOriginIsolated hlási false, alebo kompilácia WASM hlási expected magic word 00 61 73 6d, found 1f 8b 08 08.
Príčina: LibreOffice WASM vyžaduje SharedArrayBuffer, ktorý prehliadač povolí, len keď je stránka izolovaná z hľadiska cross-origin A ZÁROVEŇ poskytovaná zo zabezpečeného kontextu. Musia teda platiť dve veci:
- Každá odpoveď obsahuje obe hlavičky:
Cross-Origin-Embedder-Policy: require-corpCross-Origin-Opener-Policy: same-origin
- Stránka sa poskytuje z
https://...alebohttp://localhost. Obyčajné HTTP na IP adrese v LAN (napr.http://192.168.x.x) sa NEPOVAŽUJE za zabezpečené, prehliadače tamSharedArrayBuffervypínajú.
Nezhoda 00 61 73 6d / 1f 8b 08 08 je samostatný čiastkový príznak: vopred skomprimovaným súborom .wasm.gz / .data.gz chýba hlavička odpovede Content-Encoding: gzip, takže prehliadač dostane surové gzip bajty namiesto dekomprimovaného WASM.
Riešenie: presnú konfiguráciu nájdete v príručke nasadenia pre vašu platformu:
- Nginx →
- Apache →
- AWS S3 + CloudFront →
- Cloudflare Pages → (súbor
_headers) - Netlify → (
netlify.toml) - Vercel → (
vercel.json) - Hostinger → (
.htaccess) - Kubernetes →
- Docker: rieši sa automaticky pribalenou konfiguráciou nginx, nie je potrebný žiadny zásah.
Overenie: otvorte konzolu DevTools na ľubovoľnej stránke BentoPDF a spustite:
console.log(window.crossOriginIsolated); // should be true
console.log(typeof SharedArrayBuffer); // should be "function"
Ak je stránka na HTTPS alebo http://localhost A ZÁROVEŇ sú na každej odpovedi prítomné obe hlavičky COEP/COOP, obe kontroly prejdú. Ak ste na http://192.168.x.x alebo inom HTTP pôvode mimo loopback, zabezpečte ho cez HTTPS, riešenie len pomocou hlavičiek neexistuje.
Súbory .mjs sa poskytujú ako application/octet-stream
Príznak: Podpísať PDF / Vyplňovač formulárov / niektoré ďalšie nástroje zobrazia prázdny prehliadač alebo sa nenačítajú. Konzola prehliadača hlási:
Failed to load module script: The server responded with a non-JavaScript MIME type of "application/octet-stream". Strict MIME type checking is enforced for module scripts per HTML spec.
Príčina: Váš webový server alebo reverzný proxy nemá mapovanie MIME typu pre súbory .mjs (pribalený PDF prehliadač dodáva ES moduly s touto príponou). Mnohé štandardné konfigurácie serverov používajú pre neznáme prípony predvolene application/octet-stream a prehliadače ich odmietnu spustiť ako ES moduly.
Riešenie: presný úryvok nájdete v príručke nasadenia pre vašu platformu:
- Nginx →
- Apache →
- AWS S3 + CloudFront → (pozri
aws s3 cp ... --include "*.mjs") - Kubernetes →
- Docker, Vercel, Netlify, Cloudflare Pages, Hostinger: rieši sa automaticky, nie je potrebný žiadny zásah.
Overenie: otvorte DevTools → kartu Network, nájdite zlyhávajúcu požiadavku .mjs a skontrolujte hlavičku odpovede Content-Type. Mala by byť application/javascript. Ak je stále application/octet-stream, typ môže znova určovať vonkajší reverzný proxy alebo CDN, skontrolujte každú vrstvu v reťazci.
Konfigurácia WASM (komponenty AGPL)
BentoPDF nepribaľuje knižnice na spracovanie pod licenciou AGPL do svojho zdrojového kódu, ale má predkonfigurované URL adresy CDN, takže všetky funkcie fungujú hneď po inštalácii, bez ručného nastavovania.
::: tip Predvolene bez konfigurácie Od verzie v2.0.0 sú WASM moduly predkonfigurované tak, aby sa načítavali z CDN jsDelivr cez premenné prostredia. Všetky pokročilé funkcie fungujú okamžite bez akejkoľvek konfigurácie zo strany používateľa. :::
| Komponent | Licencia | Funkcie |
|---|---|---|
| PyMuPDF | AGPL-3.0 | Konverzia EPUB/MOBI/FB2/XPS, extrakcia obrázkov, extrakcia tabuliek |
| Ghostscript | AGPL-3.0 | Konverzia do PDF/A, kompresia, vyrovnanie, rasterizácia |
| CoherentPDF | AGPL-3.0 | Obsah, prílohy, spájanie PDF so záložkami |
Predvolené premenné prostredia
Sú nastavené v .env.production a zapečené do zostavenia:
VITE_WASM_PYMUPDF_URL=https://cdn.jsdelivr.net/npm/@bentopdf/[email protected]/
VITE_WASM_GS_URL=https://cdn.jsdelivr.net/npm/@bentopdf/[email protected]/assets/
VITE_WASM_CPDF_URL=https://cdn.jsdelivr.net/npm/[email protected]/dist/
VITE_TESSERACT_WORKER_URL=
VITE_TESSERACT_CORE_URL=
VITE_TESSERACT_LANG_URL=
VITE_TESSERACT_AVAILABLE_LANGUAGES=
VITE_OCR_FONT_BASE_URL=
Prepísanie URL adries WASM
Pre vlastné nasadenia môžete predvolené hodnoty prepísať pri zostavení:
# Via Docker build args
docker build \
--build-arg VITE_WASM_PYMUPDF_URL=https://your-server.com/pymupdf/ \
--build-arg VITE_WASM_GS_URL=https://your-server.com/gs/ \
--build-arg VITE_WASM_CPDF_URL=https://your-server.com/cpdf/ \
--build-arg VITE_TESSERACT_WORKER_URL=https://your-server.com/ocr/worker.min.js \
--build-arg VITE_TESSERACT_CORE_URL=https://your-server.com/ocr/core \
--build-arg VITE_TESSERACT_LANG_URL=https://your-server.com/ocr/lang-data \
--build-arg VITE_TESSERACT_AVAILABLE_LANGUAGES=eng,deu \
--build-arg VITE_OCR_FONT_BASE_URL=https://your-server.com/ocr/fonts \
-t bentopdf .
# Or via .env.production before building from source
VITE_WASM_PYMUPDF_URL=https://your-server.com/pymupdf/ npm run build
Ak chcete modul úplne vypnúť (vyžaduje ručnú konfiguráciu používateľom v Pokročilých nastaveniach), nastavte jeho premennú na prázdny reťazec.
Pre OCR buď nechajte všetky premenné VITE_TESSERACT_* prázdne a ponechajte predvolené online zdroje, alebo nastavte URL pre worker/core/lang spolu pre vlastné hostované / offline OCR. Ak pribalíte len konkrétne jazyky OCR, nastavte aj VITE_TESSERACT_AVAILABLE_LANGUAGES na rovnaké kódy oddelené čiarkami, aby rozhranie ponúkalo len nainštalované jazyky a nepodporovaný výber zlyhal s popisnou chybou. Pre úplne offline výstup prehľadávateľného PDF nastavte aj VITE_OCR_FONT_BASE_URL na interný adresár, ktorý poskytuje pribalené OCR písma.
Používatelia môžu tieto predvolené hodnoty kedykoľvek prepísať aj v Pokročilých nastaveniach v rozhraní: používateľské nastavenia uložené v prehliadači majú prednosť pred predvolenými hodnotami prostredia.
Nasadenie v izolovanej sieti (air-gapped) / offline
Pre siete bez prístupu na internet (štátna správa, zdravotníctvo, financie atď.). URL adresy WASM sa zapečú do JavaScriptu pri zostavení, samotné WASM súbory sťahuje prehliadač používateľa za behu. Preto musíte všetko pripraviť na počítači s internetom a potom to preniesť do izolovanej siete.
Automatizovaný skript (odporúčané)
Priložený skript prepare-airgap.sh automatizuje celý proces: stiahne WASM balíky, zostaví Docker obraz a vytvorí samostatný balík s inštalačným skriptom.
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
# Show supported OCR language codes (for --ocr-languages)
bash scripts/prepare-airgap.sh --list-ocr-languages
# Search OCR language codes by name or abbreviation
bash scripts/prepare-airgap.sh --search-ocr-language german
# Interactive mode — prompts for all options
bash scripts/prepare-airgap.sh
# Or fully automated
bash scripts/prepare-airgap.sh --wasm-base-url https://internal.example.com/wasm
Vznikne adresár s balíkom:
bentopdf-airgap-bundle/
bentopdf.tar # Docker image
*.tgz # WASM packages (PyMuPDF, Ghostscript, CoherentPDF, Tesseract)
tesseract-langdata/ # OCR traineddata files
ocr-fonts/ # OCR text-layer font files
setup.sh # Setup script for the air-gapped side
README.md # Instructions
Preneste balík do izolovanej siete cez USB, interný repozitár artefaktov alebo schválenou metódou. Potom spustite priložený inštalačný skript:
cd bentopdf-airgap-bundle
bash setup.sh
Inštalačný skript načíta Docker obraz, rozbalí WASM súbory a voliteľne spustí kontajner.
Možnosti skriptu:
| Prepínač | Popis | Predvolené |
|---|---|---|
--wasm-base-url <url> |
Kde budú WASM súbory interne hostované | (povinné, ak chýba, vyžiada sa) |
--image-name <name> |
Tag Docker obrazu | bentopdf |
--output-dir <path> |
Výstupný adresár balíka | ./bentopdf-airgap-bundle |
--simple-mode |
Zapnúť Simple Mode | vypnuté |
--base-url <path> |
Základná URL podadresára (napr. /pdf/) |
/ |
--language <code> |
Predvolený jazyk rozhrania (napr. fr, de) |
(žiadne) |
--brand-name <name> |
Vlastný názov značky | (žiadne) |
--brand-logo <path> |
Cesta k logu relatívne k public/ |
(žiadne) |
--footer-text <text> |
Vlastný text päty | (žiadne) |
--ocr-languages <list> |
Jazyky OCR na pribalenie, oddelené čiarkami | eng |
--list-ocr-languages |
Vypíše podporované kódy a názvy OCR a skončí | vypnuté |
--search-ocr-language <term> |
Vyhľadá kódy OCR podľa názvu alebo skratky | vypnuté |
--dockerfile <path> |
Použitý Dockerfile | Dockerfile |
--skip-docker |
Preskočiť zostavenie a export Docker obrazu | vypnuté |
--skip-wasm |
Preskočiť sťahovanie WASM (použiť existujúce .tgz) |
vypnuté |
Interaktívna výzva prijíma aj list na vypísanie celého zoznamu podporovaných kódov Tesseract a search <term> na hľadanie zhôd, napríklad search german alebo search chi.
::: warning Požiadavka na rovnaký pôvod
WASM súbory musia byť poskytované z rovnakého pôvodu ako aplikácia BentoPDF. Web Workers používajú importScripts(), ktorý nedokáže načítať skripty z iného pôvodu. Ak napríklad BentoPDF beží na https://internal.example.com, základná URL pre WASM by mala byť tiež https://internal.example.com/wasm.
:::
Ručný postup
Ak to chcete urobiť ručne bez skriptu
Krok 1: Stiahnite balíky WASM a OCR (na počítači s internetom)
npm pack @bentopdf/[email protected]
npm pack @bentopdf/gs-wasm
npm pack coherentpdf
npm pack [email protected]
npm pack [email protected]
mkdir -p tesseract-langdata
curl -fsSL https://cdn.jsdelivr.net/npm/@tesseract.js-data/eng/4.0.0_best_int/eng.traineddata.gz -o tesseract-langdata/eng.traineddata.gz
mkdir -p ocr-fonts
curl -fsSL https://raw.githack.com/googlefonts/noto-fonts/main/hinted/ttf/NotoSans/NotoSans-Regular.ttf -o ocr-fonts/NotoSans-Regular.ttf
Krok 2: Zostavte Docker obraz s internými URL adresami
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
docker build \
--build-arg VITE_WASM_PYMUPDF_URL=https://internal-server.example.com/wasm/pymupdf/ \
--build-arg VITE_WASM_GS_URL=https://internal-server.example.com/wasm/gs/ \
--build-arg VITE_WASM_CPDF_URL=https://internal-server.example.com/wasm/cpdf/ \
--build-arg VITE_TESSERACT_WORKER_URL=https://internal-server.example.com/wasm/ocr/worker.min.js \
--build-arg VITE_TESSERACT_CORE_URL=https://internal-server.example.com/wasm/ocr/core \
--build-arg VITE_TESSERACT_LANG_URL=https://internal-server.example.com/wasm/ocr/lang-data \
--build-arg VITE_OCR_FONT_BASE_URL=https://internal-server.example.com/wasm/ocr/fonts \
-t bentopdf .
Krok 3: Exportujte Docker obraz
docker save bentopdf -o bentopdf.tar
Krok 4: Preneste súbory do izolovanej siete
Skopírujte cez USB, interný repozitár artefaktov alebo schválenou metódou prenosu:
bentopdf.tar: Docker obraz- Päť balíkov WASM/OCR
.tgzz kroku 1 - Adresár
tesseract-langdata/z kroku 1 - Adresár
ocr-fonts/z kroku 1
Krok 5: Nastavenie v izolovanej sieti
# Load the Docker image
docker load -i bentopdf.tar
# Extract WASM packages
mkdir -p ./wasm/pymupdf ./wasm/gs ./wasm/cpdf ./wasm/ocr/core ./wasm/ocr/lang-data ./wasm/ocr/fonts
tar xzf bentopdf-pymupdf-wasm-0.11.14.tgz -C ./wasm/pymupdf --strip-components=1
tar xzf bentopdf-gs-wasm-*.tgz -C ./wasm/gs --strip-components=1
tar xzf coherentpdf-*.tgz -C ./wasm/cpdf --strip-components=1
TEMP_TESS=$(mktemp -d)
tar xzf tesseract.js-7.0.0.tgz -C "$TEMP_TESS"
cp "$TEMP_TESS/package/dist/worker.min.js" ./wasm/ocr/worker.min.js
rm -rf "$TEMP_TESS"
tar xzf tesseract.js-core-7.0.0.tgz -C ./wasm/ocr/core --strip-components=1
cp ./tesseract-langdata/*.traineddata.gz ./wasm/ocr/lang-data/
cp ./ocr-fonts/* ./wasm/ocr/fonts/
# Run BentoPDF
docker run -d -p 3000:8080 --restart unless-stopped bentopdf
Uistite sa, že súbory sú dostupné na URL adresách nastavených v kroku 2 vrátane .../ocr/worker.min.js, .../ocr/core, .../ocr/lang-data a .../ocr/fonts.
::: info Zostavujete zo zdrojového kódu namiesto Docker?
Pred spustením npm run build nastavte premenné v .env.production:
VITE_WASM_PYMUPDF_URL=https://internal-server.example.com/wasm/pymupdf/
VITE_WASM_GS_URL=https://internal-server.example.com/wasm/gs/
VITE_WASM_CPDF_URL=https://internal-server.example.com/wasm/cpdf/
VITE_TESSERACT_WORKER_URL=https://internal-server.example.com/wasm/ocr/worker.min.js
VITE_TESSERACT_CORE_URL=https://internal-server.example.com/wasm/ocr/core
VITE_TESSERACT_LANG_URL=https://internal-server.example.com/wasm/ocr/lang-data
VITE_OCR_FONT_BASE_URL=https://internal-server.example.com/wasm/ocr/fonts
:::
Hostovanie vlastného WASM proxy
Ak potrebujete poskytovať AGPL WASM súbory so správnymi hlavičkami CORS, môžete nasadiť jednoduchý proxy. Príklad implementácie nájdete v príručke Cloudflare WASM Proxy.
::: tip Prečo oddelene? Toto oddelenie zaručuje:
- Jasný súlad s licenciami pre komerčných používateľov
- Jadro BentoPDF zostáva pod duálnou licenciou (AGPL-3.0 / komerčná)
- WASM súbory sa načítavajú za behu, nie sú pribalené v zdrojovom kóde :::
Systémové požiadavky
| Požiadavka | Minimum |
|---|---|
| Úložisko | ~100 MB (jadro bez modulov AGPL) |
| RAM | 512 MB |
| CPU | Akýkoľvek moderný procesor |
::: tip BentoPDF je statický web, nepotrebuje žiadnu databázu ani backendový server! :::