Անցնել բովանդակությանը

Վեբ շերտը Vercel-ում

Գործարկեք Quire-ի վեբ շերտը Vercel-ում՝ ուղեկից աշխատողի հետ։

Դիտել որպես Markdown

Դիզայնը նկարագրված է 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-ը կգերազանցի ժամանակի սահմանափակումը
Հետագծում OpenTelemetry՝ ձեր սերվերին, OTEL_EXPORTER_OTLP_ENDPOINT-ով

Ինչ չի կարող անել այս թիրախը

Վեբ շերտը մեկնարկելիս ստուգում է հետևյալը և մերժում գործարկումը՝ թվարկելով բոլոր խնդիրները, այլ ոչ թե ավելի ուշ ձախողվում է, երբ հերթական նամակը չի ուղարկվում․

  • SMTP չկա։ Vercel-ը արգելափակում է ելքային SMTP-ը։ QUIRE_EMAIL_PROVIDER_CONFIG-ը սահմանեք HTTP ծառայության (Postmark, SES, Mailgun, SendGrid կամ Resend)։ QUIRE_SMTP_URL-ը մերժվում է։
  • Տեղային սկավառակ չկա։ QUIRE_STORAGE_DRIVER=local կարգավորումը մերժվում է։
  • Կանչերի միջև ընդհանուր հիշողություն չկա։ QUIRE_REALTIME_DRIVER=inprocess կարգավորումը մերժվում է։ Սերվերի ուղարկած իրադարձությունները սահմանափակված են ֆունկցիայի ժամանակով․ հաճախորդը կրկին միանում է կուրսորով, այնպես որ իրադարձություն չի կորչում, բայց ներկայության հնարավորությունը հասանելի չէ։
  • Կցված հաճախորդների տվյալների բազաների քանակը սահմանափակված է մոտ ութով, քանի որ յուրաքանչյուրն ավելացնում է կապերի առանձին խումբ այնպիսի միջավայրում, որտեղ դրանք չեն կարող համօգտագործվել։

Տեղակայում

  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 ֆայլը․
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Միգրացիաներն այնտեղ են գործարկվում՝ Vercel-ի յուրաքանչյուր տեղակայումն ակտիվացնելուց առաջ։
  4. Տեղակայեք։ Մերժված կազմաձևման դեպքում ֆունկցիայի մատյանը սկսվում է «The web tier did not start on vercel» հաղորդագրությամբ և թվարկում է փոփոխման ենթակա բոլոր կարգավորումները։

Արդիականացում

Նախ միգրացիան գործարկեք ուղեկից հոսթից, ապա ակտիվացրեք Vercel-ի նոր տեղակայումը, հետո հերթով թարմացրեք ուղեկից աշխատողներին․ կարգը նշված է արդիականացման ուղեցույցում։ Vercel-ի անմիջական վերադարձը ծրագրային կոդի վերադարձ է և թողարկման ներսում միշտ անվտանգ է։

Նավիգացիա

Մուտքագրեք՝ որոնելու համար…

↑↓ նավարկել↵ ընտրելEsc փակել