---
title: "Վեբ շերտը Vercel-ում"
description: "Գործարկեք Quire-ի վեբ շերտը Vercel-ում՝ ուղեկից աշխատողի հետ։"
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/hy/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 հոսթը՝ `docker/compose.yaml`-ով |
| 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. Պահոցից ստեղծեք Vercel նախագիծ՝ **Root Directory** արժեքը սահմանելով
   `apps/web`։ `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`,
   պահեստի կարգավորումները և `QUIRE_COLLAB_URL` ու
   `QUIRE_COLLAB_SIGNING_KEY`-ը, որոնք ուղղված են ուղեկից collab ծառայությանը։
   `QUIRE_REPORT_DATABASE_URL`-ը պատկանում է `DATABASE_URL`-ով նշված ֆիզիկական
   տվյալների բազային։ Յուրաքանչյուր լրացուցիչ գրանցված բազայի համար ավելացրեք
   սեփական `quire_report` կապի URL-ը վեբ և աշխատողի միջավայրերում, ապա
   հարթակի վահանակում գրանցեք միջավայրի փոփոխականի անունը որպես `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-ի նոր
տեղակայումը, հետո հերթով թարմացրեք ուղեկից աշխատողներին․ կարգը նշված է
[արդիականացման ուղեցույցում](/hy/ops/upgrade/)։ Vercel-ի անմիջական վերադարձը
ծրագրային կոդի վերադարձ է և թողարկման ներսում միշտ անվտանգ է։

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