---
title: "Cloudflare Workers ನಲ್ಲಿ ವೆಬ್ ಹಂತ"
description: "Cloudflare Workers ನಲ್ಲಿ ಕಡಿಮೆಗೊಳಿಸಲಾದ Quire ವೆಬ್ ಹಂತ ಚಲಾಯಿಸಿ."
image: "https://docs.quirelms.com/og.png"
---

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

# Cloudflare Workers ನಲ್ಲಿ ವೆಬ್ ಹಂತ

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

ವಿನ್ಯಾಸವು `docs/architecture/23-ops.md` ವಿಭಾಗ 6. Workers ಕಡಿಮೆಗೊಳಿಸಲಾದ ವೆಬ್
ಹಂತವನ್ನು ನಡೆಸುತ್ತವೆ. Workers ನಲ್ಲಿ ವೈಶಿಷ್ಟ್ಯ ಸಮಾನತೆಯು ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿದೆ (PRD ವಿಭಾಗ 12):
ಈ ಗುರಿಯು ಮಾಡಲಾಗದವು ಅದು ಆರಂಭವಾದಾಗ, ಹೆಸರಿನ ಮೂಲಕ, ನಿರಾಕರಿಸಲ್ಪಡುತ್ತದೆ.

## ಈ ಆವೃತ್ತಿಯಲ್ಲಿನ ಸ್ಥಿತಿ <!--quire:status-in-this-release-->

ಸಂರಚನೆ ಸ್ಥಳದಲ್ಲಿದೆ (`apps/web/wrangler.jsonc`, `cloudflare-module` Nitro preset,
Hyperdrive ಸೇತುವೆ ಮತ್ತು ಆರಂಭಿಕ ಪರಿಶೀಲನೆಗಳು). ಒಂದು Worker ಗೆ R2 ಗಾಗಿ S3-ಹೊಂದಿಕೊಳ್ಳುವ
ಸಂಗ್ರಹಣೆ (`QUIRE_STORAGE_DRIVER=s3`), ವಿನಂತಿಗಳ ನಡುವಿನ ರಿಯಲ್‌ಟೈಮ್ ಚಾಲಕ
(`QUIRE_REALTIME_DRIVER=durable_objects` ಅಥವಾ `centrifugo`), ಒಂದು ಹಂಚಿಕೆ ಕ್ಯಾಶ್
(`QUIRE_CACHE_DRIVER=postgres` ಅಥವಾ `valkey`) ಮತ್ತು ಒಂದು HTTP ಇಮೇಲ್ ಪ್ರೊವೈಡರ್
ಬೇಕು. ಅವು ಇಲ್ಲದಿದ್ದರೆ Worker ಆರಂಭವಾಗಲು ನಿರಾಕರಿಸುತ್ತದೆ ಮತ್ತು ಅದರ ಲಾಗ್ ಪ್ರತಿ
ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಹೆಸರಿಸುತ್ತದೆ. Durable Objects ಚಾಲಕವು `apps/realtime-worker` ನಲ್ಲಿನ
ರಿಯಲ್‌ಟೈಮ್ Worker ನ ಒಂದು ಕ್ಲೈಂಟ್ ಆಗಿದೆ (ಫ್ಯಾನ್-ಔಟ್, ಉಪಸ್ಥಿತಿ ಮತ್ತು ಇತಿಹಾಸಕ್ಕೆ ಚಾನಲ್‌ಗೆ
ಒಂದು Durable Object, ಸಂಪರ್ಕ ವಿಚ್ಛೇದನಕ್ಕೆ ವ್ಯಕ್ತಿಗೆ ಒಂದು); ಕೆಳಗಿನಂತೆ ಅದನ್ನು ಪಕ್ಕದಲ್ಲೇ
ಡಿಪ್ಲಾಯ್ ಮಾಡಿ, ಅಥವಾ Centrifugo ಬಳಸಿ.

## ಭಾಗಗಳು <!--quire:the-pieces-->

