Derbas bibe bo naverokê

Navûpa web li Cloudflare Workers

Navûpa web ya Quireyê kêm di Cloudflare Workers de bixebitîne.

Wêne bide wek Markdown

Rêşebeciya docs/architecture/23-ops.md beş 6 e. Worker navûpeke weba kêm xebitîne. Hevman taybetmendiyan li Worker herî (PRD beş 12): çi ji vê armancê neyare gava dest pê dike bi nav raqûl dike.

Derengam di vê wêşanê de

Mîhaz di cihê xwe de ye (apps/web/wrangler.jsonc, preseta Nitro ya cloudflare-module, prîskê Hyperdrive û çawaskirinên destpêkê). Worker ji bo R2 hilanîneyeke hevpeyman bi S3 pêwîst dike (QUIRE_STORAGE_DRIVER=s3), driverek dema rastîn di nav daxwazan (QUIRE_REALTIME_DRIVER=durable_objects an centrifugo), cacheyeke parvekirî (QUIRE_CACHE_DRIVER=postgres an valkey) û dabînek e-poştê ya HTTP. Bê wan Worker naxebite û loga wê her mîhazê navdide. Driverea Durable Objects mirovek e ji Worker a dema rastîn di apps/realtime-worker de (ji bo fêrbûnê, wêjeyê û dîrokê kanalek Durable Objectek, ji bo derketinê yek ji bo her kesek); wê li pişgotû ve bezoste, wek jêrîn, an Centrifugo bikar bîne.

Parçe

Parçe Li Cloudflare
web Workerek bi nodejs_compat
Postgres Derve, tê gihiştin bi Hyperdrive: HYPERDRIVE ji bo rolê nivîsbariyê, REPORT_HYPERDRIVE ji bo rolê raporê li heman danegirşa fizîkî. Navûpa web her srtoka girêtiyê di DATABASE_URL û QUIRE_REPORT_DATABASE_URL de kopî dike gava dest pê dike
Dosye R2, bi API ya S3 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); girêdana FILES bucketê girê dike
Erengên paşî pg-boss bi Hyperdrive re gava ereng divê bi nivîsandeke ve bikêrînê ve bêve. Bi QUIRE_QUEUE_DRIVER=cloudflare li ser karmera beşdar, erengên sivik bi Cloudflare Queues ve derbas dibe, ji ber vê Postgres ji bo wan nayê çêlîskîn. Karmera beşdar herduyan bixebitîne
Dema rastîn Worker a dema rastîn, apps/realtime-worker, bi Durable Objects
worker, scheduler, collab, content, ClamAV, Gotenberg, ffmpeg Servereke konteynerên beşdar. Worker nikare wan bixebitîne
Tracing Çawaskirina Workers, di wrangler.jsonc de çalak kirî

REPORT_HYPERDRIVE rolê raporê ji bo danegirşa fizîkî ya bi HYPERDRIVE navdariye pêşkêş dike. Vê armanc ne tenantên veşartî ji bo danegirşên fizîkî yên zêde diêpe, wek jêrîn şîrokirîye.

Çi ji vê armancê neyare

Gava dest pê dike raqûl dike, bi her pirsgirêkê bi hev re li lîsteyê:

  • SMTP tune. Di QUIRE_EMAIL_PROVIDER_CONFIG de dabînkek HTTP bikar bîne.
  • Dîskekî nexweş tune. QUIRE_STORAGE_DRIVER divê navdide hilanîna tiştan.
  • Ne dema rastîn an cache di nawa processê de tune. Worker di nav daxwazan bîranîne parve nakin, ji ber vê QUIRE_REALTIME_DRIVER=inprocess û QUIRE_CACHE_DRIVER=memory tên raqûlkirin.
  • ClamAV, Gotenberg an ffmpeg di Worker de tune. CLAMAV_URL, GOTENBERG_URL û FFMPEG_PATH ku li ser Worker saz kiran tên raqûlkirin; wan li ser karmera beşdar saz bike.
  • Rêxistên danegirşê taybet tune. Girêdana Hyperdrive a Worker di dema bezostonê de sabit in, ji ber vê rêxistinek bi danegirşa xwe rûpelekî dîtin ku bêhna “li vir neberdest” heye. Wê ji Compose an Vercel ve diêpe.

Û yek tiştî ku ne raqûl dike lê divê bibiznî: pêşnivîs û nûvekirina bilez a statîk di Worker de naxebitin, bi qet tiştên belgeya çarçeve bêjine. Her routek bi daxwazê tê avakirin.

Li vê armancê transaksiyonê kurt bigire û neyê biparîzî di navawayek torê de: Hyperdrive gava girêtiyek vegere bo pûl, doma seansê nû ve dike, ji ber vê konteksta tenant bi transaksiyon ve tê sazkirin.

Bezoston

  1. Sarvek çêke:
    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-files
    bun run --bun wrangler queues create quire-jobs
    Du IDya Hyperdrive biçe apps/web/wrangler.jsonc.
  2. Nepûran saz bike, carekê bi bun run --bun wrangler secret put <NAME> ji 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. Mîhazên ada (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) di vars de tên.
  3. Ji apps/web biafirîne û bezoste:
    NITRO_PRESET=cloudflare-module bun run build
    bun run --bun wrangler deploy
  4. Worker a dema rastîn bezoste, bi QUIRE_REALTIME_WORKER_SECRET ya navûpa web û nepûra tokeya wê wek QUIRE_REALTIME_TOKEN_SECRET (navûpa web tokeyên dema rastîn bi QUIRE_REALTIME_TOKEN_SECRET xwe qedê dike, an bi QUIRE_SECRET_KEY gava ew neyê sazkirin, ji ber vê ewê ku bikar tîne bikar bîne), û QUIRE_REALTIME_WORKER_URL li ser navûpa web biçe navnivîsa wê:
    cd apps/realtime-worker
    bun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRET
    bun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRET
    bun run --bun wrangler deploy
  5. Ji bo erengên sivik li Cloudflare Queues, ji bo her kuyê sivikê kunekê çêke û van li ser karmera beşdar saz bike (tokeke API bi dixwîn û nivîsina Queues):
    bun run --bun wrangler queues create quire-events-notifications
    bun run --bun wrangler queues create quire-events-notifications-dead
    bun run --bun wrangler queues create quire-events-webhooks
    bun run --bun wrangler queues create quire-events-webhooks-dead
    QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN, û QUIRE_QUEUE_PREFIX ger quire- nî.
  6. Servera beşdar wek di rêbebera Vercel de, gav 3 bixebitîne. Guhertinên mîgar li wir tên xebitandin, berî her bezostona Worker.

Mîhazeke raqûlkirî di bun run --bun wrangler tail de wek “navûpa web li cloudflare dest pê nakir” dide xweyîn, bi her mîhazê ku divê biguhere re.

Rêvenîşan

Ji bo lêgerdin binivîse…

↑↓ bigere↵ hilbijêreEsc bigire