Desaine iku docs/architecture/23-ops.md bagean 6. Workers mbukak tier web sing suda. Paritas fitur ing Workers ing njaba scope (PRD bagean 12): apa sing ora bisa ditindakake target iki ditolak nalika miwiti, kanthi jeneng.
Status ing rilis iki
Konfigurasi wis ana (apps/web/wrangler.jsonc, preset Nitro cloudflare-module, jembatan Hyperdrive lan pamriksan start-up). Worker butuh panyimpenan kompatibel S3 kanggo R2 (QUIRE_STORAGE_DRIVER=s3), driver realtime ing antar panjalukan (QUIRE_REALTIME_DRIVER=durable_objects utawa centrifugo), cache bareng (QUIRE_CACHE_DRIVER=postgres utawa valkey) lan panyedhiya email HTTP. Tanpane Worker nolak miwiti lan loge nyebutake saben setelan. Driver Durable Objects iku klien saka Worker realtime ing apps/realtime-worker (siji Durable Object per channel kanggo fan-out, presence lan riwayat, siji per wong kanggo pedhot); deploy bebarengan, kaya ing ngisor, utawa gunakake Centrifugo.
Perangan
Perangan
Ing Cloudflare
web
Worker kanthi nodejs_compat
Postgres
Eksternal, digayuh liwat Hyperdrive: HYPERDRIVE kanggo peran aplikasi, REPORT_HYPERDRIVE kanggo peran laporan ing database fisik sing padha. Tier web nyalin saben string sambungan menyang DATABASE_URL lan QUIRE_REPORT_DATABASE_URL nalika miwiti
File
R2, liwat S3 API-e (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); binding FILES nempelake bucket
Pagawean latar
pg-boss liwat Hyperdrive nalika pagawean kudu diantrekake karo tulisan. Kanthi QUIRE_QUEUE_DRIVER=cloudflare ing worker pendamping, pagawean entheng (pangiriman notifikasi lan webhook sing ora urut) liwat Cloudflare Queues, supaya Postgres ora dipoll kanggo iku. Worker pendamping mbukak kalorone
Realtime
Worker realtime, apps/realtime-worker, kanthi Durable Objects
Observabilitas Workers, diuripake ing wrangler.jsonc
REPORT_HYPERDRIVE nyedhiyakake peran laporan kanggo database fisik sing dijenengi dening HYPERDRIVE. Target iki ora ngladeni tenant sing disematake menyang database fisik tambahan, kaya sing diterangake ing ngisor.
Apa sing ora bisa ditindakake target iki
Ditolak nalika miwiti, kanthi saben masalah kadhaptar bebarengan:
Tanpa SMTP. Gunakake panyedhiya HTTP ing QUIRE_EMAIL_PROVIDER_CONFIG.
Tanpa disk lokal.QUIRE_STORAGE_DRIVER kudu nyebutake panyimpenan objek.
Tanpa realtime utawa cache ing-proses. Workers ora nuduhake memori antar panjalukan, dadi QUIRE_REALTIME_DRIVER=inprocess lan QUIRE_CACHE_DRIVER=memory ditolak.
Tanpa ClamAV, Gotenberg utawa ffmpeg ing Worker.CLAMAV_URL, GOTENBERG_URL lan FFMPEG_PATH sing disetel ing Worker ditolak; setel ing worker pendamping.
Tanpa organisasi database khusus. Binding Hyperdrive Worker tetep nalika deploy, dadi organisasi kanthi database dhewe entuk kaca “unavailable here” sing cetha. Ladeni saka Compose utawa Vercel.
Lan siji prakara sing ora ditolak nanging kudu dimangerteni: prerendering lan regenerasi statis inkremental ora mlaku ing Workers, apa wae sing diandharake dokumentasi framework. Saben rute dirender per panjalukan.
Ing target iki njaga transaksi cendhak lan ora tau nyekel siji ing antar telpon jaringan: Hyperdrive ngreset kahanan sesi nalika sambungan bali menyang pool, dadi konteks tenant disetel per transaksi.
Deploy
Gawe sumbere:
bun run --bun wrangler hyperdrive create quire-app --connection-string="postgres://quire_app:...@db.example.com:5432/quire"bun run --bun wrangler hyperdrive create quire-report --connection-string="postgres://quire_report:...@db.example.com:5432/quire"bun run --bun wrangler r2 bucket create quire-filesbun run --bun wrangler queues create quire-jobs
Lebokake kalorone id Hyperdrive menyang apps/web/wrangler.jsonc.
Setel rahasia, siji-siji nganggo bun run --bun wrangler secret put <NAME> saka apps/web: QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, QUIRE_EMAIL_PROVIDER_CONFIG, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, QUIRE_COLLAB_SIGNING_KEY, QUIRE_REALTIME_WORKER_SECRET. Setelan biasa (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) menyang vars.
Build lan deploy saka apps/web:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Deploy Worker realtime, kanthi QUIRE_REALTIME_WORKER_SECRET tier web lan rahasia tokene minangka QUIRE_REALTIME_TOKEN_SECRET (tier web nandatangani token realtime nganggo QUIRE_REALTIME_TOKEN_SECRET dhewe, utawa nganggo QUIRE_SECRET_KEY nalika iku ora disetel, dadi gunakake sing digunakake), lan setel QUIRE_REALTIME_WORKER_URL ing tier web menyang alamate:
cd apps/realtime-workerbun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRETbun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRETbun run --bun wrangler deploy
Kanggo pagawean entheng ing Cloudflare Queues, gawe siji antrean per antrean entheng lan setel iki ing worker pendamping (token API kanthi Queues waca lan tulis):
bun run --bun wrangler queues create quire-events-notificationsbun run --bun wrangler queues create quire-events-notifications-deadbun run --bun wrangler queues create quire-events-webhooksbun run --bun wrangler queues create quire-events-webhooks-dead
QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN, lan QUIRE_QUEUE_PREFIX yen dudu quire-.
Mbukak host pendamping kaya ing pandhuan Vercel, langkah 3. Migrasi mlaku ing kana, sadurunge saben deployment Worker.
Konfigurasi sing ditolak katon ing bun run --bun wrangler tail minangka “The web tier did not start on cloudflare”, diterusake saben setelan sing diowahi.