सीधे सामग्री पर जाएँ

Vercel पर वेब टियर

साथ में चलने वाले worker के साथ Vercel पर Quire वेब टियर चलाएँ।

Markdown के रूप में देखें

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

इस रिलीज़ में स्थिति

कॉन्फ़िगरेशन तैयार है (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 बताता है।

हिस्से

हिस्सा कहाँ चलता है
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

यह लक्ष्य क्या नहीं कर सकता

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

  • 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 है।

डिप्लॉय करना

  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 के साथ चलाएँ:
    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 सूचीबद्ध करता है।

अपग्रेड करना

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

नेविगेशन

खोजने के लिए लिखें…

↑↓ नेविगेट करें↵ चुनेंEsc बंद करें