Tá an dearadh in alt 6 de docs/architecture/23-ops.md. Ritheann Workers sraith ghréasáin laghdaithe. Níl sé i gceist comhionannas iomlán gnéithe a bhaint amach ar Workers (PRD alt 12): diúltaítear nuair a thosaíonn sé do na rudaí nach féidir leis an sprioc seo a dhéanamh, agus ainmnítear iad.
Stádas san eisiúint seo
Tá an chumraíocht curtha i bhfeidhm (apps/web/wrangler.jsonc, réamhshocrú Nitro cloudflare-module, an droichead Hyperdrive agus seiceálacha tosaithe). Teastaíonn stóráil atá comhoiriúnach le S3 do R2 ó Worker (QUIRE_STORAGE_DRIVER=s3), tiománaí fíor-ama a oibríonn trasna iarratas (QUIRE_REALTIME_DRIVER=durable_objects nó centrifugo), taisce chomhroinnte (QUIRE_CACHE_DRIVER=postgres nó valkey) agus soláthraí ríomhphoist HTTP. Gan iad, diúltaíonn Worker tosú agus ainmníonn a log gach socrú atá ar iarraidh. Is cliant de chuid Worker fíor-ama in apps/realtime-worker é tiománaí Durable Objects (réad Durable amháin in aghaidh cainéil le haghaidh seolta, láithreachta agus staire, ceann amháin in aghaidh duine i gcás dícheangail); déan imscaradh leis taobh leis mar a leanas, nó úsáid Centrifugo.
Na comhpháirteanna
Comhpháirt
Ar Cloudflare
web
Worker le nodejs_compat
Postgres
Seachtrach, inrochtana trí Hyperdrive: HYPERDRIVE do ról an fheidhmchláir, REPORT_HYPERDRIVE do ról na dtuarascálacha ar an mbunachar fisiciúil céanna. Cóipeálann an tsraith ghréasáin gach teaghrán ceangail isteach in DATABASE_URL agus QUIRE_REPORT_DATABASE_URL nuair a thosaíonn sí
Comhaid
R2 trína API S3 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); ceanglaíonn an ceangal FILES an buicéad
Jabanna cúlra
pg-boss trí Hyperdrive nuair is gá an jab a chur sa scuaine in éineacht le scríobh. Le QUIRE_QUEUE_DRIVER=cloudflare ar an bpróiseálaí compánach, téann jabanna éadroma (seachadtaí fógraí agus webhook nach bhfuil ordaithe) trí Cloudflare Queues ina ionad, ionas nach ndéantar vótáil orthu in Postgres. Ritheann an próiseálaí compánach an dá chineál
Fíor-am
Worker fíor-ama, apps/realtime-worker, le Durable Objects
Óstach coimeádán compánach. Ní féidir le Worker iad a rith
Rianú
Breathnóireacht Workers, cumasaithe in wrangler.jsonc
Soláthraíonn REPORT_HYPERDRIVE an ról tuairiscithe don bhunachar fisiciúil atá ainmnithe ag HYPERDRIVE. Ní fhreastalaíonn an sprioc seo ar thionóntaí atá pionnáilte do bhunachair fhisiciúla bhreise, mar a mhínítear thíos.
Rudaí nach féidir leis an sprioc seo a dhéanamh
Diúltaítear don tosú agus liostaítear gach fadhb láithreach:
Níl SMTP ar fáil. Úsáid soláthraí HTTP in QUIRE_EMAIL_PROVIDER_CONFIG.
Níl diosca áitiúil ar fáil. Caithfidh QUIRE_STORAGE_DRIVER stóráil oibiachtaí a ainmniú.
Níl fíor-am ná taisce sa phróiseas ar fáil. Ní roinneann Workers cuimhne idir iarratais, mar sin diúltaítear do QUIRE_REALTIME_DRIVER=inprocess agus QUIRE_CACHE_DRIVER=memory.
Níl ClamAV, Gotenberg ná ffmpeg ar fáil sa Worker. Diúltaítear do CLAMAV_URL, GOTENBERG_URL agus FFMPEG_PATH má shocraítear ar an Worker iad; socraigh ar an bpróiseálaí compánach iad ina ionad.
Níl eagraíochtaí a bhfuil bunachar sonraí tiomnaithe acu ar fáil. Socraítear ceangail Hyperdrive Worker ag am imscartha, mar sin taispeántar leathanach soiléir “unavailable here” d’eagraíocht a bhfuil bunachar dá cuid féin aici. Freastalaigh uirthi ó Compose nó Vercel.
Agus rud amháin nach ndiúltaítear dó ach nach mór a bheith ar eolas: ní oibríonn réamh-rindreáil ná athghiniúint incriminteach statach ar Workers, is cuma cén comhairle atá i ndoiciméadacht an chreata. Rindreáiltear gach bealach ar iarratas.
Coinnigh idirbhearta gearr ar an sprioc seo agus ná coinnigh idirbheart thar ghlao líonra riamh: athshocraíonn Hyperdrive staid an tseisiúin nuair a fhilleann ceangal ar an gcomhthiomsú, mar sin socraítear comhthéacs an tionónta in aghaidh idirbhirt.
Imscaradh
Cruthaigh na hacmhainní:
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
Cuir an dá aitheantas Hyperdrive in apps/web/wrangler.jsonc.
Socraigh na rúin ceann ar cheann le bun run --bun wrangler secret put <NAME> ó 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. Cuir gnáthshocruithe (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) in vars.
Tóg agus imscar ó apps/web:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Déan Worker fíor-ama a imscaradh le rún QUIRE_REALTIME_WORKER_SECRET ón tsraith ghréasáin, agus rún chomhartha mar QUIRE_REALTIME_TOKEN_SECRET aige (síníonn an tsraith ghréasáin comharthaí fíor-ama lena QUIRE_REALTIME_TOKEN_SECRET féin nó le QUIRE_SECRET_KEY nuair nach bhfuil an socrú roimhe sin ann; úsáid cibé ceann atá in úsáid aici). Socraigh QUIRE_REALTIME_WORKER_URL ar an tsraith ghréasáin ar sheoladh an Worker:
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
Chun jabanna éadroma a chur trí Cloudflare Queues, cruthaigh scuaine amháin do gach scuaine éadrom agus socraigh iad ar an bpróiseálaí compánach (comhartha API a bhfuil cead léite agus scríofa Queues aige):
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
Socraigh QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN, agus QUIRE_QUEUE_PREFIX mura quire- atá i gceist.
Rith an t-óstach compánach mar a dhéantar i gcéim 3 den treoir Vercel. Ritheann aistrithe ansin, roimh gach imscaradh Worker.
Má dhiúltaítear do chumraíocht, taispeántar é in bun run --bun wrangler tail mar “The web tier did not start on cloudflare”, agus liostaítear gach socrú atá le hathrú ina dhiaidh.