Դիզայնը նկարագրված է docs/architecture/23-ops.md փաստաթղթի 5-րդ բաժնում։
Vercel-ն աշխատեցնում է միայն վեբ շերտը։ Մնացած ամեն ինչ գործարկվում է ձեր
կառավարած ուղեկից հոսթում․ այն կամընտիր չէ։
Այս թողարկման վիճակը
Կարգավորումն առկա է (apps/web/vercel.json, vercel Nitro նախադրված
կարգավորումն ու մեկնարկի ստուգումները)։ Vercel-ին պետք է ֆայլերի համօգտագործվող
պահեստ (QUIRE_STORAGE_DRIVER=s3 կամ azure), ֆունկցիաների օրինակների միջև
աշխատող իրական ժամանակի վարորդ (QUIRE_REALTIME_DRIVER=sse կամ centrifugo)
և HTTP էլ․ փոստի ծառայություն։ Առանց դրանց վեբ շերտը հրաժարվում է գործարկել,
իսկ մատյանում նշվում է բացակայող յուրաքանչյուր կարգավորումը։
Բաղադրիչներ
Բաղադրիչ
Որտեղ է աշխատում
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-ը կգերազանցի ժամանակի սահմանափակումը
Վեբ շերտը մեկնարկելիս ստուգում է հետևյալը և մերժում գործարկումը՝ թվարկելով
բոլոր խնդիրները, այլ ոչ թե ավելի ուշ ձախողվում է, երբ հերթական նամակը չի
ուղարկվում․
SMTP չկա։ Vercel-ը արգելափակում է ելքային SMTP-ը։
QUIRE_EMAIL_PROVIDER_CONFIG-ը սահմանեք HTTP ծառայության (Postmark, SES,
Mailgun, SendGrid կամ Resend)։ QUIRE_SMTP_URL-ը մերժվում է։
Տեղային սկավառակ չկա։QUIRE_STORAGE_DRIVER=local կարգավորումը մերժվում է։
Կանչերի միջև ընդհանուր հիշողություն չկա։QUIRE_REALTIME_DRIVER=inprocess կարգավորումը մերժվում է։ Սերվերի ուղարկած
իրադարձությունները սահմանափակված են ֆունկցիայի ժամանակով․ հաճախորդը կրկին
միանում է կուրսորով, այնպես որ իրադարձություն չի կորչում, բայց ներկայության
հնարավորությունը հասանելի չէ։
Կցված հաճախորդների տվյալների բազաների քանակը սահմանափակված է մոտ ութով,
քանի որ յուրաքանչյուրն ավելացնում է կապերի առանձին խումբ այնպիսի միջավայրում,
որտեղ դրանք չեն կարող համօգտագործվել։
Տեղակայում
Պահոցից ստեղծեք Vercel նախագիծ՝ Root Directory արժեքը սահմանելով
apps/web։ apps/web/vercel.json ֆայլը սահմանում է տեղադրման ու կառուցման
հրամանները (NITRO_PRESET=vercel) և /sw.js-ը մատուցում առանց քեշավորման։
Սահմանեք միջավայրի փոփոխականները։ 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-ը բացակայում է, վերլուծությունը
մերժվում է։
Ուղեկից հոսթում գործարկեք docker/compose.yaml-ն առանց web ծառայության՝
օգտագործելով նույն docker/.env ֆայլը․
Միգրացիաներն այնտեղ են գործարկվում՝ Vercel-ի յուրաքանչյուր տեղակայումն
ակտիվացնելուց առաջ։
Տեղակայեք։ Մերժված կազմաձևման դեպքում ֆունկցիայի մատյանը սկսվում է
«The web tier did not start on vercel» հաղորդագրությամբ և թվարկում է
փոփոխման ենթակա բոլոր կարգավորումները։
Արդիականացում
Նախ միգրացիան գործարկեք ուղեկից հոսթից, ապա ակտիվացրեք Vercel-ի նոր
տեղակայումը, հետո հերթով թարմացրեք ուղեկից աշխատողներին․ կարգը նշված է
արդիականացման ուղեցույցում։ Vercel-ի անմիջական վերադարձը
ծրագրային կոդի վերադարձ է և թողարկման ներսում միշտ անվտանգ է։