Hopp til innhold

Webnivået på Vercel

Kjør Quires webnivå på Vercel med en følgearbeider.

Vis som Markdown

Utformingen er docs/architecture/23-ops.md seksjon 5. Vercel kjører kun webnivået. Alt annet kjører på en følgevert du drifter, og den er ikke valgfri.

Status i denne utgivelsen

Konfigurasjonen er på plass (apps/web/vercel.json, vercel-Nitro-forhåndsinnstillingen og oppstartssjekkene). Vercel trenger delt fillagring (QUIRE_STORAGE_DRIVER=s3 eller azure), en sanntidsdriver som virker på tvers av funksjonsinstanser (QUIRE_REALTIME_DRIVER=sse eller centrifugo) og en HTTP-e-postleverandør. Uten dem nekter webnivået å starte og loggen dens navngir hver manglende innstilling.

Delene

Del Hvor den kjører
web Vercel Functions, Node-kjøretid: sider, REST, MCP, LTI, mottatte webhooks
worker, scheduler, collab, content En følgevert: Fly, Railway, ECS, eller din egen Docker-vert med docker/compose.yaml
Postgres Ekstern, bak en transaksjonspooler: Neon, Supabase, eller RDS med PgBouncer
Filer S3 eller R2. Det finnes ingen vedvarende plate
Bakgrunnsjobber Køet med pg-boss inne i forespørselens transaksjon, kjørt av følgearbeideren. Med QUIRE_QUEUE_DRIVER=vercel på følgearbeideren går de lette jobbene (uordnede varsler og webhook-leveringer) gjennom Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), slik at den poolede Postgres-en ikke spørres for dem
Gjentakende jobber Følgeplanleggeren. Det finnes ingen Vercel Cron-rute, fordi en cron som gjør arbeid inne i en funksjon får tidsavbrudd
Sporing OpenTelemetry til samleren din, OTEL_EXPORTER_OTLP_ENDPOINT

Hva dette målet ikke kan

Webnivået sjekker disse når det starter og nekter, og navngir hvert problem, i stedet for å feile senere ved den første e-posten som aldri sendes:

  • Ingen SMTP. Vercel blokkerer utgående SMTP. Sett QUIRE_EMAIL_PROVIDER_CONFIG til en HTTP-leverandør (Postmark, SES, Mailgun, SendGrid eller Resend). QUIRE_SMTP_URL avvises.
  • Ingen lokal plate. QUIRE_STORAGE_DRIVER=local avvises.
  • Intet delt minne mellom kall. QUIRE_REALTIME_DRIVER=inprocess avvises. Tjener-sendte hendelser begrenses av funksjonens tidsavbrudd; klienten kobler til igjen med en markør, slik at ingen hendelse går tapt, men tilstedeværelse er utilgjengelig.
  • Festede tenantdatabaser er begrenset til omtrent åtte, fordi hver er enda en tilkoblingspool i et miljø som ikke kan dele pooler.

Rulle ut

  1. Opprett et Vercel-prosjekt fra depotet med Root Directory apps/web. apps/web/vercel.json setter installasjons- og byggkommandoene (NITRO_PRESET=vercel) og tjener /sw.js uten mellomlagring.
  2. Sett miljøvariablene. Fra docker/.env.example, minst: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (poolerens adresse), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, lagringsinnstillingene, og QUIRE_COLLAB_URL og QUIRE_COLLAB_SIGNING_KEY som peker på følgets samredigeringstjeneste. QUIRE_REPORT_DATABASE_URL tilhører den fysiske databasen navngitt av DATABASE_URL. For hver ekstra registrerte database, legg til dens egen quire_report-tilkoblings-URL i både web- og arbeidermiljøene, og registrer deretter miljøvariabelnavnet dens som env:NAME i plattformkonsollen. Analyse feiler lukket hvis den databasens rapport-URL mangler.
  3. På følgeverten, kjør docker/compose.yaml uten web-tjenesten, med samme docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Migreringer kjøres der, før hver Vercel-utrulling forfremmes.
  4. Rull ut. På en avvist konfigurasjon starter funksjonsloggen med «The web tier did not start on vercel» og viser hver innstilling som må endres.

Oppgradering

Migrer fra følgeverten først, forfrem deretter den nye Vercel-utrullingen, og rull deretter følgets arbeidere: rekkefølgen i upgrade.md. En Vercel-øyeblikkstilbakerulling er en kodetilbakerulling og er alltid trygg innen en utgivelse.

Navigasjon

Skriv for å søke…

↑↓ naviger↵ velgEsc lukk