---
title: "Vercel-ലെ വെബ് ടയർ"
description: "ഒരു കമ്പാനിയൻ വർക്കറോടെ Vercel-ൽ Quire-ന്റെ വെബ് ടയർ പ്രവർത്തിപ്പിക്കൂ."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/ml/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 വെബ് ടയർ മാത്രമേ പ്രവർത്തിപ്പിക്കൂ. ബാക്കിയെല്ലാം നിങ്ങൾ നടത്തുന്ന ഒരു കമ്പാനിയൻ ഹോസ്റ്റിലാണ്, അത് ഐച്ഛികമല്ല.

## ഈ റിലീസിലെ അവസ്ഥ <!--quire:status-in-this-release-->

ക്രമീകരണം സ്ഥാനത്തുണ്ട് (`apps/web/vercel.json`, `vercel` Nitro പ്രീസെറ്റ്, ആരംഭ പരിശോധനകൾ). Vercel-ന് പങ്കിട്ട ഫയൽ സ്റ്റോറേജ് (`QUIRE_STORAGE_DRIVER=s3` അല്ലെങ്കിൽ `azure`), ഫംഗ്ഷൻ ഇൻസ്റ്റൻസുകൾക്കിടയിൽ പ്രവർത്തിക്കുന്ന റിയൽടൈം ഡ്രൈവർ (`QUIRE_REALTIME_DRIVER=sse` അല്ലെങ്കിൽ `centrifugo`), കൂടാതെ ഒരു HTTP ഇമെയിൽ പ്രൊവൈഡറും ആവശ്യമാണ്. ഇല്ലെങ്കിൽ വെബ് ടയർ ആരംഭിക്കാൻ നിരസിക്കും, ഓരോ ഇല്ലാത്ത ക്രമീകരണത്തിന്റെയും പേര് അതിന്റെ ലോഗ് പറയും.

## ഘടകങ്ങൾ <!--quire:the-pieces-->

| ഘടകം | എവിടെ പ്രവർത്തിക്കും |
| --- | --- |
| `web` | Vercel Functions, Node റൺടൈം: പേജുകൾ, REST, MCP, LTI, ലഭിച്ച വെബ്ഹുക്കുകൾ |
| `worker`, `scheduler`, `collab`, `content` | ഒരു കമ്പാനിയൻ ഹോസ്റ്റ്: Fly, Railway, ECS, അല്ലെങ്കിൽ `docker/compose.yaml` ഉള്ള നിങ്ങളുടെ സ്വന്തം Docker ഹോസ്റ്റ് |
| Postgres | ബാഹ്യം, ഒരു ട്രാൻസാക്ഷൻ പൂളറിന് പിന്നിൽ: Neon, Supabase, അല്ലെങ്കിൽ PgBouncer ഉള്ള RDS |
| ഫയലുകൾ | S3 അല്ലെങ്കിൽ R2. നിലനിൽക്കുന്ന ഡിസ്ക് ഇല്ല |
| പശ്ചാത്തല ജോലികൾ | അഭ്യർത്ഥനയുടെ ട്രാൻസാക്ഷനിൽ pg-boss വഴി ക്യൂവിലാക്കി, കമ്പാനിയൻ വർക്കർ പ്രവർത്തിപ്പിക്കും. കമ്പാനിയൻ വർക്കറിൽ `QUIRE_QUEUE_DRIVER=vercel` ഉണ്ടെങ്കിൽ, ലഘു ജോലികൾ (ക്രമരഹിത അറിയിപ്പും വെബ്ഹുക്ക് ഡെലിവറികളും) Vercel Queues (`VERCEL_QUEUE_REGION`, `VERCEL_QUEUE_TOKEN`) വഴി പോകും, അതിനാൽ പൂളുചെയ്ത Postgres അവയ്ക്കായി പോള് ചെയ്യപ്പെടില്ല |
| ആവർത്തന ജോലികൾ | കമ്പാനിയൻ ഷെഡ്യൂളർ. Vercel Cron റൂട്ട് ഇല്ല, കാരണം ഒരു ഫംഗ്ഷനുള്ളിൽ ജോലി ചെയ്യുന്ന ഒരു cron ടൈംഔട്ടാകും |
| ട്രേസിംഗ് | നിങ്ങളുടെ കളക്ടറിലേക്ക് OpenTelemetry, `OTEL_EXPORTER_OTLP_ENDPOINT` |

## ഈ ലക്ഷ്യസ്ഥാനത്തിന് ചെയ്യാൻ കഴിയാത്തത് <!--quire:what-this-target-cannot-do-->

വെബ് ടയർ ആരംഭിക്കുമ്പോൾ ഇവ പരിശോധിച്ച് ഓരോ പ്രശ്നവും പേരെടുത്ത് പറഞ്ഞ് നിരസിക്കും, അയയ്ക്കാത്ത ആദ്യത്തെ ഇമെയിലിൽ പിന്നീട് പരാജയപ്പെടുന്നതിന് പകരം:

