---
title: "Sashen yanar gizo a Cloudflare Workers"
description: "Gudanar da ragewar sashen yanar gizo na Quire a Cloudflare Workers."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/ha/llms.txt
> Use this file to discover all available pages before exploring further.

# Sashen yanar gizo a Cloudflare Workers

<span id="the-web-tier-on-cloudflare-workers"></span>

Tsarin yana cikin sashen 6 na `docs/architecture/23-ops.md`. Workers suna
gudanar da sashen yanar gizo mai rage ayyuka. Daidaita duk fasaloli ba ya cikin
iyaka (sashen 12 na PRD): abin da wannan manufa ba za ta iya yi ba ana ƙin sa
lokacin farawa, ta suna.

## Matsayi a wannan siga <!--quire:status-in-this-release-->

An shirya saituna (`apps/web/wrangler.jsonc`, saitin Nitro na `cloudflare-module`,
gadajin Hyperdrive da gwaje-gwajen farawa). Worker yana buƙatar ma'ajiyar da ta
dace da S3 ga R2 (`QUIRE_STORAGE_DRIVER=s3`), na'urar ainihin-lokaci tsakanin
buƙatu (`QUIRE_REALTIME_DRIVER=durable_objects` ko `centrifugo`), ma'ajiyar bayanai
da aka raba (`QUIRE_CACHE_DRIVER=postgres` ko `valkey`) da mai aika imel ta HTTP.
Idan ba su nan, Worker zai ƙi farawa, log ɗinsa kuma zai bayyana saitunan.
Na'urar Durable Objects abokin ciniki ne na Worker ainihin-lokaci a
`apps/realtime-worker` (Durable Object ɗaya ga kowane tashar don rabawa,
kasancewa a halin yanzu da tarihi; ɗaya ga kowane mutum don cire haɗi); tura shi
tare da wannan sashen kamar yadda aka nuna a ƙasa, ko amfani da Centrifugo.

## Sassan tsarin <!--quire:the-pieces-->

| Sashe | A Cloudflare |
| --- | --- |
| `web` | Worker mai `nodejs_compat` |
| Postgres | Na waje, ta Hyperdrive: `HYPERDRIVE` ga matsayin manhaja, `REPORT_HYPERDRIVE` ga matsayin rahoto a wannan ma'ajiya ta zahiri. Sashen yanar gizo yana kwafi kowace hanyar haɗi zuwa `DATABASE_URL` da `QUIRE_REPORT_DATABASE_URL` lokacin farawa |
| Fayiloli | R2 ta API ɗinsa na S3 (`S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com`); haɗin `FILES` yana haɗa bokiti |
| Ayyukan baya | pg-boss ta Hyperdrive idan dole a saka aiki tare da rubutawa. Idan mai aikin rakiya yana da `QUIRE_QUEUE_DRIVER=cloudflare`, ayyukan sauƙi (sanarwa mara jeri da isar da webhook) suna tafiya ta Cloudflare Queues, don haka ba a duba Postgres domin su. Mai aikin rakiya ne ke gudanar da duka |
| Ainihin-lokaci | Worker ainihin-lokaci, `apps/realtime-worker`, tare da Durable Objects |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | Mai ɗaukar kwantena na rakiya. Worker ba zai iya gudanar da su ba |
| Bibiya | Binciken Workers, ana kunnawa a `wrangler.jsonc` |

`REPORT_HYPERDRIVE` yana samar da matsayin rahoto ga ma'ajiya ta zahiri da aka
ambata a `HYPERDRIVE`. Wannan manufa ba ta hidimar da aka ɗora wa ƙarin ma'ajiyoyi
na zahiri kamar yadda aka bayyana a ƙasa.

## Abin da wannan manufa ba za ta iya yi ba <!--quire:what-this-target-cannot-do-->

Ana ƙin su lokacin farawa, tare da lissafa duk matsaloli a lokaci guda:

