Mine sisu juurde

Veebikiht Vercelis

Käivita Quire'i veebikiht Vercelis koos kaaslaseks oleva töötlusteenusega.

Vaata Markdownina

Arhitektuur on kirjeldatud dokumendi docs/architecture/23-ops.md jaotises 5. Vercel käitab ainult veebikihti. Kõik muu töötab sinu hallatavas kaasserveris ja see on kohustuslik.

Selle väljalaske olek

Seadistus on olemas (apps/web/vercel.json, vercel Nitro eelseade ja käivituskontrollid). Vercel vajab jagatud failisalvestust (QUIRE_STORAGE_DRIVER=s3 või azure), funktsioonieksemplaride vahel toimivat reaalajasidet (QUIRE_REALTIME_DRIVER=sse või centrifugo) ning HTTP-põhist e-posti pakkujat. Nendeta keeldub veebikiht käivitumast ning logis nimetatakse puuduvad seaded.

Osad

Osa Kus töötab
web Verceli funktsioonid, Node’i käituskeskkond: lehed, REST, MCP, LTI, vastuvõetud veebikonksud
worker, scheduler, collab, content Kaasserver: Fly, Railway, ECS või sinu enda Dockeri host failiga docker/compose.yaml
Postgres Väline, tehingute ühendusepuhvri taga: Neon, Supabase või RDS koos PgBounceriga
Failid S3 või R2. Püsivat ketast pole
Tausttööd Lisatakse pg-bossi kaudu päringu tehingu sees ja käitab kaasserveri töötlusteenus. Kui kaasserveri töötlusteenuses on QUIRE_QUEUE_DRIVER=vercel, liiguvad kerged tööd (järjestamata teavitused ja veebikonksude edastused) Verceli järjekordadesse (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), nii et ühendusepuhvriga Postgresit nende jaoks ei küsitleta
Korduvad tööd Kaasserveri ajastaja. Verceli Croni marsruuti pole, sest funktsioonis tööd tegev cron ületaks ajalimiidi
Jälitus OpenTelemetry sinu kogujasse, OTEL_EXPORTER_OTLP_ENDPOINT

Mida see sihtkoht teha ei saa

Veebikiht kontrollib neid käivitumisel ja keeldub, nimetades kõik probleemid, selle asemel et hiljem esimese saatmata e-kirja juures läbi kukkuda:

  • SMTP puudub. Vercel blokeerib väljamineva SMTP. Määra QUIRE_EMAIL_PROVIDER_CONFIG väärtuseks HTTP-pakkuja (Postmark, SES, Mailgun, SendGrid või Resend). QUIRE_SMTP_URL lükatakse tagasi.
  • Kohalik ketas puudub. QUIRE_STORAGE_DRIVER=local lükatakse tagasi.
  • Käivitusjuhtumitel puudub jagatud mälu. QUIRE_REALTIME_DRIVER=inprocess lükatakse tagasi. Serveri saadetud sündmusi piirab funktsiooni ajalimiit; klient loob kursoriga ühenduse uuesti, nii et sündmusi ei lähe kaotsi, kuid kohalolekuinfo pole saadaval.
  • Seotud rentnike andmebaase saab olla umbes kaheksa, sest igaüks lisab uue ühendusepuhvri keskkonda, kus puhvreid jagada ei saa.

Juurutamine

  1. Loo hoidlast Verceli projekt ja määra Root Directory väärtuseks apps/web. apps/web/vercel.json määrab paigaldus- ja ehituskäsud (NITRO_PRESET=vercel) ning serveerib /sw.js vahemällu salvestamata.
  2. Määra keskkonnamuutujad. Failist docker/.env.example vähemalt: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (ühendusepuhvri aadress), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, salvestusseaded ning kaasserveri collab-teenusele osutavad QUIRE_COLLAB_URL ja QUIRE_COLLAB_SIGNING_KEY. QUIRE_REPORT_DATABASE_URL peab viitama DATABASE_URL-is nimetatud füüsilisele andmebaasile. Iga lisaregistreeritud andmebaasi jaoks lisa selle quire_report ühenduse URL nii veebirakenduse kui ka töötlusteenuse keskkonda ning registreeri platvormi konsoolis keskkonnamuutuja nimi kujul env:NAME. Kui selle andmebaasi aruande-URL puudub, analüütika ei tööta.
  3. Käivita kaasserveris docker/compose.yaml ilma web-teenuseta, kasutades sama faili docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Migratsioonid käivitatakse seal enne iga Verceli juurutuse avaldamist.
  4. Juuruta. Tagasilükatud seadistuse korral algab funktsiooni logi tekstiga “The web tier did not start on vercel” ja loetleb muudetavad seaded.

Uuendamine

Käivita migratsioon kaasserveris, seejärel avalda uus Verceli juurutus ja siis uuenda kaasserveri töötlejaid: järjekord on kirjeldatud dokumendis upgrade.md. Verceli kohene tagasipööre taastab koodi ning on ühe väljalaske piires alati ohutu.

Navigeerimine

Otsimiseks kirjuta…

↑↓ liikumine↵ valiEsc sulge