Aia ka hoʻolālā ma ka māhele 6 o docs/architecture/23-ops.md. Holo nā Workers i papa pūnaewele i hoʻēmi ʻia. ʻAʻole i loko o ka laulā ka hoʻohālike piha o nā hiʻohiʻona ma Workers (māhele 12 o ka PRD): hōʻole ʻia nā hana hiki ʻole i kēia pahuhopu i ka hoʻomaka ʻana, me ko lākou inoa.
Kūlana o kēia mana
Ua mākaukau ka hoʻonohonoho (apps/web/wrangler.jsonc, ka hoʻonohonoho mua Nitro cloudflare-module, ka alahaka Hyperdrive, a me nā nānā hoʻomaka). Pono kahi Worker i waihona kūpono me S3 no R2 (QUIRE_STORAGE_DRIVER=s3), mea hoʻokele manawa maoli ma waena o nā noi (QUIRE_REALTIME_DRIVER=durable_objects a i ʻole centrifugo), cache kaʻana (QUIRE_CACHE_DRIVER=postgres a i ʻole valkey), a me mea hoʻolako leka uila HTTP. Inā ʻaʻohe o lākou, hōʻole ka Worker e hoʻomaka a papa inoa kona moʻolelo i nā hoʻonohonoho i nele. He mea kūʻai ka mea hoʻokele Durable Objects o ka Worker manawa maoli ma apps/realtime-worker (hoʻokahi Durable Object no kēlā me kēia channel no ka hoʻouna lehulehu, noho, a me ka mōʻaukala; hoʻokahi no kēlā me kēia kanaka no ka hemo ʻana); e hoʻouka pū iā ia e like me ka wehewehe ʻana ma lalo, a i ʻole e hoʻohana iā Centrifugo.
Nā ʻāpana
ʻĀpana
Ma Cloudflare
web
Worker me nodejs_compat
Postgres
Waho, hiki ma o Hyperdrive: HYPERDRIVE no ka kuleana polokalamu, REPORT_HYPERDRIVE no ka kuleana hōʻike ma ia waihona ʻikepili kino hoʻokahi. Kope ka papa pūnaewele i kēlā me kēia kaula pilina i loko o DATABASE_URL a me QUIRE_REPORT_DATABASE_URL i kona hoʻomaka ʻana
Nā faila
R2, ma o kona API S3 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); hoʻohui ka binding FILES i ka bucket
Nā hana hope
pg-boss ma luna o Hyperdrive ke pono e hoʻokomo pū ʻia ka hana me ke kākau. Me QUIRE_QUEUE_DRIVER=cloudflare ma ka worker hoa, holo nā hana māmā (nā leka hoʻomaopopo me ka hoʻonohonoho ʻole a me nā hoʻouna webhook) ma o Cloudflare Queues, no laila ʻaʻole huli ʻia lākou ma Postgres. Holo pū ka worker hoa i nā mea ʻelua
Manawa maoli
Worker manawa maoli, apps/realtime-worker, me Durable Objects
Host ipu hoa. ʻAʻole hiki i Worker ke holo iā lākou
Nā kaha
Nānā Workers, hoʻā ʻia ma wrangler.jsonc
Hāʻawi ʻo REPORT_HYPERDRIVE i ke kuleana hōʻike no ka waihona ʻikepili kino i kapa ʻia e HYPERDRIVE. ʻAʻole lawelawe kēia pahuhopu i nā tenant i hoʻopaʻa ʻia i nā waihona ʻikepili kino hou, e like me ka wehewehe ʻana ma lalo.
Nā mea hiki ʻole i kēia wahi
Hōʻole ʻia kēia mau mea i ka hoʻomaka ʻana me nā pilikia a pau i hōʻike pū ʻia:
ʻAʻohe SMTP. E hoʻohana i mea hoʻolako HTTP ma QUIRE_EMAIL_PROVIDER_CONFIG.
ʻAʻohe disk kūloko. Pono ʻo QUIRE_STORAGE_DRIVER e kuhikuhi i waihona mea.
ʻAʻohe manawa maoli a cache i loko o ke kaʻina. ʻAʻole kaʻana nā Workers i hoʻomanaʻo ma waena o nā noi, no laila hōʻole ʻia QUIRE_REALTIME_DRIVER=inprocess a me QUIRE_CACHE_DRIVER=memory.
ʻAʻohe ClamAV, Gotenberg, a i ʻole ffmpeg ma ka Worker. Hōʻole ʻia CLAMAV_URL, GOTENBERG_URL, a me FFMPEG_PATH ke hoʻonoho ʻia ma ka Worker; e hoʻonoho iā lākou ma ka worker hoa.
ʻAʻohe hui me nā waihona ʻikepili hoʻolaʻa. Paʻa nā binding Hyperdrive o kahi Worker i ka wā hoʻouka; no laila loaʻa i kahi hui me kona waihona ponoʻī ʻaoʻao maopopo e ʻōlelo ana «ʻaʻole loaʻa ma ʻaneʻi». E lawelawe iā ia mai Compose a i ʻole Vercel.
Hoʻokahi mea ʻaʻole i hōʻole ʻia akā pono e ʻike: ʻaʻole holo ka hana mua a me ka hana hou ʻana i nā ʻaoʻao paʻa ma Workers, me ka nānā ʻole i ka ʻōlelo a ka palapala framework. Hana ʻia kēlā me kēia ala i kēlā me kēia noi.
Ma kēia pahuhopu, e hoʻopōkole i nā hana ʻikepili a mai mālama iā lākou ma waena o kahi kāhea pūnaewele: hoʻoponopono hou ʻo Hyperdrive i ke kūlana kau ke hoʻi ka pilina i ka pool, no laila hoʻonoho ʻia ka pōʻaiapili tenant no kēlā me kēia hana.
Hoʻouka hana
E hana i nā kumuwaiwai:
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
E hoʻokomo i nā ID Hyperdrive ʻelua i apps/web/wrangler.jsonc.
E hoʻonoho i nā ʻōlelo huna, hoʻokahi i kēlā manawa me bun run --bun wrangler secret put <NAME> mai 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. Hele nā hoʻonohonoho maʻamau (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) i loko o vars.
Kūkulu a hoʻouka mai apps/web:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
E hoʻouka i ka Worker manawa maoli me ka QUIRE_REALTIME_WORKER_SECRET o ka papa pūnaewele a me kāna ʻōlelo huna token ma ke ʻano he QUIRE_REALTIME_TOKEN_SECRET (kau inoa ka papa pūnaewele i nā token manawa maoli me kona QUIRE_REALTIME_TOKEN_SECRET ponoʻī, a i ʻole me QUIRE_SECRET_KEY inā ʻaʻole ia i hoʻonoho ʻia; e hoʻohana i ka mea e hoʻohana ʻia nei), a hoʻonoho iā QUIRE_REALTIME_WORKER_URL ma ka papa pūnaewele i kona helu wahi:
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
No nā hana māmā ma Cloudflare Queues, e hana i queue no kēlā me kēia queue māmā a hoʻonoho iā lākou ma ka worker hoa (pono kahi token API me nā ʻae heluhelu a kākau no Queues):
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
E hoʻonoho iā QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID,
CLOUDFLARE_QUEUES_TOKEN, a me QUIRE_QUEUE_PREFIX inā ʻaʻole quire-.
Holo i ka host hoa e like me ka ʻanuʻu 3 o ke alakaʻi Vercel.
Holo nā neʻe ʻikepili ma laila ma mua o kēlā me kēia hoʻouka Worker.
Hōʻike ʻia kahi hoʻonohonoho i hōʻole ʻia ma bun run --bun wrangler tail me ka memo «The web tier did not start on cloudflare», a me nā hoʻonohonoho e hoʻololi ai.