A kialakítást a docs/architecture/23-ops.md 6. szakasza ismerteti. A Workers csökkentett webes réteget futtat. A teljes funkcióegyezés nem cél Workersen (PRD 12. szakasz); amit ez a célkörnyezet nem tud, azt induláskor név szerint elutasítja.
Állapot ebben a kiadásban
A konfiguráció rendelkezésre áll (apps/web/wrangler.jsonc, a cloudflare-module Nitro-előbeállítás, a Hyperdrive-kapcsoló és indítási ellenőrzések). A Workernek S3-kompatibilis tárolás kell az R2-höz (QUIRE_STORAGE_DRIVER=s3), kérések között használható realtime driver (QUIRE_REALTIME_DRIVER=durable_objects vagy centrifugo), megosztott gyorsítótár (QUIRE_CACHE_DRIVER=postgres vagy valkey) és HTTP-s e-mail-szolgáltató. Ezek nélkül a Worker nem indul, és a napló megnevezi a hiányzó beállításokat. A Durable Objects driver az apps/realtime-worker realtime Worker kliensét használja (csatornánként egy Durable Object továbbításhoz, jelenléthez és előzményekhez, személyenként egy a leválasztáshoz); telepítse vele együtt az alábbiak szerint, vagy használjon Centrifugót.
Összetevők
Összetevő
A Cloudflare-en
web
nodejs_compat-ot használó Worker
Postgres
Külső, Hyperdrive-on keresztül: HYPERDRIVE az alkalmazásszerepkörhöz, REPORT_HYPERDRIVE ugyanazon fizikai adatbázis jelentési szerepköréhez. Induláskor a webes réteg minden kapcsolati karakterláncot DATABASE_URL és QUIRE_REPORT_DATABASE_URL értékként másol be
Fájlok
R2 az S3 API-n keresztül (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); a FILES kötés kapcsolja hozzá a bucketet
Háttérfeladatok
pg-boss Hyperdrive-on át, ha a feladatot írással egy tranzakcióban kell sorba állítani. A kiegészítő worker QUIRE_QUEUE_DRIVER=cloudflare beállításával az egyszerű feladatok (nem sorrendhez kötött értesítések és webhookkézbesítések) Cloudflare Queues-en futnak, így ezek miatt nem ellenőrzi a Postgres-sorokat. A kiegészítő worker mindkét típust futtatja
Kiegészítő konténerhost. A Worker nem tudja futtatni őket
Nyomkövetés
Workers megfigyelhetőség, a wrangler.jsonc fájlban engedélyezve
A REPORT_HYPERDRIVE a HYPERDRIVE által megadott fizikai adatbázis jelentési szerepkörét biztosítja. Ez a célkörnyezet nem szolgál ki további fizikai adatbázishoz rögzített tenantokat, ahogy lentebb olvasható.
Amit ez a célkörnyezet nem tud
Induláskor minden problémát egyszerre felsorolva elutasítja a beállítást:
Nincs SMTP. Használjon HTTP-s szolgáltatót a QUIRE_EMAIL_PROVIDER_CONFIG beállításban.
Nincs helyi lemez. A QUIRE_STORAGE_DRIVER értékének objektumtárolót kell megadnia.
Nincs folyamaton belüli realtime vagy gyorsítótár. A Workers nem oszt meg memóriát a kérések között, ezért elutasítja a QUIRE_REALTIME_DRIVER=inprocess és QUIRE_CACHE_DRIVER=memory értékeket.
A Workerben nincs ClamAV, Gotenberg vagy ffmpeg. A Worker környezetében megadott CLAMAV_URL, GOTENBERG_URL és FFMPEG_PATH elutasított; állítsa be őket a kiegészítő workeren.
Nincsenek dedikált adatbázisú szervezetek. A Worker Hyperdrive-kötései telepítéskor rögzülnek, ezért a saját adatbázissal rendelkező szervezet érthető „unavailable here” oldalt kap. Szolgálja ki Compose-ról vagy Vercelről.
Egy további tudnivaló, amelyet nem utasít el: a prerenderelés és a fokozatos statikus újragenerálás nem működik Workersen, akármit is ír a keretrendszer dokumentációja. Minden útvonal kérésenként renderelődik.
Ezen a célkörnyezeten tartsa röviden a tranzakciókat, és soha ne tartson nyitva tranzakciót hálózati hívás alatt: a Hyperdrive visszaállítja a munkamenet állapotát, amikor a kapcsolat visszakerül a poolba, ezért a tenant kontextusát tranzakciónként kell beállítani.
Üzembe helyezés
Hozza létre az erőforrásokat:
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-filesbun run --bun wrangler queues create quire-jobs
Helyezze a két Hyperdrive-azonosítót az apps/web/wrangler.jsonc fájlba.
Az egyes titkok beállításához futtassa a bun run --bun wrangler secret put <NAME> parancsot az apps/web mappából: 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. Az egyszerű beállításokat (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) a vars alatt adja meg.
Az apps/web mappából építse és telepítse:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Telepítse a realtime Workert a webes réteg QUIRE_REALTIME_WORKER_SECRET értékével és annak tokenjét QUIRE_REALTIME_TOKEN_SECRET néven (a webes réteg saját QUIRE_REALTIME_TOKEN_SECRET értékével, ennek hiányában pedig QUIRE_SECRET_KEY értékkel írja alá a realtime tokeneket; használja ugyanazt), majd állítsa be a webes rétegben a QUIRE_REALTIME_WORKER_URL értékét a Worker címére:
cd apps/realtime-workerbun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRETbun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRETbun run --bun wrangler deploy
A Cloudflare Queues egyszerű feladatainak használatához hozzon létre sort minden egyszerű queue-hoz, és állítsa be őket a kiegészítő workeren (Queues írási és olvasási jogosultságú API-token szükséges):
bun run --bun wrangler queues create quire-events-notificationsbun run --bun wrangler queues create quire-events-notifications-deadbun run --bun wrangler queues create quire-events-webhooksbun run --bun wrangler queues create quire-events-webhooks-dead
Állítsa be a QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN értékeket, valamint a QUIRE_QUEUE_PREFIX értékét, ha az nem quire-.
Futtassa a kiegészítő hostot a Vercel-útmutató 3. lépése szerint. A migrációk itt futnak le minden Worker-telepítés előtt.
Hibás konfigurációnál az bun run --bun wrangler tail kimenete ezt mutatja: “The web tier did not start on cloudflare”, majd felsorolja a módosítandó beállításokat.