- **Babu SMTP.** Yi amfani da mai aika HTTP a `QUIRE_EMAIL_PROVIDER_CONFIG`.
- **Babu faifan gida.** Dole `QUIRE_STORAGE_DRIVER` ya nuna ajiyar abu.
- **Babu ainihin-lokaci ko ma'ajiyar ƙwaƙwalwa ta cikin tsari.** Workers ba sa
  raba ƙwaƙwalwa tsakanin buƙatu, don haka ana ƙin
  `QUIRE_REALTIME_DRIVER=inprocess` da `QUIRE_CACHE_DRIVER=memory`.
- **Babu ClamAV, Gotenberg ko ffmpeg a Worker.** Ana ƙin `CLAMAV_URL`,
  `GOTENBERG_URL` da `FFMPEG_PATH` idan an saita su a Worker; ka saita su a
  wurin mai aikin rakiya.
- **Babu ƙungiyoyin da ke da ma'ajiya ta musamman.** An kulle haɗin Hyperdrive
  na Worker lokacin turawa, saboda haka ƙungiyar da ke da nata ma'ajiya tana
  samun shafin bayani “babu a nan”. Yi mata hidima ta Compose ko Vercel.

Ga abu guda da ba a ƙi amma dole a sani: **sake gina shafi kafin lokaci da sake
gina sassa masu sauyawa ba sa aiki a Workers**, ko mene ne takardun bayanin tsarin
suka ce. Ana gina kowace hanya a kowane buƙata.

A wannan manufa a taƙaita ma'amaloli, kada a riƙe ɗaya yayin kiran hanyar sadarwa:
Hyperdrive yana sake saita matsayin zaman idan haɗi ya koma tafkin, saboda haka
ana saita mahallin ƙungiya ga kowace ma'amala.

## Tura sigar <!--quire:deploying-->

1. Ƙirƙiri albarkatun:
   ```sh
   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
   ```
   Saka ID na Hyperdrive guda biyu a `apps/web/wrangler.jsonc`.
2. Saita sirri, ɗaya bayan ɗaya ta `bun run --bun wrangler secret put <NAME>` daga
   `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`. Saitunan fili
   (`QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`,
   `QUIRE_DATABASE_ID`, `S3_ENDPOINT`, `S3_BUCKET`, `QUIRE_COLLAB_URL`) suna
   cikin `vars`.
3. Gina ka tura daga `apps/web`:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. Tura Worker na ainihin-lokaci, tare da `QUIRE_REALTIME_WORKER_SECRET` na
   sashen yanar gizo da alamar sa hannu a matsayin `QUIRE_REALTIME_TOKEN_SECRET`
   (sashen yanar gizo yana sa hannu ga alamomin ainihin-lokaci da nasa
   `QUIRE_REALTIME_TOKEN_SECRET`, ko `QUIRE_SECRET_KEY` idan ba a saita na farko
   ba; yi amfani da wanda yake amfani da shi), sannan saita adireshinsa ga
   `QUIRE_REALTIME_WORKER_URL` a sashen yanar gizo:
   ```sh
   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. Ga ayyuka masu sauƙi a Cloudflare Queues, ƙirƙiri jerin guda ga kowane jerin
   aiki mai sauƙi, sannan saita waɗannan a wurin mai aikin rakiya (alamar API mai
   izinin karatu da rubutawa na Queues):
   ```sh
   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
   ```
   Saita `QUIRE_QUEUE_DRIVER=cloudflare`, `CLOUDFLARE_ACCOUNT_ID`,
   `CLOUDFLARE_QUEUES_TOKEN`, da `QUIRE_QUEUE_PREFIX` idan ba `quire-` ba ne.
6. Gudanar da uwar garken rakiya kamar mataki na 3 a
   [jagorar Vercel](/ha/ops/vercel/). Ana gudanar da ƙaura a can kafin kowace turawar
   Worker.

A saitin da aka ƙi yana bayyana a `bun run --bun wrangler tail` da rubutun “The web tier did
not start on cloudflare”, sai jerin saitunan da za a canza.

Source: https://docs.quirelms.com/ha/ops/cloudflare/index.mdx