| ಭಾಗ | Cloudflare ನಲ್ಲಿ |
| --- | --- |
| `web` | `nodejs_compat` ಹೊಂದಿರುವ ಒಂದು Worker |
| Postgres | ಬಾಹ್ಯ, Hyperdrive ಮೂಲಕ ತಲುಪಲಾಗುತ್ತದೆ: ಅಪ್ಲಿಕೇಶನ್ ಪಾತ್ರಕ್ಕೆ `HYPERDRIVE`, ಅದೇ ಭೌತಿಕ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ವರದಿ ಪಾತ್ರಕ್ಕೆ `REPORT_HYPERDRIVE`. ವೆಬ್ ಹಂತವು ಆರಂಭವಾದಾಗ ಪ್ರತಿ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು `DATABASE_URL` ಮತ್ತು `QUIRE_REPORT_DATABASE_URL` ಗೆ ನಕಲಿಸುತ್ತದೆ |
| ಫೈಲ್‌ಗಳು | ಅದರ S3 API ಮೂಲಕ R2 (`S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com`); `FILES` ಬೈಂಡಿಂಗ್ ಬಕೆಟ್ ಅನ್ನು ಲಗತ್ತಿಸುತ್ತದೆ |
| ಹಿನ್ನೆಲೆ ಕೆಲಸಗಳು | ಕೆಲಸವನ್ನು ಬರೆಯುವಿಕೆಯೊಂದಿಗೆ ಸರಿಸಬೇಕಾದರೆ Hyperdrive ಮೂಲಕ pg-boss. ಸಹಚರ ವರ್ಕರ್‌ನಲ್ಲಿ `QUIRE_QUEUE_DRIVER=cloudflare` ಇದ್ದಾಗ, ಹಗುರ ಕೆಲಸಗಳು (ಕ್ರಮರಹಿತ ಅಧಿಸೂಚನೆ ಮತ್ತು webhook ಡೆಲಿವರಿಗಳು) ಬದಲಿಗೆ Cloudflare Queues ಮೂಲಕ ಹೋಗುತ್ತವೆ, ಆದ್ದರಿಂದ Postgres ಅವುಗಳಿಗಾಗಿ ಪೋಲ್ ಆಗುವುದಿಲ್ಲ. ಸಹಚರ ವರ್ಕರ್ ಎರಡನ್ನೂ ಚಲಾಯಿಸುತ್ತದೆ |
| ರಿಯಲ್‌ಟೈಮ್ | `apps/realtime-worker` ನ ರಿಯಲ್‌ಟೈಮ್ Worker, Durable Objects ನೊಂದಿಗೆ |
| `worker`, `scheduler`, `collab`, `content`, ClamAV, Gotenberg, ffmpeg | ಒಂದು ಸಹಚರ ಕಂಟೈನರ್ ಹೋಸ್ಟ್. ಒಂದು Worker ಅವುಗಳನ್ನು ನಡೆಸಲಾಗದು |
| ಟ್ರೇಸಿಂಗ್ | Workers ವೀಕ್ಷಣೀಯತೆ, `wrangler.jsonc` ನಲ್ಲಿ ಸಕ್ರಿಯ |

`REPORT_HYPERDRIVE` `HYPERDRIVE` ಹೆಸರಿಸಿದ ಭೌತಿಕ ಡೇಟಾಬೇಸ್‌ಗಾಗಿ ವರದಿ ಪಾತ್ರವನ್ನು
ಒದಗಿಸುತ್ತದೆ. ಈ ಗುರಿಯು ಕೆಳಗೆ ವಿವರಿಸಿದಂತೆ, ಹೆಚ್ಚುವರಿ ಭೌತಿಕ ಡೇಟಾಬೇಸ್‌ಗಳಿಗೆ ಬಂಧಿಸಲ್ಪಟ್ಟ
ಟೆನಂಟ್‌ಗಳಿಗೆ ಸೇವೆ ನೀಡುವುದಿಲ್ಲ.

## ಈ ಗುರಿಯು ಮಾಡಲಾಗದವು <!--quire:what-this-target-cannot-do-->

ಆರಂಭದಲ್ಲಿ ನಿರಾಕರಿಸಲ್ಪಡುತ್ತದೆ, ಪ್ರತಿ ಸಮಸ್ಯೆಯನ್ನೂ ಒಮ್ಮೆಗೆ ಪಟ್ಟಿ ಮಾಡಿ:

