---
title: "Tīmekļa slānis vietnē Cloudflare Workers"
description: "Palaidiet samazinātu Quire tīmekļa slāni vietnē Cloudflare Workers."
image: "https://docs.quirelms.com/og.png"
---

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

# Tīmekļa slānis vietnē Cloudflare Workers

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

Konstrukcija ir `docs/architecture/23-ops.md` 6. sadaļa. Workers darbina
samazinātu tīmekļa slāni. Funkciju līdzvērtība Workers ir ārpus šī uzdevuma
tvēruma (skat. PRD 12. sadaļu): ko šis mērķis nevar darīt, tas tiek noraidīts
startējot, nosaucot pēc nosaukuma.

## Statuss šajā versijā <!--quire:status-in-this-release-->

Konfigurācija ir vietā (`apps/web/wrangler.jsonc`, `cloudflare-module` Nitro
profils, Hyperdrive tilti un palaišanas pārbaudes). Worker vajadzīga
saderīga ar S3 glabātuve R2 (`QUIRE_STORAGE_DRIVER=s3`), reāllaika draivers
starp pieprasījumiem (`QUIRE_REALTIME_DRIVER=durable_objects` vai
`centrifugo`), koplietots kešs (`QUIRE_CACHE_DRIVER=postgres` vai `valkey`) un
HTTP e-pasta pakalpojuma sniedzējs. Bez tiem Workers atsakās startēt, un tā
žurnālā tiek nosaukts katrs iestatījums. Durable Objects draivers ir reāllaika
Workers klients mapē `apps/realtime-worker` (viens Durable Object katram kanālam
izplatīšanai, klātbūtsei un vēsturei, viens katrai personai atvienošanām); to
izvietojiet blakus, kā zemāk, vai izmantojiet Centrifugo.

## Komponentes <!--quire:the-pieces-->

| Komponente | Cloudflare |
| --- | --- |
| `web` | Workers ar `nodejs_compat` |
| Postgres | Ārējs, sasniedzams caur Hyperdrive: `HYPERDRIVE` lietojumprogrammas lomai, `REPORT_HYPERDRIVE` atskaišu lomai tai pašai fiziskajai datubāzei. Tīmekļa slānis startējot nokopē katru savienojuma virkni iekš `DATABASE_URL` un `QUIRE_REPORT_DATABASE_URL` |
| Faili | R2, caur tā S3 API (`S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com`); saite `FILES` pievieno spaini |
| Fona darbi | pg-boss pār Hyperdrive, kad darbs jāliek rindā ar ierakstīšanu. Ar `QUIRE_QUEUE_DRIVER=cloudflare` uz pavadošā darbinīka vieglie darbi (nekārtotie paziņojumu un tīmekļa āķu piegādes) tā vietā iet caur Cloudflare Queues, lai Postgres tiem nebūtu jāvaicā. Pavadošais darbinīks dara abus |
| Reāllaiks | Reāllaika Workers, `apps/realtime-worker`, ar Durable Objects |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | Pavadošais konteineru serveris. Workers tos nevar palaist |
| Izsekošana | Workers observability, ieslēgts `wrangler.jsonc` |

`REPORT_HYPERDRIVE` nodrošina atskaišu lomu fiziskajai datubāzei, ko nosaka
`HYPERDRIVE`. Šis mērķis neapkalpo nomniekus, kas piesaistīti papildu fiziskām
datubāzēm, kā aprakstīts tālāk.

## Ko šis mērķis nevar darīt <!--quire:what-this-target-cannot-do-->

Noraidīts startējot, uzreiz uzskaitot katru problēmu:

- **Nav SMTP.** `QUIRE_EMAIL_PROVIDER_CONFIG` izmantojiet HTTP pakalpojuma
  sniedzēju.
- **Nav vietējā diska.** `QUIRE_STORAGE_DRIVER` ir jānosaka objektu glabātuvi.
- **Nav procesa iekšēja reāllaika vai keša.** Workers nepakļauj atmiņu starp
  pieprasījumiem, tāpēc `QUIRE_REALTIME_DRIVER=inprocess` un
  `QUIRE_CACHE_DRIVER=memory` tiek noraidīti.
- **Worker nav ClamAV, Gotenberg vai ffmpeg.** Uz Worker iestatītie
  `CLAMAV_URL`, `GOTENBERG_URL` un `FFMPEG_PATH` tiek noraidīti; iestatiet tos
  pavadošajā darbinīkā.
- **Nav atsevišķas datubāzes organizāciju.** Worker Hyperdrive saites ir
  fiksētas izvietošanas brīdī, tāpēc organizācija ar savu datubāzi saņem
  skaidru lapu "unavailable here". Kalpojiet to no Compose vai Vercel.

Un viena lieta, kas netiek noraidīta, bet ir jāzina: **priekšizskatīšana un
pakāpeniska statiskā pārģenerēšana Workers nedarbojas**, neatkarīgi no tā, ko
saka framework dokumentācija. Katrs maršruts tiek renderēts katram pieprasījumam.

Šajā mērķī turiet darījumus īsus un nekad neturiet tos pār tīkla izsaukumu:
Hyperdrive atjauno sesijas stāvokli, kad savienojums atgriežas baseinā, tāpēc
nomnieka konteksts tiek iestatīts katram darījumam.

## Izvietošana <!--quire:deploying-->

1. Izveidojiet resursus:
   ```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
   ```
   Ielieciet abus Hyperdrive ID mapē `apps/web/wrangler.jsonc`.
2. Iestatiet noslēpumus, pa vienam ar `bun run --bun wrangler secret put <NAME>` no
   `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`. Parastie
   iestatījumi (`QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`,
   `QUIRE_PLATFORM_DOMAINS`, `QUIRE_DATABASE_ID`, `S3_ENDPOINT`, `S3_BUCKET`,
   `QUIRE_COLLAB_URL`) nonāk iekš `vars`.
3. Uzbūvējiet un izvietojiet no `apps/web`:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. Izvietojiet reāllaika Worker ar tīmekļa slāņa
   `QUIRE_REALTIME_WORKER_SECRET` un tā žetona noslēpumu kā
   `QUIRE_REALTIME_TOKEN_SECRET` (tīmekļa slānis paraksta reāllaika žetonus ar
   savu `QUIRE_REALTIME_TOKEN_SECRET` vai, ja tas nav iestatīts, ar
   `QUIRE_SECRET_KEY`, tāpēc izmantojiet to, ko tas izmanto), un iestatiet uz
   tīmekļa slāņa `QUIRE_REALTIME_WORKER_URL` uz tā adresi:
   ```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. Vieglo darbu gadījumā vietnē Cloudflare Queues izveidojiet pa vienai rindai
   katram vieglajam darbam un iestatiet tos pavadošajā darbinīkā (API žetons
   ar Queues lasīšanas un rakstīšanas tiesībām):
   ```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` un `QUIRE_QUEUE_PREFIX`, ja tas nav `quire-`.
6. Palaidiet pavadošo serveri tā, kā [Vercel ceļvedī](/lv/ops/vercel/), 3. solī.
   Migrācijas tur tiek palaistas pirms katra Workers izvietojuma.

Noraidīta konfigurācija `bun run --bun wrangler tail` parādās kā "The web tier did not
start on cloudflare", kam seko katrs iestatījums, kas jāmaina.

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