---
title: "Ọkwa weebụ na Cloudflare Workers"
description: "Gbaa ọkwa weebụ Quire dị nta na Cloudflare Workers."
image: "https://docs.quirelms.com/og.png"
---

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

# Ọkwa weebụ na Cloudflare Workers

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

Nhazi ahụ dị na `docs/architecture/23-ops.md` ngalaba 6. Workers na-agba
ọkwa weebụ dị nta. Ịha nhata na Workers adịghị n'ọrụ a (PRD ngalaba 12):
ihe ebumnobi a enweghị ike ime ka a na-ajụ mgbe ọ malitere, na-akpọ aha.

## Ọnọdụ na mwepụta a <!--quire:status-in-this-release-->

Nhazi ahụ adịlarị (`apps/web/wrangler.jsonc`, nhazi Nitro
`cloudflare-module`, njikọ Hyperdrive na nlele mmalite). Worker chọrọ usoro
nchekwa maka R2 dabara na S3 (`QUIRE_STORAGE_DRIVER=s3`), usoro ozi ozugbo
gafee arịrịọ (`QUIRE_REALTIME_DRIVER=durable_objects` ma ọ bụ `centrifugo`),
nchekwa ọnụ (`QUIRE_CACHE_DRIVER=postgres` ma ọ bụ `valkey`) na onye na-enye
email site na HTTP. Na-enweghị ha Worker jụrụ ịmalite, ndekọ ya akpọkwa
ntọala ọ bụla. Usoro Durable Objects bụ onye ahịa nke Worker ozi ozugbo dị
na `apps/realtime-worker` (otu Durable Object kwa channel maka mgbasa,
ọnụnọ na akụkọ, otu kwa mmadụ maka nkwụsị); bunye ya n'akụkụ, dị ka n'okpuru,
ma ọ bụ jiri Centrifugo.

## Akụkụ dị iche iche <!--quire:the-pieces-->

| Akụkụ | Na Cloudflare |
| --- | --- |
| `web` | Worker na `nodejs_compat` |
| Postgres | N'èzí, a na-eru ya site na Hyperdrive: `HYPERDRIVE` maka ọrụ ngwa, `REPORT_HYPERDRIVE` maka ọrụ akụkọ na otu nchekwa data anụ ahụ ahụ. Ọkwa weebụ na-edegharị eriri njikọ ọ bụla na `DATABASE_URL` na `QUIRE_REPORT_DATABASE_URL` mgbe ọ malitere |
| Faịlụ | R2, site na API S3 ya (`S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com`); njikọ `FILES` na-ejikọta bucket |
| Ọrụ ndabere | pg-boss site na Hyperdrive mgbe a ga-etinye ọrụ n'ahịrị na ederede. Na `QUIRE_QUEUE_DRIVER=cloudflare` na worker ibe, ọrụ dị mfe (nnyefe ngosi na webhook na-enweghị usoro) na-aga site na Cloudflare Queues kama, ka a ghara ịjụ Postgres ajụjụ maka ha. Worker ibe na-agba ha abụọ |
| Ozi ozugbo | Worker ozi ozugbo, `apps/realtime-worker`, na Durable Objects |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | Họst akpa ibe. Worker enweghị ike ịgba ha |
| Nsochi | Nlekọta Workers, agbanyere na `wrangler.jsonc` |

`REPORT_HYPERDRIVE` na-enye ọrụ akụkọ maka nchekwa data anụ ahụ
`HYPERDRIVE` kpọrọ. Ebumnobi a anaghị enye tenants a tụkwasịrị na nchekwa
data anụ ahụ ọzọ, dị ka akọwara n'okpuru.

## Ihe ebumnobi a enweghị ike ime <!--quire:what-this-target-cannot-do-->

A jụrụ na mmalite, na-edepụta nsogbu ọ bụla n'otu oge:

