Diseinua docs/architecture/23-ops.md ataleko 6. atalean dago. Workers-ek web-maila murriztua exekutatzen dute. Workers-en eginbide-parekotasuna ez dago xedean (PRD ataleko 12. puntua): helburu honek egin ezin dituenak abiaraztean ukatzen dira, arazo bakoitza izendatuz.
Egoera bertsio honetan
Konfigurazioa prest dago (apps/web/wrangler.jsonc, cloudflare-module Nitro aurrezarpena, Hyperdrive zubia eta abiarazte-egiaztapenak). Worker batek R2rako S3-rekin bateragarria den biltegiratzea behar du (QUIRE_STORAGE_DRIVER=s3), eskaeren artean dabilen denbora errealeko driver bat (QUIRE_REALTIME_DRIVER=durable_objects edo centrifugo), partekatutako cache bat (QUIRE_CACHE_DRIVER=postgres edo valkey) eta HTTP posta-hornitzaile bat. Horiek gabe, Worker-ak ez du abiatzea onartzen eta erregistroak ezarpen bakoitza izendatzen du. Durable Objects driver-a apps/realtime-worker proiektuko denbora errealeko Worker-aren bezeroa da (kanal bakoitzeko Durable Object bat hedapenerako, presentziarako eta historiarako; pertsona bakoitzeko bat deskonexioetarako); zabaldu harekin batera, jarraian azaltzen den moduan, edo erabili Centrifugo.
Osagaiak
Osagaia
Cloudflare-n
web
nodejs_compat gaituta duen Worker bat
Postgres
Kanpokoa, Hyperdrive bidez atzitua: HYPERDRIVE aplikazio-rolerako, eta REPORT_HYPERDRIVE datu-base fisiko bereko txosten-rolerako. Web-mailak konexio-kate bakoitza DATABASE_URL eta QUIRE_REPORT_DATABASE_URL aldagaietan kopiatzen du abiaraztean
Fitxategiak
R2, haren S3 APIaren bidez (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); FILES loturak bucket-a eransten du
Atzeko planoko lanak
pg-boss Hyperdrive bidez, idazketa batekin batera ilaran jarri behar den lanetarako. Worker laguntzailean QUIRE_QUEUE_DRIVER=cloudflare ezarrita badago, lan arinak (ordenarik gabeko jakinarazpen- eta webhook-bidalketak) Cloudflare Queues bidez doaz; horrela, Postgresentzat ez dago lan horien bila ibili beharrik. Worker laguntzaileak biak exekutatzen ditu
Denbora erreala
apps/realtime-worker denbora errealeko Worker-a, Durable Objects-ekin
REPORT_HYPERDRIVE-k HYPERDRIVE-k izendatutako datu-base fisikorako txosten-rola hornitzen du. Helburu honek ez ditu datu-base fisiko gehigarrietan finkatutako maizterrak zerbitzatzen, jarraian azaltzen den moduan.
Helburu honek egin ezin duena
Abiaraztean ukatzen dira, arazo guztiak batera zerrendatuta:
Ez dago SMTPrik. Erabili HTTP hornitzaile bat QUIRE_EMAIL_PROVIDER_CONFIG aldagaian.
Ez dago disko lokalik.QUIRE_STORAGE_DRIVER aldagaian objektu-biltegiratzea izendatu behar da.
Ez dago prozesu barruko denbora errealekorik edo cacherik. Worker-ek ez dute memoria partekatzen eskaeren artean; beraz, QUIRE_REALTIME_DRIVER=inprocess eta QUIRE_CACHE_DRIVER=memory ez dira onartzen.
Worker-ak ezin ditu ClamAV, Gotenberg edo ffmpeg exekutatu. Worker-ean ezarritako CLAMAV_URL, GOTENBERG_URL eta FFMPEG_PATH ez dira onartzen; ezarri ordez worker laguntzailean.
Ez dago datu-base bereizia duten erakundeentzako euskarririk. Worker-aren Hyperdrive loturak zabaltzean finkatzen dira; beraz, bere datu-basea duen erakunde bati “unavailable here” orria erakusten zaio. Zerbitzatu Compose edo Vercel erabiliz.
Gainera, ukatzen ez den arren jakin beharreko zerbait: aurreerrendatzeak eta inkrementalki sortutako orrialde estatikoak ez dute funtzionatzen Workers-en, esparruaren dokumentazioak dioena gorabehera. Ibilbide bakoitza eskaera bakoitzean errendatzen da.
Helburu honetan, mantendu transakzioak labur eta ez eutsi sareko dei batean zehar: konexio bat biltegira itzultzean, Hyperdrive-k saioaren egoera berrezartzen du; beraz, maizterraren testuingurua transakzio bakoitzean ezartzen da.
Zabaltzea
Sortu baliabideak:
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
Jarri Hyperdrive bi IDak apps/web/wrangler.jsonc fitxategian.
Ezarri sekretuak banan-banan bun run --bun wrangler secret put <NAME> erabiliz, apps/web barrutik: 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. Ezarpen arruntak (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) vars atalean jartzen dira.
Eraiki eta zabaldu apps/web barrutik:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Zabaldu denbora errealeko Worker-a, web-mailaren QUIRE_REALTIME_WORKER_SECRET eta haren token-sekretua QUIRE_REALTIME_TOKEN_SECRET gisa erabiliz (web-mailak denbora errealeko tokenak sinatzen ditu bere QUIRE_REALTIME_TOKEN_SECRET erabiliz, edo QUIRE_SECRET_KEY aldagai hori ez badago; beraz, erabili erabiltzen duena), eta ezarri haren helbidea web-mailaren QUIRE_REALTIME_WORKER_URL aldagaian:
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
Cloudflare Queues-en lan arinak egiteko, sortu ilara arin bakoitzeko ilara bat, eta ezarri hauek worker laguntzailean (irakurtzeko eta idazteko baimena duen API token batekin):
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
Ezarri QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN, eta QUIRE_QUEUE_PREFIX balioa quire- ez bada.
Exekutatu ostalari laguntzailea Vercel gidako 3. urratsean bezala. Migrazioak han exekutatzen dira Worker-a zabaldu aurretik.
Konfigurazio bat ukatzen bada, bun run --bun wrangler tail komandoaren emaitzan “The web tier did not start on cloudflare” mezua agertzen da, eta ondoren aldatu beharreko ezarpen guztiak.