---
title: "Il-livell web fuq Cloudflare Workers"
description: "Ħaddem livell web imnaqqas ta' Quire fuq Cloudflare Workers."
image: "https://docs.quirelms.com/og.png"
---

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

# Il-livell web fuq Cloudflare Workers

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

Id-disinn jinsab f'`docs/architecture/23-ops.md` sezzjoni 6. Workers imexxu livell web
imnaqqas. Parità ta' karatteristiċi fuq Workers hija barra mill-iskop (PRD sezzjoni 12): dak li
dan il-mira ma jistax jagħmel jiġi rifjutat meta jibda, bl-isem.

## Status f'din ir-release <!--quire:status-in-this-release-->

Il-konfigurazzjoni tinsab f'postha (`apps/web/wrangler.jsonc`, il-preset Nitro
`cloudflare-module`, il-pont Hyperdrive u l-kontrolli tal-bidu). Worker jeħtieġ ħażna kompatibbli ma' S3 għal R2
(`QUIRE_STORAGE_DRIVER=s3`), driver realtime bejn talbiet
(`QUIRE_REALTIME_DRIVER=durable_objects` jew `centrifugo`), cache kondiviża
(`QUIRE_CACHE_DRIVER=postgres` jew `valkey`) u fornitur tal-email HTTP.
Mingħajrhom il-Worker jirrifjuta li jibda u l-log tiegħu jsemmi kull setting.
Id-driver Durable Objects huwa klijent tal-Worker realtime f'
`apps/realtime-worker` (Durable Object wieħed għal kull kanal għal fan-out, preżenza
u storja, wieħed għal kull persuna għal skonnessjonijiet); deployjah flimkien, kif hawn taħt,
jew uża Centrifugo.

## Il-biċċiet <!--quire:the-pieces-->

| Piece | On Cloudflare |
| --- | --- |
| `web` | Worker b'`nodejs_compat` |
| Postgres | Estern, milħuq permezz ta' Hyperdrive: `HYPERDRIVE` għar-rwol tal-applikazzjoni, `REPORT_HYPERDRIVE` għar-rwol tar-rapport fuq dik l-istess database fiżika. Il-livell web jikkopja kull string ta' konnessjoni f'`DATABASE_URL` u `QUIRE_REPORT_DATABASE_URL` meta jibda |
| Files | R2, permezz tal-API S3 tiegħu (`S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com`); il-binding `FILES` iwaħħal il-bucket |
| Background jobs | pg-boss fuq Hyperdrive meta x-xogħol irid jiġi kkwodjat ma' kitba. B'`QUIRE_QUEUE_DRIVER=cloudflare` fuq il-worker sieħeb, ix-xogħol ħafif (kunsinni ta' notifiki mhux ordnati u webhook) jgħaddi minn Cloudflare Queues minflok, biex Postgres ma jiġix polled għalihom. Il-worker sieħeb imexxi t-tnejn |
| Realtime | Il-Worker realtime, `apps/realtime-worker`, b'Durable Objects |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | Host sieħeb ta' containers. Worker ma jistax imexxihom |
| Tracing | Osservabbiltà ta' Workers, mixgħula f'`wrangler.jsonc` |

`REPORT_HYPERDRIVE` jipprovdi r-rwol tar-rapport għad-database fiżika msemmija
minn `HYPERDRIVE`. Din il-mira ma sservix tenants imwaħħla ma' databases fiżiċi addizzjonali,
kif deskritt hawn taħt.

## X'dan il-mira ma jistax jagħmel <!--quire:what-this-target-cannot-do-->

Rifjutat fil-bidu, b'kull problema elenkata f'daqqa:

- **Ebda SMTP.** Uża fornitur HTTP f'`QUIRE_EMAIL_PROVIDER_CONFIG`.
- **Ebda disk lokali.** `QUIRE_STORAGE_DRIVER` irid isemmi ħażna ta' oġġetti.
- **Ebda realtime jew cache fil-proċess.** Workers ma jaqsmu l-ebda memorja bejn
  talbiet, għalhekk `QUIRE_REALTIME_DRIVER=inprocess` u
  `QUIRE_CACHE_DRIVER=memory` huma rifjutati.
- **Ebda ClamAV, Gotenberg jew ffmpeg fil-Worker.** `CLAMAV_URL`,
  `GOTENBERG_URL` u `FFMPEG_PATH` issettjati fuq il-Worker huma rifjutati; issettjahom fuq
  il-worker sieħeb minflok.
- **Ebda organizzazzjoni b'database dedikata.** Il-bindings Hyperdrive ta' Worker huma
  fissi fil-ħin tad-deploy, għalhekk organizzazzjoni bid-database tagħha tieħu paġna ċara
  "mhux disponibbli hawn". Serviha minn Compose jew Vercel.

U ħaġa waħda li mhijiex rifjutata iżda trid tkun magħrufa: **prerendering u
riġenerazzjoni statika inkrementali ma jaħdmux fuq Workers**, tkun xi tkun
tgħid id-dokumentazzjoni tal-framework. Kull rotta tirrendi għal kull talba.

Fuq din il-mira żomm it-tranżazzjonijiet qosra u qatt ma żomm waħda fuq sejħa tan-network:
Hyperdrive jerġa' jistabbilixxi l-istat tas-sessjoni meta konnessjoni terġa' lura fil-pool,
għalhekk il-kuntest tat-tenant jiġi ssettjat għal kull tranżazzjoni.

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

1. Oħloq ir-riżorsi:
   ```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
   ```
   Poġġi ż-żewġ ids ta' Hyperdrive f'`apps/web/wrangler.jsonc`.
2. Issettja s-sigrieti, wieħed kull darba b'`bun run --bun wrangler secret put <NAME>` minn
   `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`. Settings sempliċi
   (`QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`,
   `QUIRE_DATABASE_ID`, `S3_ENDPOINT`, `S3_BUCKET`, `QUIRE_COLLAB_URL`) imorru f'
   `vars`.
3. Ibni u deployja minn `apps/web`:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. Deployja l-Worker realtime, bis-`QUIRE_REALTIME_WORKER_SECRET` tal-livell web
   u s-sigriet tat-token tiegħu bħala `QUIRE_REALTIME_TOKEN_SECRET` (il-livell web jiffirma
   tokens realtime bis-`QUIRE_REALTIME_TOKEN_SECRET` tiegħu stess, jew b'
   `QUIRE_SECRET_KEY` meta dak ikun issettjat, għalhekk uża liema juża), u ssettja
   `QUIRE_REALTIME_WORKER_URL` fuq il-livell web għall-indirizz tiegħu:
   ```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. Għal xogħol ħafif fuq Cloudflare Queues, oħloq queue waħda għal kull queue ħafifa u
   issettja dawn fuq il-worker sieħeb (token API b'qari u
   kitba ta' 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`, u `QUIRE_QUEUE_PREFIX` jekk mhuwiex `quire-`.
6. Ħaddem il-host sieħeb kif fil-[gwida ta' Vercel](/mt/ops/vercel/), pass 3.
   Il-migrazzjonijiet jaħdmu hemmhekk, qabel kull deployment tal-Worker.

Konfigurazzjoni rifjutata tidher f'`bun run --bun wrangler tail` bħala "The web tier did
not start on cloudflare", segwita minn kull setting x'tibdel.

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