---
title: "Vercel पर वेब टियर"
description: "साथ में चलने वाले worker के साथ Vercel पर Quire वेब टियर चलाएँ।"
image: "https://docs.quirelms.com/og.png"
---

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

# Vercel पर वेब टियर

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

डिज़ाइन `docs/architecture/23-ops.md` के अनुभाग 5 में है। Vercel सिर्फ़ वेब
टियर चलाता है। बाकी सब आपके चलाए companion host पर चलता है और यह वैकल्पिक नहीं है।

## इस रिलीज़ में स्थिति <!--quire:status-in-this-release-->

कॉन्फ़िगरेशन तैयार है (`apps/web/vercel.json`, `vercel` Nitro preset और startup
जाँच)। Vercel को साझा फ़ाइल स्टोरेज (`QUIRE_STORAGE_DRIVER=s3` या `azure`),
function instances में काम करने वाला realtime driver (`QUIRE_REALTIME_DRIVER=sse`
या `centrifugo`) और HTTP email provider चाहिए। इनके बिना वेब टियर शुरू होने से
मना करता है और उसका log हर गायब setting बताता है।

## हिस्से <!--quire:the-pieces-->

| हिस्सा | कहाँ चलता है |
| --- | --- |
| `web` | Vercel Functions, Bun runtime: पृष्ठ, REST, MCP, LTI, मिले webhooks |
| `worker`, `scheduler`, `collab`, `content` | Companion host: Fly, Railway, ECS या आपका Docker host जिसमें `docker/compose.yaml` है |
| Postgres | बाहरी, transaction pooler के पीछे: Neon, Supabase या PgBouncer वाला RDS |
| फ़ाइलें | S3 या R2। स्थायी disk नहीं है |
| बैकग्राउंड jobs | अनुरोध के transaction में pg-boss से queued, companion worker चलाता है। Companion worker पर `QUIRE_QUEUE_DRIVER=vercel` हो तो हल्के jobs (बिना क्रम की सूचनाएँ और webhook delivery) Vercel Queues (`VERCEL_QUEUE_REGION`, `VERCEL_QUEUE_TOKEN`) से जाते हैं, इसलिए उनके लिए pooled Postgres poll नहीं होता |
| दोहराए जाने वाले jobs | Companion scheduler। Vercel Cron route नहीं है, क्योंकि function में काम करने वाला cron timeout हो जाता है |
| Tracing | आपके collector को OpenTelemetry, `OTEL_EXPORTER_OTLP_ENDPOINT` |

## यह लक्ष्य क्या नहीं कर सकता <!--quire:what-this-target-cannot-do-->

वेब टियर शुरू होते समय इन्हें जाँचकर हर समस्या नाम सहित अस्वीकार करता है, न कि
बाद में पहला ईमेल न भेजे जाने पर विफल होता है:

- **SMTP नहीं।** Vercel outbound SMTP रोकता है। `QUIRE_EMAIL_PROVIDER_CONFIG` को
  HTTP provider (Postmark, SES, Mailgun, SendGrid या Resend) पर सेट करें।
  `QUIRE_SMTP_URL` अस्वीकार होता है।
- **स्थानीय disk नहीं।** `QUIRE_STORAGE_DRIVER=local` अस्वीकार होता है।
- **Invocations के बीच साझा memory नहीं।** `QUIRE_REALTIME_DRIVER=inprocess`
  अस्वीकार होता है। Server-sent events function timeout तक सीमित हैं; client
  cursor के साथ दोबारा जुड़ता है, इसलिए इवेंट नहीं खोता, पर उपस्थिति उपलब्ध नहीं।
- **Pin की गई tenant databases सीमित** लगभग आठ तक हैं, क्योंकि हर एक ऐसा वातावरण
  जहाँ pools साझा नहीं होते, एक और connection pool है।

## डिप्लॉय करना <!--quire:deploying-->

1. Repository से Vercel project बनाएँ और **Root Directory** `apps/web` रखें।
   `apps/web/vercel.json` install और build commands (`NITRO_PRESET=vercel`) सेट
   करता है और `/sw.js` को cache किए बिना देता है।
2. Environment variables सेट करें। `docker/.env.example` से कम-से-कम:
   `QUIRE_DEPLOY_TARGET=vercel`, `QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`,
   `QUIRE_PLATFORM_DOMAINS`, `QUIRE_SECRET_KEY`, `QUIRE_MASTER_KEY`,
   `DATABASE_URL` (pooler का पता), `QUIRE_REPORT_DATABASE_URL`,
   `QUIRE_AUDIT_DATABASE_URL`, `QUIRE_DATABASE_ID`,
   `QUIRE_EMAIL_PROVIDER_CONFIG`, `QUIRE_MAIL_FROM`, storage settings और
   companion की collab service की ओर संकेत करते `QUIRE_COLLAB_URL` व
   `QUIRE_COLLAB_SIGNING_KEY`। `QUIRE_REPORT_DATABASE_URL` उसी physical database
   के लिए है जिसका नाम `DATABASE_URL` में है। हर अतिरिक्त registered database
   के लिए उसका `quire_report` connection URL web और worker दोनों environments
   में जोड़ें, फिर platform console में उसका environment variable name `env:NAME`
   के रूप में register करें। उस database का report URL न हो तो analytics बंद रहता है।
3. Companion host पर `docker/compose.yaml` को `web` service के बिना और उसी
   `docker/.env` के साथ चलाएँ:
   ```sh
   docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
   ```
   हर Vercel deployment को बढ़ाने से पहले migration वहीं चलती है।
4. Deploy करें। कॉन्फ़िगरेशन अस्वीकार हो तो function log
   "The web tier did not start on vercel" से शुरू होता है और बदलने वाली हर setting
   सूचीबद्ध करता है।

## अपग्रेड करना <!--quire:upgrading-->

पहले companion host से migrate करें, फिर नई Vercel deployment promote करें,
फिर companion workers बदलें: क्रम [upgrade.md](/hi/ops/upgrade/) में है। Vercel का
तुरंत rollback code rollback है और एक release के भीतर हमेशा सुरक्षित है।

Source: https://docs.quirelms.com/hi/ops/vercel/index.mdx