- **Enweghị SMTP.** Jiri onye na-enye ọrụ site na HTTP na
  `QUIRE_EMAIL_PROVIDER_CONFIG`.
- **Enweghị disk mpaghara.** `QUIRE_STORAGE_DRIVER` ga-akpọ nchekwa ihe.
- **Enweghị ozi ozugbo ma ọ bụ nchekwa n'ime usoro.** Workers anaghị
  kekọrịta ncheta n'etiti arịrịọ, ya mere a jụrụ
  `QUIRE_REALTIME_DRIVER=inprocess` na `QUIRE_CACHE_DRIVER=memory`.
- **Enweghị ClamAV, Gotenberg ma ọ bụ ffmpeg na Worker.** A jụrụ
  `CLAMAV_URL`, `GOTENBERG_URL` na `FFMPEG_PATH` atọrọ na Worker; tọọ ha na
  worker ibe kama.
- **Enweghị otu nwere nchekwa data nke ha.** Njikọ Hyperdrive nke Worker
  na-adịgide na oge mbunye, ya mere otu nwere nchekwa data nke ya na-enweta
  peeji doro anya "unavailable here". Nye ya site na Compose ma ọ bụ Vercel.

Na otu ihe a na-ajụghị mana a ga-amarịrị: **prerendering na incremental
static regeneration anaghị arụ ọrụ na Workers**, n'agbanyeghị ihe akwụkwọ
framework kwuru. Ụzọ ọ bụla na-apụta n'arịrịọ ọ bụla.

Na ebumnobi a mee ka transaction dị mkpụmkpụ, ejidekwala otu gafee oku
netwọk: Hyperdrive na-emegharị ọnọdụ session mgbe njikọ laghachiri na ọdọ
mmiri, ya mere a na-atọ ọnọdụ tenant n'otu transaction.

## Mbunye <!--quire:deploying-->

1. Mepụta akụ:
   ```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
   ```
   Tinye id Hyperdrive abụọ na `apps/web/wrangler.jsonc`.
2. Tọọ nzuzo, otu n'otu oge na `bun run --bun wrangler secret put <NAME>` site na
   `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`. Ntọala nkịtị
   (`QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`,
   `QUIRE_DATABASE_ID`, `S3_ENDPOINT`, `S3_BUCKET`, `QUIRE_COLLAB_URL`) na-aga
   na `vars`.
3. Wuo ma bunye site na `apps/web`:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. Bunye Worker ozi ozugbo, na `QUIRE_REALTIME_WORKER_SECRET` nke ọkwa weebụ
   na nzuzo token ya dịka `QUIRE_REALTIME_TOKEN_SECRET` (ọkwa weebụ na-ebinye
   aka na token ozi ozugbo na `QUIRE_REALTIME_TOKEN_SECRET` nke ya, ma ọ bụ
   na `QUIRE_SECRET_KEY` mgbe nke ahụ adịghị, ya mere jiri nke ọ na-eji),
   tọọkwa `QUIRE_REALTIME_WORKER_URL` na ọkwa weebụ na adreesị ya:
   ```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. Maka ọrụ dị mfe na Cloudflare Queues, mepụta otu queue kwa queue dị mfe
   tọọkwa ihe ndị a na worker ibe (token API na ọgụgụ na ide 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
   ```
   `QUIRE_QUEUE_DRIVER=cloudflare`, `CLOUDFLARE_ACCOUNT_ID`,
   `CLOUDFLARE_QUEUES_TOKEN`, na `QUIRE_QUEUE_PREFIX` ma ọ bụghị `quire-`.
6. Gbaa họst ibe dị ka na [ntuziaka Vercel](/ig/ops/vercel/), nzọụkwụ 3.
   Mbugharị na-agba ebe ahụ, tupu mbunye Worker ọ bụla.

Nhazi a jụrụ na-egosi na `bun run --bun wrangler tail` dịka "The web tier did
not start on cloudflare", na-esote ntọala ọ bụla ịgbanwe.

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