---
title: "Vefþrepið á Cloudflare Workers"
description: "Keyrðu skert vefþrep Quire á Cloudflare Workers."
image: "https://docs.quirelms.com/og.png"
---

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

# Vefþrepið á Cloudflare Workers

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

Hönnunin er í `docs/architecture/23-ops.md` kafla 6. Workers keyra skert
vefþrep. Eigindajafnræði á Workers er utan gildissviðs (PRD kafli 12): því
sem þetta markumhverfi getur ekki er hafnað þegar það ræsir, með nafni.

## Staðan í þessari útgáfu <!--quire:status-in-this-release-->

Uppsetningin er til staðar (`apps/web/wrangler.jsonc`, `cloudflare-module`
Nitro-forstillingin, Hyperdrive-brúin og ræsingarathuganirnar). Worker þarf
S3-samhæfða geymslu fyrir R2 (`QUIRE_STORAGE_DRIVER=s3`), rauntímarekil
þvert á beiðnir (`QUIRE_REALTIME_DRIVER=durable_objects` eða `centrifugo`),
sameiginlegt skyndiminni (`QUIRE_CACHE_DRIVER=postgres` eða `valkey`) og
tölvupóstveitu yfir HTTP. Án þeirra neitar Workerinn að ræsa og annállinn
nefnir hverja stillingu. Durable Objects-rekillinn er biðlari rauntíma-
Workersins í `apps/realtime-worker` (einn Durable Object á hverja rás fyrir
útvarp, viðveru og sögu, einn á hverja manneskju fyrir aftengingar); settu
hann upp með, eins og hér að neðan, eða notaðu Centrifugo.

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

| Hlutur | Á Cloudflare |
| --- | --- |
| `web` | Worker með `nodejs_compat` |
| Postgres | Ytri, náð í gegnum Hyperdrive: `HYPERDRIVE` fyrir forritshlutverkið, `REPORT_HYPERDRIVE` fyrir skýrsluhlutverkið á sama líkamlega gagnagrunni. Vefþrepið afritar hvorn tengistreng í `DATABASE_URL` og `QUIRE_REPORT_DATABASE_URL` þegar það ræsir |
| Skrár | R2, í gegnum S3-forritaskil þess (`S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com`); `FILES`-bindingin tengir fötu |
| Bakgrunnsverk | pg-boss yfir Hyperdrive þegar verkið verður að setja í biðröð með skrifum. Með `QUIRE_QUEUE_DRIVER=cloudflare` á fylgdarvinnsluvélinni fara léttu verkin (óraðaðar tilkynningar og vefkrókasendingar) í gegnum Cloudflare Queues í staðinn, svo Postgres er ekki kannað fyrir þau. Fylgdarvinnsluvélin keyrir bæði |
| Rauntími | Rauntíma-Workerinn, `apps/realtime-worker`, með Durable Objects |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | Fylgdarhýsill fyrir gáma. Worker getur ekki keyrt þau |
| Rekjanleiki | Workers-virðisaukning, kveikt í `wrangler.jsonc` |

`REPORT_HYPERDRIVE` gefur skýrsluhlutverkið fyrir líkamlega gagnagrunninn sem
`HYPERDRIVE` nefnir. Þetta markumhverfi þjónar ekki leigjendum sem eru festir
við viðbótargagnagrunna, eins og lýst er hér að neðan.

## Hvað þetta markumhverfi getur ekki <!--quire:what-this-target-cannot-do-->

Hafnað við ræsingu, með öll vandamál talin upp í einu:

- **Enginn SMTP.** Notaðu HTTP-veitu í `QUIRE_EMAIL_PROVIDER_CONFIG`.
- **Enginn staðbundinn diskur.** `QUIRE_STORAGE_DRIVER` verður að nefna hlutageymslu.
- **Enginn rauntími eða skyndiminni í ferli.** Workers deila engu minni milli
  beiðna, svo `QUIRE_REALTIME_DRIVER=inprocess` og
  `QUIRE_CACHE_DRIVER=memory` er hafnað.
- **Enginn ClamAV, Gotenberg eða ffmpeg í Workernum.** `CLAMAV_URL`,
  `GOTENBERG_URL` og `FFMPEG_PATH` stillt á Workernum er hafnað; stilltu þau á
  fylgdarvinnsluvélinni í staðinn.
- **Engar stofnanir með sér gagnagrunn.** Hyperdrive-bindingar Workers eru
  fastar við útgáfu, svo stofnun með eigin gagnagrunn fær skýra síðu um að
  þjónustan sé „ótiltæk hér“. Þjónaðu henni frá Compose eða Vercel.

Og eitt sem er ekki hafnað en verður að vita: **forvinnsla og
stigvaxandi endurmyndun virka ekki á Workers**, hvað sem skjöl rammapsins
segja. Hver leið er mynduð við hverja beiðni.

Á þessu markumhverfi skaltu halda viðskiptum stuttum og aldrei halda einu
þvert á netkall: Hyperdrive endur stillir setulotur þegar tenging fer aftur í
púllarann, svo leigjendasamhengið er stillt við hvert viðskipti.

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

1. Stofnaðu tilföngin:
   ```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
   ```
   Settu Hyperdrive-auðkenninu tvö í `apps/web/wrangler.jsonc`.
2. Stilltu leyndarmálin, eitt í einu með `bun run --bun wrangler secret put <NAME>` frá
   `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`. Einföld
   stillingar (`QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`,
   `QUIRE_DATABASE_ID`, `S3_ENDPOINT`, `S3_BUCKET`, `QUIRE_COLLAB_URL`) fara í
   `vars`.
3. Byggðu og settu út frá `apps/web`:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. Settu út rauntíma-Workerinn, með `QUIRE_REALTIME_WORKER_SECRET` vefþrepsins
   og táknleyndarmál þess sem `QUIRE_REALTIME_TOKEN_SECRET` (vefþrepið undirritar
   rauntímatákn með eigin `QUIRE_REALTIME_TOKEN_SECRET`, eða með
   `QUIRE_SECRET_KEY` þegar það er óstillt, svo notaðu hvort það notar), og stilltu
   `QUIRE_REALTIME_WORKER_URL` á vefþrepinu á vistfang þess:
   ```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. Fyrir létt verk á Cloudflare Queues skaltu stofna eina biðröð fyrir hverja
   létta biðröð og stilla þetta á fylgdarvinnsluvélinni (API-tákn með lestri og
   skrifum í 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` og `QUIRE_QUEUE_PREFIX` ef ekki `quire-`.
6. Keyrðu fylgdarhýsilinn eins og í [Vercel-leiðbeiningunum](/is/ops/vercel/), skrefi 3.
   Flutningar keyra þar, fyrir hverja Worker-útgáfu.

Hafnaðri uppsetningu sést í `bun run --bun wrangler tail` sem „The web tier did
not start on cloudflare“, fylgt eftir með hverri stillingu til að breyta.

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