- **SMTP ಇಲ್ಲ.** `QUIRE_EMAIL_PROVIDER_CONFIG` ನಲ್ಲಿ ಒಂದು HTTP ಪ್ರೊವೈಡರ್ ಬಳಸಿ.
- **ಸ್ಥಳೀಯ ಡಿಸ್ಕ್ ಇಲ್ಲ.** `QUIRE_STORAGE_DRIVER` ವಸ್ತು ಸಂಗ್ರಹಣೆಯನ್ನು ಹೆಸರಿಸಬೇಕು.
- **ಪ್ರಕ್ರಿಯೆಯೊಳಗಿನ ರಿಯಲ್‌ಟೈಮ್ ಅಥವಾ ಕ್ಯಾಶ್ ಇಲ್ಲ.** Workers ವಿನಂತಿಗಳ ನಡುವೆ ಯಾವುದೇ
  ಮೆಮೊರಿ ಹಂಚಿಕೊಳ್ಳುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ `QUIRE_REALTIME_DRIVER=inprocess` ಮತ್ತು
  `QUIRE_CACHE_DRIVER=memory` ನಿರಾಕರಿಸಲ್ಪಡುತ್ತವೆ.
- **Worker ನಲ್ಲಿ ClamAV, Gotenberg ಅಥವಾ ffmpeg ಇಲ್ಲ.** Worker ನಲ್ಲಿ ಹೊಂದಿಸಲ್ಪಟ್ಟ
  `CLAMAV_URL`, `GOTENBERG_URL` ಮತ್ತು `FFMPEG_PATH` ನಿರಾಕರಿಸಲ್ಪಡುತ್ತವೆ; ಬದಲಿಗೆ ಅವುಗಳನ್ನು
  ಸಹಚರ ವರ್ಕರ್‌ನಲ್ಲಿ ಹೊಂದಿಸಿ.
- **ಪ್ರತ್ಯೇಕ-ಡೇಟಾಬೇಸ್ ಸಂಸ್ಥೆಗಳು ಇಲ್ಲ.** ಒಂದು Worker ನ Hyperdrive ಬೈಂಡಿಂಗ್‌ಗಳು
  ಡಿಪ್ಲಾಯ್ ಸಮಯದಲ್ಲಿ ಸ್ಥಿರ, ಆದ್ದರಿಂದ ತನ್ನದೇ ಡೇಟಾಬೇಸ್ ಇರುವ ಸಂಸ್ಥೆಯು ಸ್ಪಷ್ಟ
  "ಇಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ" ಪುಟ ಪಡೆಯುತ್ತದೆ. ಅದನ್ನು Compose ಅಥವಾ Vercel ನಿಂದ ಒದಗಿಸಿ.

ಮತ್ತು ನಿರಾಕರಿಸದ ಆದರೆ ತಿಳಿದಿರಬೇಕಾದ ಒಂದು ವಿಷಯ: **ಪ್ರೀರೆಂಡರಿಂಗ್ ಮತ್ತು ಕ್ರಮಬದ್ಧ
ಸ್ಥಿರ ಪುನರ್‌ರಚನೆಯು Workers ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ**, ಫ್ರೇಮ್‌ವರ್ಕ್ ದಸ್ತಾವೇಜು ಏನೇ ಹೇಳಿದರೂ.
ಪ್ರತಿ ಮಾರ್ಗವೂ ವಿನಂತಿಯ ಪ್ರತಿಯೊಂದಕ್ಕೂ ರೆಂಡರ್ ಆಗುತ್ತದೆ.

ಈ ಗುರಿಯಲ್ಲಿ ವ್ಯವಹಾರಗಳನ್ನು ಚಿಕ್ಕದಾಗಿ ಇಡಿ ಮತ್ತು ಯಾವಾಗಲೂ ಒಂದನ್ನು ನೆಟ್‌ವರ್ಕ್ ಕರೆಯ
ಎಡೆಗೆ ಹಿಡಿದಿಡಬೇಡಿ: ಸಂಪರ್ಕವು ಪೂಲ್‌ಗೆ ಹಿಂತಿರುಗಿದಾಗ Hyperdrive ಸೆಷನ್ ಸ್ಥಿತಿಯನ್ನು
ಮರುಹೊಂದಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಟೆನಂಟ್ ಸಂದರ್ಭವನ್ನು ವ್ಯವಹಾರದ ಪ್ರತಿಯೊಂದಕ್ಕೂ ಹೊಂದಿಸಲಾಗುತ್ತದೆ.

## ಡಿಪ್ಲಾಯ್ ಮಾಡುವುದು <!--quire:deploying-->

