Ny drafitra dia ao amin’ny docs/architecture/23-ops.md singa 6. Ny sehatra ve-dalana fohy no asan’ny Workers. Tsy ao anatin’ny tetibola ny fahafahan’ny Workers mitovy amin’ny hafa (PRD singa 12): ny tsy afakany io sehatra io dia acomina rehefa manomboka, amin’ny anarana.
Toe-javatra amin’ity fametrahana ity
Efa misy ny fanitsakitsahana (apps/web/wrangler.jsonc, ny modely Nitro cloudflare-module, ny fifandraisan’ny Hyperdrive ary ny fanamarinana fiaingana). Mila tahirin-rakitra mifanaraka amin’ny S3 ho an’ny R2 ny Worker (QUIRE_STORAGE_DRIVER=s3), mpitondra mivantana eo amin’ny fangatahana tsirairay (QUIRE_REALTIME_DRIVER=durable_objects na centrifugo), cache zaraina (QUIRE_CACHE_DRIVER=postgres na valkey) ary mpanome mailaka HTTP. Tsy misy izany dia tsy manomboka ny Worker ary milaza ao amin’ny log ny filàlana tsirairay. Ny mpitondra Durable Objects dia client an’ny Worker mivantana ao amin’apps/realtime-worker (Durable Object iray isaky ny kanala ho an’ny fanzarana, fisian’ny olona sy ny tantara, iray isaky ny olona ho an’ny fijanonana); fampandrafina amin’ny anaraka, araka ny ambany, na ampiasao ny Centrifugo.
Ny ampahany
Ampahany
Amin’ny Cloudflare
web
Worker misy nodejs_compat
Postgres
Ivelany, atrapany amin’ny alàlan’ny Hyperdrive: HYPERDRIVE ho an’ny andraikin’ny fampiharana, REPORT_HYPERDRIVE ho an’ny andraikin’ny tatitra ao amin’io data-by ara-batana io. Ny sehatra ve-dalana maka ny fehezan’ny fifandraisana tsirairay ho DATABASE_URL ary QUIRE_REPORT_DATABASE_URL rehefa manomboka
Rakitra
R2, amin’ny alàlan’ny API S3 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); ny fifandraisana FILES no mampifandray ny bucket
Asa anaty
pg-boss amin’ny alàlan’ny Hyperdrive raha tsy maintsy alaina amin’ny fanoratana ny asa. Amin’ny QUIRE_QUEUE_DRIVER=cloudflare eo amin’ny mpandray anjara asa, ny asa maivana (fandefasana fanambarana sy webhook tsy voafaritra) dia mandeha amin’ny Cloudflare Queues fa tsy izany, ka tsy misy fanadihadiana Postgres ho any. Asan’ny mpandray anjara asa ny roa.
Mivantana
Ny Worker mivantana, apps/realtime-worker, amin’ny Durable Objects
Tsy misy SMTP. Ampiasao mpanome HTTP ao amin’ny QUIRE_EMAIL_PROVIDER_CONFIG.
Tsy misy karatra anaty. Tsy maintsy manambara tahirin-entana ny QUIRE_STORAGE_DRIVER.
Tsy misy mivantana na cache ao anaty. Tsy mizara fizotra ny Workers eo amin’ny fangatahana, ka acomina ny QUIRE_REALTIME_DRIVER=inprocess ary ny QUIRE_CACHE_DRIVER=memory.
Tsy misy ClamAV, Gotenberg na ffmpeg ao amin’ny Worker. Acomina ny CLAMAV_URL, GOTENBERG_URL ary FFMPEG_PATH apetraka eo amin’ny Worker; metrahao eo amin’ny mpandray anjara asa.
Tsy misy organisasa data-by manokana. Voafaritra amin’ny fotoana fampandrafana ny fifandraisana Hyperdrive an’ny Worker, ka misy pejy tsy misy azo ampiasaina eto ho an’ny organisasa misy data-by manokana. Ampiasao amin’ny Compose na Vercel azy.
Irery koa tsy acomina fa tsy maintsy fantatra: tsy miasa amin’ny Workers ny fametrahana aloha sy ny famoronana static mihintsana, na inona na inona no lazain’ny torolalana rindrina. Isaky ny fangatahana no manao ny lalan-dalana tsirairay.
Amin’io sehatra io, fohy ao ny transaction ary aza mijanona azy mandritra ny antso an-tserasera: manakorontany ny toe-javan’ny session ny Hyperdrive rehefa miverina ao amin’ny pool ny fifandraisana, ka metrahina isaky ny transaction ny toe-javan’ny mpanjifa.
Fampandrafiana
Mamorona ny zavatra:
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
Apetraho ny ID Hyperdrive roa ao amin’ny apps/web/wrangler.jsonc.
Metrahana ny teny miafina, iray iray amin’ny bun run --bun wrangler secret put <NAME> avy amin’ny 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. Ny filàlana tsotra (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) dia ao amin’ny vars.
Fampandrafina avy amin’ny apps/web:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Fampandrafina ny Worker mivantana, amin’ny QUIRE_REALTIME_WORKER_SECRET an’ny sehatra ve-dalana ary ny teny miafina tokeniny ho QUIRE_REALTIME_TOKEN_SECRET (ny sehatra ve-dalana dia manamarina ny token mivantana amin’ny QUIRE_REALTIME_TOKEN_SECRET manokany, na amin’ny QUIRE_SECRET_KEY raha tsy misy, ka ampiasao izay ampiasany), ary metrahana QUIRE_REALTIME_WORKER_URL eo amin’ny sehatra ve-dalana amin’ny adresy any:
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
Ho an’ny asa maivana amin’ny Cloudflare Queues, mamorona queue iray isaky ny queue maivana ary metrahana ireto eo amin’ny mpandray anjara asa (token API misy fahafahana mamaky sy manoratra 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
QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN, ary QUIRE_QUEUE_PREFIX raha tsy quire-.
Mandeha amin’ny mpandray anjara toy ny amin’ny torolalana Vercel, dingana 3. Asany ny fiovana ambadika ao indray, alohan’ny fampandrafiana Worker tsirairay.
Miseho ao amin’ny bun run --bun wrangler tail ny fanitsakitsahana acomina toy ny “The web tier did not start on cloudflare”, arahin’ny filàlana tsirairay tokony hovanafina.