---
title: "Ny sehatra ve-dalana ao amin'ny Cloudflare Workers"
description: "Mandeha amin'ny Cloudflare Workers ny sehatra ve-dalana fohy an'i Quire."
image: "https://docs.quirelms.com/og.png"
---

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

# Ny sehatra ve-dalana ao amin'ny Cloudflare Workers

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

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 <!--quire:status-in-this-release-->

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 <!--quire:the-pieces-->

| 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 |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | Mpandray anjara container. Tsy afaka miasa amin'ny Worker izy. |
| Fanaraha-maso | Fijerena ny Worker, apetraka ao amin'ny `wrangler.jsonc` |

Ny `REPORT_HYPERDRIVE` no manome ny andraikin'ny tatitra ho an'ny data-by ara-batana nosoratan'ny `HYPERDRIVE`. Tsy mampiasa mpanjifa voafaritra amin'ny data-by ara-batana fanampiny io sehatra io, araka ny lazaina ambany.

## Inona no tsy afakany io sehatra io <!--quire:what-this-target-cannot-do-->

Acomina amin'ny fiaingana, misy ny olana tsirairay aseho amin'ny fotoana iray:

- **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 <!--quire:deploying-->

1. Mamorona ny zavatra:
   ```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
   ```
   Apetraho ny ID Hyperdrive roa ao amin'ny `apps/web/wrangler.jsonc`.
2. 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`.
3. Fampandrafina avy amin'ny `apps/web`:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. 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:
   ```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. 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):
   ```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`, ary `QUIRE_QUEUE_PREFIX` raha tsy `quire-`.
6. Mandeha amin'ny mpandray anjara toy ny amin'ny [torolalana Vercel](/mg/ops/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.

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