---
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/mr/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 प्रिसेट, 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 ते चालवू शकत नाही |
| ट्रेसिंग | `wrangler.jsonc` मध्ये सक्रिय केलेली Workers observability |

`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 मार्गदर्शिका](/mr/ops/vercel/) मधील पायरी 3 प्रमाणे सहाय्यक
   होस्ट चालवा. मायग्रेशन तिथे, प्रत्येक Worker डिप्लॉयपूर्वी
   चालतात.

नाकारलेले कॉन्फिगरेशन `bun run --bun wrangler tail` मध्ये "The web tier did
not start on cloudflare" म्हणून दिसते, त्यानंतर बदलायची प्रत्येक
सेटिंग.

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