- Vrealmatic
- Cloudflare
Cloudflare wiki
Workers, Next.js, Express, Workers Cache, R2 a API tokeny - návody a know-how z produkce
Rozcestník našich návodů ke Cloudflare a k tomu krátké, často potřebné postupy, které se jinam nevešly: účtové API tokeny, deploy do více účtů a hromadná práce s R2 z příkazové řádky. Každý příkaz zkopírujete jedním kliknutím.
Obsah stránky
00 · Přehled
Cloudflare ve Vrealmaticu
Tady začíná všechno, co jsme o Cloudflare sepsali. Větší témata mají vlastní návody (Next.js, Express, Workers Cache). Krátké a často potřebné know-how, které k žádnému z nich nepatří, zůstává přímo zde: API tokeny, deploy do více účtů přes token a práce s úložištěm R2 z příkazové řádky.
Co potřebujete vyřešit?
| Otázka | Kde najdete odpověď |
|---|---|
| Chci provozovat aplikaci v Next.js na Cloudflare Workers. | Next.js na Cloudflare (anglicky) → |
| Mám API v Expressu a chci ho na Worker. | Express na Workers (anglicky) → |
| Stránky se mají vracet z edge bez spuštění Workeru. | Workers Cache → |
| Jedna aplikace pro více zemí, každá na vlastní doméně. | Web pro více zemí → |
| Jaký token potřebuji, účtový, nebo uživatelský? | API tokeny → |
| Nasazuji do více účtů Cloudflare (klienti, projekty). | Bezpečný deploy → |
| Potřebuji nahrát nebo smazat hodně souborů v R2. | R2 z příkazové řádky → |
| Vystačím si s bezplatným plánem? | Limity v kostce → |
Stav k říjnu 2026: Wrangler 4, účtové API tokeny, Workers Cache (spuštěná v červenci 2026). Všechno popsané běží v produkci na našich vlastních webech včetně tohoto (Next.js na OpenNext, D1, R2, Workers Cache).
01 · Návody
Návody
Návody krok za krokem s kompletní konfigurací. Každý řeší jeden úkol od prázdného projektu po funkční deploy.
- Next.js na CloudflareStatický build nebo Worker OpenNext, aktualizace Wrangleru a Next.js, napojení R2, incremental cache a kombinace s Workers Cache.OpenNext · D1 · R2 · deploy · anglickyČíst návod →
- Express na Cloudflare WorkersNový projekt Workeru, Express přes httpServerHandler a nodejs_compat, napojení úložišť, typované env a šablony Handlebars.nodejs_compat · bindings · Handlebars · anglickyČíst návod →
- Cloudflare Workers CacheEdge cache před Workerem: zapnutí, hlavičky cache pro Next.js, ochrana proti otrávení cache, purge bez deploye a ověření.edge cache · purge · RSCČíst návod →
- Bezpečný deploy na CloudflareAPI token pro jeden účet mimo build, účet zamčený ve wrangler.jsonc, ověření a staré chunky po deployi.API token · Wrangler · deployČíst návod →
- Web pro více zemí z jednoho kóduArchitektura se společným jádrem a individualizací pro každou zemi: kontrakt země, adresy a texty v jazyce země, volitelné služby a každá země na vlastní doméně.architektura · lokalizace · více doménČíst návod →
02 · API tokeny
Účtové a uživatelské API tokeny
Každý neinteraktivní přístup ke Cloudflare (Wrangler v CI, deploy do účtu klienta, skripty) potřebuje API token. Cloudflare dnes nabízí dva druhy a pro automatizaci je lepší volbou účtový token.
Účtový, nebo uživatelský token
| Account API token (účtový) | User API token (uživatelský) | |
|---|---|---|
| Kde | Manage Account → Account API Tokens | My Profile → API Tokens |
| Patří | účtu (servisní identita) | konkrétnímu člověku |
| Když člověk odejde | funguje dál | přestane fungovat, jakmile uživatele z účtu odeberete |
| Typické použití | CI/CD, deploy, integrace | vlastní skripty a pokusy |
| Poznáte ho podle | prefixu cfat_ | - |
Jak token založit bezpečně
- Začněte šablonou. Pro deploy Workerů použijte Edit Cloudflare Workers a přidejte jen to, co projekt opravdu používá (D1, R2, KV).
- Omezte zdroje na jeden účet a tam, kde jsou potřeba oprávnění k zóně, na konkrétní zóny (
Zone Resources). - Client IP Address Filtering povolí token jen z adres kanceláře, VPN nebo CI runneru. Uniklý token je pak jinde k ničemu.
- TTL (platnost) u tokenů, které potřebujete jen dočasně. Token na jednorázovou migraci nemá žít navždy.
Hodnotu tokenu Cloudflare ukáže jen hned po vytvoření. Uložte ji do správce hesel nebo rovnou do tajných proměnných CI. Když ji ztratíte, token přegenerujte (roll) nebo vytvořte nový. Několik produktů účtové tokeny nepodporuje (např. Page Rules, Registrar, Turnstile), tam použijte uživatelský.
03 · Deploy
Bezpečný deploy do více účtů
Nasazovat do více účtů Cloudflare (vlastního, klientských) přes wrangler login nebo s tokenem v .env je riskantní. OAuth otevře všechny účty, jejichž jste členem, a frameworky jako OpenNext zkopírují .env i s tokenem do nasazeného Workeru. Bezpečné nastavení má o pár kroků víc, proto má vlastní návod krok za krokem.
- Jeden projekt = jeden účtový token jen s oprávněními, která používá, omezený na vaši IP adresu.
"account_id"vewrangler.jsonczamkne každý deploy i wrangler příkaz na jeden účet.- Token je v
.env.deploy, který žádný framework nečte, a npm skripty ho načtou jen pro jeden příkaz:npm run -s wr --místonpx wrangler. - Nikdy wrangler login a nikdy token Cloudflare v .env. Okno OAuth znamená, že příkaz běží bez tokenu: Cancel.
04 · R2
R2 Object Storage z příkazové řádky
R2 je objektové úložiště kompatibilní s S3 bez poplatků za odchozí přenos. Na pár souborů stačí Wrangler, na hromadné nahrávání, synchronizaci a mazání celých prefixů použijte AWS CLI (nebo rclone) s tokenem pro R2. My tak třeba mažeme cache kontextu stránek tohoto webu.
Krok 1: Vytvořte API token pro R2
R2 Object Storage → Account Details → API Tokens: Manage, pak Create Account API token (nebo uživatelský). Zvolte úroveň oprávnění: Admin Read & Write pro práci napříč buckety, Object Read & Write omezené na konkrétní buckety, kde to jde. Pokud to formulář nabízí, přidejte TTL a filtr IP adres. Z ukázaných hodnot potřebujete Access Key ID a Secret Access Key (zobrazí se jen jednou) a endpoint https://<ACCOUNT_ID>.r2.cloudflarestorage.com.
Krok 2: Uložte klíče jako profil AWS CLI
Samostatný profil r2 drží R2 odděleně od případných skutečných přístupů do AWS. R2 region ignoruje, CLI ho ale vyžaduje, proto auto.
[r2]
aws_access_key_id = <ACCESS_KEY_ID>
aws_secret_access_key = <SECRET_ACCESS_KEY>[profile r2]
region = auto
# Only if an upload fails with a checksum error (older CLI/SDK setups):
# request_checksum_calculation = when_required
# response_checksum_validation = when_requiredNovější verze AWS CLI posílají ve výchozím stavu kontrolní součty CRC. R2 je dnes podporuje, dva zakomentované řádky jsou jen záloha pro případ, že nahrávání skončí chybou kontrolního součtu.
Krok 3: Nahrajte adresář do R2
sync nahraje jen nové a změněné soubory. Výstup jde do logu, což se hodí u tisíců souborů.
aws s3 sync <SOURCE_DIR> s3://<BUCKET>/<TARGET_PREFIX> --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com --profile r2 --exact-timestamps > r2-upload.log 2>&1Krok 4: Mazání souborů: nejdřív na zkoušku
S --dryrun příkaz jen vypíše, co by smazal. Až seznam sedí, spusťte ho znovu bez --dryrun.
aws s3 rm s3://<BUCKET>/<PREFIX_TO_REMOVE> --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com --profile r2 --recursive --dryrun# Example: drop the cached page context (v1) of this website
aws s3 rm s3://cache/cache_context/v1 --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com --profile r2 --recursiveAlternativy: Wrangler a rclone
Wrangler zvládne jednotlivé objekty a nastavení bucketu (CORS, pravidla životního cyklu, vlastní domény), hromadný přenos ani synchronizaci ale nemá. Pro velké přenosy je dobrou alternativou k AWS CLI rclone.
# Single objects (no bulk / sync command in Wrangler)
npx wrangler r2 object put <BUCKET>/<KEY> --file ./local/file.json --remote
npx wrangler r2 object get <BUCKET>/<KEY> --remote
npx wrangler r2 object delete <BUCKET>/<KEY> --remote[r2]
type = s3
provider = Cloudflare
access_key_id = <ACCESS_KEY_ID>
secret_access_key = <SECRET_ACCESS_KEY>
endpoint = https://<ACCOUNT_ID>.r2.cloudflarestorage.com
acl = private
# required with an Object-level token (bucket-scoped)
no_check_bucket = truerclone sync <SOURCE_DIR> r2:<BUCKET>/<TARGET_PREFIX> --dry-run
# remove --dry-run once the list of changes looks right05 · Limity
Limity bezplatného a placeného plánu v kostce
Bezplatný plán vystačí na překvapivě mnoho, má ale několik pevných limitů. Přehled ukazuje ty, na které narazíte nejdřív; ceny a limity se mění, proto si je před rozhodnutím ověřte v odkazované dokumentaci.
| Free | Workers Paid | |
|---|---|---|
| Požadavky na Worker | 100 000 denně | bez denního limitu, účtuje se za požadavek |
| Čas CPU na požadavek | 10 ms | výchozí 30 s, až 5 min |
| Podřízené požadavky (subrequests) | 50 | 10 000 |
| Statické soubory na verzi | 20 000 souborů | 100 000 souborů |
| D1 | 5 mil. čtených a 100 tis. zapsaných řádků denně, 5 GB | v ceně 25 mld. čtení a 50 mil. zápisů měsíčně |
| R2 (Standard) | 10 GB-měsíc, 1 mil. operací třídy A a 10 mil. třídy B měsíčně | 0,015 USD / GB-měsíc nad rámec free; odchozí přenos vždy zdarma |
| Workers Cache | k dispozici | HIT se účtuje jako požadavek, bez času CPU |
U renderování na serveru (Next.js na OpenNext) obvykle rozhodne limit 10 ms CPU v bezplatném plánu. S Workers Cache před Workerem se většina požadavků k Workeru vůbec nedostane.
Zdroje
Oficiální dokumentace
Ověřeno v dokumentaci Cloudflare v říjnu 2026 (anglicky):
- Account API tokensÚčtové tokeny, rozdíly a nepodporované produkty.
- Proměnné prostředí WrangleruCLOUDFLARE_API_TOKEN a další proměnné, které Wrangler čte z prostředí.
- API tokeny pro R2Úrovně oprávnění, Access Key ID a Secret Access Key.
- R2 s AWS CLIProfil, endpoint a region auto.
- R2 s rcloneKonfigurace pro hromadné kopírování a synchronizaci.
- Limity WorkersPožadavky, čas CPU, subrequests, statické soubory.
- Ceník R2Bezplatná úroveň, třídy úložiště a operace.
Jak citovat tuto publikaci (ČSN ISO 690:2022)NEPOR, Vladimír. Cloudflare wiki: Workers, Next.js, R2, API tokeny a deploy. Online. Vrealmatic, 2026. Dostupné z: https://vrealmatic.com/cs/cloudflare. [citováno ].
Stavíte na Cloudflare?
Nastavíme Workers, OpenNext, D1, R2 i Workers Cache pro váš projekt.