- **SMTP ഇല്ല.** Vercel ഔട്ട്ബൗണ്ട് SMTP തടയും. `QUIRE_EMAIL_PROVIDER_CONFIG` ഒരു HTTP പ്രൊവൈഡറിലേക്ക് (Postmark, SES, Mailgun, SendGrid അല്ലെങ്കിൽ Resend) സജ്ജമാക്കൂ. `QUIRE_SMTP_URL` നിരസിക്കപ്പെടും.
- **ലോക്കൽ ഡിസ്ക് ഇല്ല.** `QUIRE_STORAGE_DRIVER=local` നിരസിക്കപ്പെടും.
- **വിളികൾക്കിടയിൽ പങ്കിട്ട മെമ്മറി ഇല്ല.** `QUIRE_REALTIME_DRIVER=inprocess` നിരസിക്കപ്പെടും. സെർവർ അയയ്ക്കുന്ന ഇവന്റുകൾ ഫംഗ്ഷൻ ടൈംഔട്ടിൽ പരിധിക്കുള്ളിലാണ്; ക്ലയന്റ് ഒരു കർസറോടെ വീണ്ടും ബന്ധിപ്പിക്കും, അതിനാൽ ഒരു ഇവന്റും നഷ്ടപ്പെടില്ല, പക്ഷേ സാന്നിധ്യം ലഭ്യമല്ല.
- **പിൻതിരിച്ച ടെനന്റ് ഡാറ്റാബേസുകൾ** ഏകദേശം എട്ടെണ്ണം വരെ മാത്രം, കാരണം പൂളുകൾ പങ്കിടാൻ കഴിയാത്ത ഒരു എൻവിരോൺമെന്റിൽ ഓരോന്നും മറ്റൊരു കണക്ഷൻ പൂളാണ്.

## ഡിപ്ലോയ് ചെയ്യൽ <!--quire:deploying-->

1. **Root Directory** `apps/web` ഉള്ള റപ്പോസിറ്ററിയിൽ നിന്ന് ഒരു Vercel പ്രോജക്റ്റ് നിർമ്മിക്കൂ. `apps/web/vercel.json` ഇൻസ്റ്റലും ബിൽഡ് കമാന്റുകളും (`NITRO_PRESET=vercel`) സജ്ജമാക്കുകയും `/sw.js` ക്യാഷ് ചെയ്യാതെ നൽകുകയും ചെയ്യും.
2. എൻവിരോൺമെന്റ് വേരിയബിളുകൾ സജ്ജമാക്കൂ. `docker/.env.example`-ൽ നിന്ന്, കുറഞ്ഞത്: `QUIRE_DEPLOY_TARGET=vercel`, `QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`, `QUIRE_SECRET_KEY`, `QUIRE_MASTER_KEY`, `DATABASE_URL` (പൂളറിന്റെ വിലാസം), `QUIRE_REPORT_DATABASE_URL`, `QUIRE_AUDIT_DATABASE_URL`, `QUIRE_DATABASE_ID`, `QUIRE_EMAIL_PROVIDER_CONFIG`, `QUIRE_MAIL_FROM`, സ്റ്റോറേജ് ക്രമീകരണങ്ങൾ, കൂടാതെ കമ്പാനിയന്റെ collab സേവനത്തെ ചൂണ്ടിക്കാട്ടുന്ന `QUIRE_COLLAB_URL`, `QUIRE_COLLAB_SIGNING_KEY`. `QUIRE_REPORT_DATABASE_URL` `DATABASE_URL` പറയുന്ന ഭൗതിക ഡാറ്റാബേസിന്റേതാണ്. ഓരോ അധിക രജിസ്റ്റർ ചെയ്ത ഡാറ്റാബേസിനും അതിന്റെ സ്വന്തം `quire_report` കണക്ഷൻ URL web, worker എന്നീ രണ്ട് എൻവിരോൺമെന്റുകളിലും ചേർക്കൂ, പിന്നെ അതിന്റെ എൻവിരോൺമെന്റ് വേരിയബിളിന്റെ പേര് പ്ലാറ്റ്ഫോം കൺസോളിൽ `env:NAME` ആയി രജിസ്റ്റർ ചെയ്യൂ. ആ ഡാറ്റാബേസിന്റെ റിപ്പോർട്ട് URL ഇല്ലെങ്കിൽ അനലിറ്റിക്സ് അടയ്ക്കപ്പെട്ട് പരാജയപ്പെടും.
3. കമ്പാനിയൻ ഹോസ്റ്റിൽ, `docker/compose.yaml` `web` സേവനമില്ലാതെയും അതേ `docker/.env` ഉപയോഗിച്ചും പ്രവർത്തിപ്പിക്കൂ:
   ```sh
   docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
   ```
   ഓരോ Vercel ഡിപ്ലോയ്മെന്റും പ്രൊമോട്ട് ചെയ്യും മുമ്പ്, മൈഗ്രേഷനുകൾ അവിടെ പ്രവർത്തിക്കും.
4. ഡിപ്ലോയ് ചെയ്യൂ. നിരസിക്കപ്പെട്ട ക്രമീകരണത്തിൽ ഫംഗ്ഷൻ ലോഗ് "The web tier did not start on vercel" എന്നതുകൊണ്ട് ആരംഭിക്കും, മാറ്റേണ്ട ഓരോ ക്രമീകരണവും പട്ടികപ്പെടുത്തും.

## അപ്ഗ്രേഡ് ചെയ്യൽ <!--quire:upgrading-->

ആദ്യം കമ്പാനിയൻ ഹോസ്റ്റിൽ മൈഗ്രേറ്റ് ചെയ്യൂ, പിന്നെ പുതിയ Vercel ഡിപ്ലോയ്മെന്റ് പ്രൊമോട്ട് ചെയ്യൂ, പിന്നെ കമ്പാനിയന്റെ വർക്കറുകൾ റോൾ ചെയ്യൂ: ക്രമം [upgrade.md](/ml/ops/upgrade/)-ൽ. ഒരു Vercel തൽക്കാല റോൾബാക്ക് ഒരു കോഡ് റോൾബാക്കാണ്, ഒരു റിലീസിനുള്ളിൽ എപ്പോഴും സുരക്ഷിതമാണ്.

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