1. ಸಂಪನ್ಮೂಲಗಳನ್ನು ರಚಿಸಿ:
   ```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
   ```
   ಎರಡು Hyperdrive id ಗಳನ್ನು `apps/web/wrangler.jsonc` ಗೆ ಇಡಿ.
2. ರಹಸ್ಯಗಳನ್ನು ಒಂದೊಂದಾಗಿ ಹೊಂದಿಸಿ, `bun run --bun wrangler secret put <NAME>` ನೊಂದಿಗೆ,
   `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`. ಸರಳ
   ಸೆಟ್ಟಿಂಗ್‌ಗಳು (`QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`,
   `QUIRE_PLATFORM_DOMAINS`, `QUIRE_DATABASE_ID`, `S3_ENDPOINT`, `S3_BUCKET`,
   `QUIRE_COLLAB_URL`) `vars` ಗೆ ಹೋಗುತ್ತವೆ.
3. `apps/web` ನಿಂದ ಬಿಲ್ಡ್ ಮತ್ತು ಡಿಪ್ಲಾಯ್ ಮಾಡಿ:
   ```sh
   NITRO_PRESET=cloudflare-module bun run build
   bun run --bun wrangler deploy
   ```
4. ವೆಬ್ ಹಂತದ `QUIRE_REALTIME_WORKER_SECRET` ಮತ್ತು ಅದರ ಟೋಕನ್ ರಹಸ್ಯವನ್ನು
   `QUIRE_REALTIME_TOKEN_SECRET` ಆಗಿ ಹೊಂದಿಸಿ ರಿಯಲ್‌ಟೈಮ್ Worker ಡಿಪ್ಲಾಯ್ ಮಾಡಿ
   (ವೆಬ್ ಹಂತವು ರಿಯಲ್‌ಟೈಮ್ ಟೋಕನ್‌ಗಳಿಗೆ ತನ್ನದೇ `QUIRE_REALTIME_TOKEN_SECRET` ನೊಂದಿಗೆ,
   ಅದು ಹೊಂದಿಸಲ್ಪಟ್ಟಿಲ್ಲದಿದ್ದರೆ `QUIRE_SECRET_KEY` ನೊಂದಿಗೆ ಸಹಿ ಹಾಕುತ್ತದೆ, ಆದ್ದರಿಂದ
   ಅದು ಬಳಸುವುದನ್ನೇ ಬಳಸಿ), ಮತ್ತು ವೆಬ್ ಹಂತದಲ್ಲಿ `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 Queues ನಲ್ಲಿ ಹಗುರ ಕೆಲಸಗಳಿಗಾಗಿ, ಪ್ರತಿ ಹಗುರ ಕ್ಯೂಗೆ ಒಂದು ಕ್ಯೂ ರಚಿಸಿ ಮತ್ತು
   ಸಹಚರ ವರ್ಕರ್‌ನಲ್ಲಿ ಇವುಗಳನ್ನು ಹೊಂದಿಸಿ (Queues ಓದು ಮತ್ತು ಬರೆವಿಕೆ ಹೊಂದಿರುವ ಒಂದು
   API ಟೋಕನ್):
   ```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`, ಮತ್ತು `QUIRE_QUEUE_PREFIX` (`quire-` ಅಲ್ಲದಿದ್ದರೆ).
6. [Vercel ಮಾರ್ಗದರ್ಶಿ](/kn/ops/vercel/) ನಲ್ಲಿನಂತೆ ಸಹಚರ ಹೋಸ್ಟ್ ಚಲಾಯಿಸಿ, ಹಂತ 3.
   ಪ್ರತಿ Worker ಡಿಪ್ಲಾಯ್‌ಮೆಂಟ್‌ಗೂ ಮೊದಲು ವಲಸೆಗಳು ಅಲ್ಲಿ ನಡೆಯುತ್ತವೆ.

ನಿರಾಕರಿಸಲ್ಪಟ್ಟ ಸಂರಚನೆಯು `bun run --bun wrangler tail` ನಲ್ಲಿ "The web tier did not start on
cloudflare" ಆಗಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ, ಬದಲಾಯಿಸಬೇಕಾದ ಪ್ರತಿ ಸೆಟ್ಟಿಂಗ್‌ನೊಂದಿಗೆ.

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