---
title: "Stratum textorium in Cloudflare Workers"
description: "Stratum textorium Quire diminutum in Cloudflare Workers curra."
image: "https://docs.quirelms.com/og.png"
---

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

# Stratum textorium in Cloudflare Workers

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

Consilium est `docs/architecture/23-ops.md` sectio 6. Workers stratum textorium
diminutum currunt. Paritas munerum in Workers extra scopum est (PRD sectio 12):
quod haec meta facere non potest cum incipit refuitur, nomine.

## Status in hac editione <!--quire:status-in-this-release-->

Dispositio in loco est (`apps/web/wrangler.jsonc`, praescriptum Nitro
`cloudflare-module`, pons Hyperdrive et censurae incursionis). Worker
repositionem S3 compatibilem pro R2 desiderat
(`QUIRE_STORAGE_DRIVER=s3`), ducem temporis realis per petitiones
(`QUIRE_REALTIME_DRIVER=durable_objects` aut `centrifugo`), thesaurum communem
(`QUIRE_CACHE_DRIVER=postgres` aut `valkey`) et praebitorem epistularum HTTP.
Sine iis Worker recusat incipere et liber eius quamque constitutionem nominat.
Dux Durable Objects est client of Worker temporis realis in
`apps/realtime-worker` (unum Durable Object per canalem pro dispersione,
praesentia et historia, unum per hominem pro disconnectionibus); eum una, ut
infra, deploye aut Centrifugo utere.

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

| Pars | In Cloudflare |
| --- | --- |
| `web` | Worker cum `nodejs_compat` |
| Postgres | Externus, per Hyperdrive attingitur: `HYPERDRIVE` pro rola applicationis, `REPORT_HYPERDRIVE` pro rola commentariorum in iisdem basibus physicalibus. Stratum textorium quamque stringem connectionis in `DATABASE_URL` et `QUIRE_REPORT_DATABASE_URL` copiat cum incipit |
| Filetuli | R2, per suum API S3 (`S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com`); vinculum `FILES` bucket adiungit |
| Officia post tergum | pg-boss per Hyperdrive cum opus est scribendo in ordinem poni. Cum `QUIRE_QUEUE_DRIVER=cloudflare` in operario comite, levia officia (traditiones nuntiorum et retextorum non ordinatae) per Cloudflare Queues eunt potius, ita ut Postgres pro iis non interrogetur. Operarius comes utrumque currit |
| Tempus reale | Worker temporis realis, `apps/realtime-worker`, cum Durable Objects |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | Hospes container comitis. Worker ea curere non potest |
| Vestigatio | Observabilitas Workers, in `wrangler.jsonc` activata |

`REPORT_HYPERDRIVE` rolam commentariorum pro basibus physicalis a `HYPERDRIVE`
nominatis praebet. Haec meta inquilinos in basibus physicalis additionalibus
definitos non servit, ut infra describitur.

## Quod haec meta facere non potest <!--quire:what-this-target-cannot-do-->

Refuitur cum incipit, cum omni problema simul enumerato:

- **Nullum SMTP.** Praebitorem HTTP in `QUIRE_EMAIL_PROVIDER_CONFIG` utere.
- **Nullus discus localis.** `QUIRE_STORAGE_DRIVER` repositionem obiectorum
  nominare debet.
- **Nullum temporis reale aut thesaurus in processu.** Workers nullam memoriam
  inter petitiones communicant, ideo `QUIRE_REALTIME_DRIVER=inprocess` et
  `QUIRE_CACHE_DRIVER=memory` refuuntur.
- **Nullus ClamAV, Gotenberg aut ffmpeg in Worker.** `CLAMAV_URL`,
  `GOTENBERG_URL` et `FFMPEG_PATH` in Worker posita refuuntur; ea in operario
  comite pone potius.
- **Nulla collegia basium dedicatarum.** Vincula Hyperdrive Worker tempore
  deployis fixa sunt, ideo collegium proprias bases datae habens paginam manifestam
  "unavailable here" accipit. Ex Compose aut Vercel id serve.

Et una res quae non refuitur sed cognosci debet: **praerenderisatio et
regeneratio statica incrementalis in Workers non operantur**, quavis documentatione
frameworks dicat. Quaqua via per petitionem redditur.

In hoc meta transactiones breves serva et numquam unam per vocationem retis
contine: Hyperdrive statum sessionis restituit cum connexio in collectorem
reditur, ideo contextus inquilini per transactionem ponitur.

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

1. Res crea:
   ```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
   ```
   Duos identificatores Hyperdrive in `apps/web/wrangler.jsonc` pone.
2. Arcana pone, unum per tempus cum `bun run --bun wrangler secret put <NAME>` ex
   `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`. Constitutiones
   nuda (`QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`,
   `QUIRE_DATABASE_ID`, `S3_ENDPOINT`, `S3_BUCKET`, `QUIRE_COLLAB_URL`) in
   `vars` eunt.
3. Ex `apps/web` aedifica et deploye:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. Worker temporis realis deploye, cum `QUIRE_REALTIME_WORKER_SECRET` strati
   textorii et eius signo arcano ut `QUIRE_REALTIME_TOKEN_SECRET` (stratum
   textorium signa temporis realis suo proprio `QUIRE_REALTIME_TOKEN_SECRET`
   signat, aut `QUIRE_SECRET_KEY` cum id non positum est, ideo quod ipse
   usurpat utere), et `QUIRE_REALTIME_WORKER_URL` in strato textorio in eius
   addressam pone:
   ```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. Pro levibus officiis in Cloudflare Queues, unum ordinem per levem ordinem
   crea et haec in operario comite pone (signum API cum Queues lectione et
   scriptura):
   ```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`, et `QUIRE_QUEUE_PREFIX` si non `quire-`.
6. Hospitem comitem ut in [praecepto Vercel](/la/ops/vercel/), gradu 3, curre.
   Migrationes ibi curriunt, ante quamque deploy Worker.

Dispositio refusa in `bun run --bun wrangler tail` ut "The web tier did not
start on cloudflare" monstratur, cum singulis constitutionibus mutandis.

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