# Konfigurace Vsechno se cte z environment variables. AppFactory je predava pres vygenerovany runtime `.env`. Zadna promenna neni povinna, sluzba nastartuje i bez nich. ## Aplikace | Promenna | Vychozi | Vyznam | |---|---|---| | `APP_NAME` | `html-to-pdf` | nazev v dokumentaci a v odpovedi /version | | `APP_VERSION` | `1.0.2` | verze | | `ROOT_PATH` | prazdne | prefix reverse proxy, napriklad `/apps/html-to-pdf` | | `BASE_PATH` | prazdne | pouzije se, kdyz `ROOT_PATH` neni nastavene | | `LOG_LEVEL` | `INFO` | uroven logovani | ## Fronta a joby | Promenna | Vychozi | Vyznam | |---|---|---| | `WORKERS` | `2` | pocet soubezne bezicich konverzi | | `QUEUE_MAX_SIZE` | `100` | kapacita fronty, pri prekroceni se vraci 503 | | `SYNC_TIMEOUT_SECONDS` | `60` | limit pro POST /convert | | `JOB_RESULT_TTL_SECONDS` | `3600` | jak dlouho je vysledek k dispozici ke stazeni | | `STORAGE_DIR` | `/tmp/html-to-pdf` | adresar pro docasne soubory | ## Enginy | Promenna | Vychozi | Vyznam | |---|---|---| | `DEFAULT_ENGINE` | `auto` | engine pouzity, kdyz ho request neuvede | | `CHROMIUM_ENABLED` | `true` | vypnuti Chromia usetri pamet, ale ztrati podporu JavaScriptu | | `CHROMIUM_RESTART_AFTER_JOBS` | `50` | po kolika jobech se prohlizec restartuje | ## Sit | Promenna | Vychozi | Vyznam | |---|---|---| | `FETCH_TIMEOUT_SECONDS` | `30` | timeout stazeni zdrojoveho dokumentu | | `ASSET_TIMEOUT_SECONDS` | `10` | vychozi timeout stazeni jednoho assetu | | `MAX_REDIRECTS` | `5` | maximalni pocet presmerovani | ## SSRF ochrana | Promenna | Vychozi | Vyznam | |---|---|---| | `SSRF_BLOCK_PRIVATE` | `true` | blokovat loopback, privatni a rezervovane rozsahy | | `SSRF_EXTRA_BLOCKED_CIDRS` | prazdne | dalsi blokovane rozsahy, oddelene carkou | | `SSRF_ALLOWED_HOSTS` | prazdne | hostnames, ktere kontrolou neprochazi | `SSRF_ALLOWED_HOSTS` je urcene pro vyjimky typu interniho generatoru HTML ve stejne siti. Kazdy zaznam obchazi celou kontrolu, pouzivat opatrne. Vypnuti `SSRF_BLOCK_PRIVATE` otevre sluzbe cestu do cele vnitrni site. Delat jen tam, kde to ma duvod. ## Limity Vsechny limity jsou ve vychozim stavu vypnute. Nula znamena bez limitu. Pri prekroceni se vraci explicitni chyba `limit_exceeded`, dokument se nikdy tise neorezava. | Promenna | Vychozi | Vyznam | |---|---|---| | `MAX_PAGES` | `0` | maximalni pocet stranek vysledku | | `MAX_HTML_BYTES` | `0` | maximalni velikost zdrojoveho HTML | | `MAX_RENDER_SECONDS` | `0` | maximalni doba jednoho renderu | ## Callback | Promenna | Vychozi | Vyznam | |---|---|---| | `CALLBACK_TIMEOUT_SECONDS` | `15` | timeout jednoho pokusu | | `CALLBACK_RETRIES` | `3` | pocet pokusu o doruceni |