---
title: "Veebikiht Cloudflare Workersi platvormil"
description: "Käivita vähendatud Quire'i veebikiht Cloudflare Workersi platvormil."
image: "https://docs.quirelms.com/og.png"
---

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

# Veebikiht Cloudflare Workersi platvormil

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

Arhitektuur on kirjeldatud dokumendi `docs/architecture/23-ops.md` jaotises 6.
Workers käitab vähendatud veebikihti. Funktsioonide võrdsus pole Workersi puhul
eesmärk (PRD jaotis 12): sihtkoha piirangutest keeldutakse käivitumisel nimeliselt.

## Selle väljalaske olek <!--quire:status-in-this-release-->

Seadistus on olemas (`apps/web/wrangler.jsonc`, `cloudflare-module` Nitro
eelseade, Hyperdrive'i sild ja käivituskontrollid). Worker vajab R2 jaoks
S3-ühilduvat salvestust (`QUIRE_STORAGE_DRIVER=s3`), päringutevahelist
reaalajaside draiverit (`QUIRE_REALTIME_DRIVER=durable_objects` või
`centrifugo`), jagatud vahemälu (`QUIRE_CACHE_DRIVER=postgres` või `valkey`)
ning HTTP-põhist e-posti pakkujat. Nendeta keeldub Worker käivitumast ja logi
nimetab kõik seaded. Durable Objectsi draiver kasutab rakenduses
`apps/realtime-worker` asuvat reaalajateenust (iga kanali jaoks üks Durable
Object edastuseks, kohalolekuks ja ajalooks; iga inimese jaoks üks ühenduse
katkemiseks); juuruta see allpool kirjeldatud viisil kõrvale või kasuta
Centrifugot.

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

| Osa | Cloudflare'is |
| --- | --- |
| `web` | `nodejs_compat`-iga Worker |
| Postgres | Väline, Hyperdrive'i kaudu: `HYPERDRIVE` rakenduserollile ning samas füüsilises andmebaasis aruanderollile `REPORT_HYPERDRIVE`. Käivitumisel kopeerib veebikiht ühendusstringid `DATABASE_URL` ja `QUIRE_REPORT_DATABASE_URL` muutujasse |
| Failid | R2, S3 API kaudu (`S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com`); `FILES` sidumine ühendab hoidla |
| Tausttööd | Kirjutustoiminguga järjekorda lisatava töö jaoks pg-boss Hyperdrive'i kaudu. Kui kaas-töötlejal on `QUIRE_QUEUE_DRIVER=cloudflare`, lähevad kerged tööd (järjestamata teavitused ja veebikonksude edastused) hoopis Cloudflare Queuesi, nii et Postgresit nende jaoks ei küsitleta. Kaas-töötleja käitab mõlemat |
| Reaalajaside | Reaalaja-Worker `apps/realtime-worker` koos Durable Objectsiga |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | Kaaskonteinerite host. Worker neid käitada ei saa |
| Jälitus | Workersi jälgitavus, lubatud failis `wrangler.jsonc` |

`REPORT_HYPERDRIVE` annab aruanderolli füüsilise andmebaasi jaoks, mille nimi on
`HYPERDRIVE`. See sihtkoht ei teeninda lisafüüsilistesse andmebaasidesse seotud
rentnikke, nagu allpool kirjeldatud.

## Mida see sihtkoht teha ei saa <!--quire:what-this-target-cannot-do-->

Käivitamisel lükatakse kõik probleemid korraga tagasi:

- **SMTP puudub.** Kasuta väljal `QUIRE_EMAIL_PROVIDER_CONFIG` HTTP-pakkujat.
- **Kohalik ketas puudub.** `QUIRE_STORAGE_DRIVER` peab nimetama
  objektisalvestust.
- **Protsessisisest reaalajasidet ega vahemälu pole.** Workerite päringud ei
  jaga mälu, seega lükatakse tagasi `QUIRE_REALTIME_DRIVER=inprocess` ja
  `QUIRE_CACHE_DRIVER=memory`.
- **Workeris pole ClamAV-d, Gotenbergi ega ffmpegi.** Workerile määratud
  `CLAMAV_URL`, `GOTENBERG_URL` ja `FFMPEG_PATH` lükatakse tagasi; määra need
  kaastöötlejale.
- **Eriotstarbelise andmebaasiga organisatsioone pole.** Workeri Hyperdrive'i
  sidumised on juurutamisel fikseeritud, seega näeb oma andmebaasiga
  organisatsioon selget teadet „siin pole saadaval”. Teeninda seda Compose'i või
  Verceli kaudu.

Samuti tuleb teada, et **eelrenderdamine ja järkjärguline staatiline taastootmine
ei tööta Workersis**, mida tahes ütleb raamistiku dokumentatsioon. Iga marsruut
renderdatakse päringu korral.

Hoia sellel sihtkohal tehingud lühikesed ega jäta neid võrgukutse ajaks avatuks:
ühenduse ühendusepuhvrisse naastes lähtestab Hyperdrive seansi oleku, mistõttu
rentniku kontekst määratakse iga tehingu kohta eraldi.

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

1. Loo ressursid:
   ```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
   ```
   Lisa kaks Hyperdrive'i ID-d faili `apps/web/wrangler.jsonc`.
2. Määra saladused ükshaaval käsuga `bun run --bun wrangler secret put <NAME>` kaustas
   `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`. Lihtsad seaded
   (`QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`,
   `QUIRE_DATABASE_ID`, `S3_ENDPOINT`, `S3_BUCKET`, `QUIRE_COLLAB_URL`) lisa
   jaotisse `vars`.
3. Ehita ja juuruta kaustast `apps/web`:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. Juuruta reaalaja-Worker, andes sellele veebikihi väärtuse
   `QUIRE_REALTIME_WORKER_SECRET` ja märgi saladuse `QUIRE_REALTIME_TOKEN_SECRET`
   (veebikiht allkirjastab reaalajamärgid enda `QUIRE_REALTIME_TOKEN_SECRET` abil
   või selle puudumisel `QUIRE_SECRET_KEY`-ga, seega kasuta sama väärtust, mida
   veebikiht kasutab). Määra veebikihis ka selle aadressiks
   `QUIRE_REALTIME_WORKER_URL`:
   ```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. Cloudflare Queuesi kergete tööde jaoks loo iga kerge järjekorra kohta oma
   järjekord ja määra need kaastöötlejal (API tunnus peab lubama Queuesi lugemist
   ja kirjutamist):
   ```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
   ```
   Määra `QUIRE_QUEUE_DRIVER=cloudflare`, `CLOUDFLARE_ACCOUNT_ID`,
   `CLOUDFLARE_QUEUES_TOKEN` ning `QUIRE_QUEUE_PREFIX`, kui eesliide pole `quire-`.
6. Käivita kaashost nii, nagu kirjeldab [Verceli juhendi](/et/ops/vercel/) 3. samm.
   Migratsioonid käivitatakse seal enne iga Workeri juurutust.

Tagasilükatud seadistust näeb käsuga `bun run --bun wrangler tail`; logi algab tekstiga
"The web tier did not start on cloudflare" ja nimetab muudetavad seaded.

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