Gå til indhold

Weblaget på Vercel

Kør Quires weblag på Vercel med en tilhørende worker.

Vis som Markdown

Designet beskrives i afsnit 5 i docs/architecture/23-ops.md. Vercel kører kun weblaget. Alt andet kører på en tilhørende vært, som du driver, og det er obligatorisk.

Status i denne udgivelse

Konfigurationen er på plads (apps/web/vercel.json, Nitro-forudindstillingen vercel og opstartskontrollerne). Vercel kræver delt fillagring (QUIRE_STORAGE_DRIVER=s3 eller azure), en realtidsdriver, der fungerer på tværs af funktionsinstanser (QUIRE_REALTIME_DRIVER=sse eller centrifugo), samt en HTTP-e-mailudbyder. Uden dette nægter weblaget at starte, og loggen navngiver alle manglende indstillinger.

Komponenterne

Komponent Hvor den kører
web Vercel Functions, Node-runtime: sider, REST, MCP, LTI og modtagelse af webhooks
worker, scheduler, collab, content En tilhørende vært: Fly, Railway, ECS eller din egen Docker-vært med docker/compose.yaml
Postgres Eksternt, bag en transaktionspooler: Neon, Supabase eller RDS med PgBouncer
Filer S3 eller R2. Der findes ingen vedvarende disk
Baggrundsjob Lægges i kø med pg-boss i forespørgslens transaktion og køres af den tilhørende worker. Hvis QUIRE_QUEUE_DRIVER=vercel er indstillet på den tilhørende worker, går lette job (uordnede notifikations- og webhookleverancer) gennem Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), så den poolede Postgres ikke spørges for dem
Gentagne job Den tilhørende scheduler. Der findes ingen Vercel Cron-rute, fordi et cronjob, der udfører arbejde i en funktion, får timeout
Sporingsdata OpenTelemetry til din collector, OTEL_EXPORTER_OTLP_ENDPOINT

Hvad denne platform ikke kan

Weblaget kontrollerer disse forhold ved opstart og nægter at starte, mens det navngiver alle problemer, i stedet for først at fejle senere, når den første e-mail ikke bliver sendt:

  • Ingen SMTP. Vercel blokerer udgående SMTP. Angiv en HTTP-udbyder i QUIRE_EMAIL_PROVIDER_CONFIG (Postmark, SES, Mailgun, SendGrid eller Resend). QUIRE_SMTP_URL afvises.
  • Ingen lokal disk. QUIRE_STORAGE_DRIVER=local afvises.
  • Ingen delt hukommelse mellem kald. QUIRE_REALTIME_DRIVER=inprocess afvises. Server-sent events er begrænset af funktions-timeout; klienten opretter igen forbindelse med en markør, så ingen hændelser går tabt, men tilstedeværelse er ikke tilgængelig.
  • Antallet af fastlåste lejerdatabaser er begrænset til omkring otte, fordi hver database kræver endnu en forbindelsespulje i et miljø, hvor puljer ikke kan deles.

Udrulning

  1. Opret et Vercel-projekt fra arkivet med Rodmappe sat til apps/web. apps/web/vercel.json angiver installations- og buildkommandoerne (NITRO_PRESET=vercel) og leverer /sw.js uden cache.
  2. Angiv miljøvariablerne. Mindst følgende værdier fra docker/.env.example skal bruges: 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, indstillingerne for fillagring samt QUIRE_COLLAB_URL og QUIRE_COLLAB_SIGNING_KEY, der peger på den tilhørende collab-tjeneste. QUIRE_REPORT_DATABASE_URL hører til den fysiske database, der er angivet i DATABASE_URL. For hver yderligere registreret database skal du tilføje dens egen quire_report-forbindelsesadresse til både web- og workermiljøet og derefter registrere dens miljøvariabelnavn som env:NAME i platformskonsollen. Analyse fejler lukket, hvis databasens rapportadresse mangler.
  3. Kør docker/compose.yaml på den tilhørende vært uden tjenesten web, med samme docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Migreringer køres dér, før hver Vercel-udrulning aktiveres.
  4. Udrul. Hvis konfigurationen afvises, begynder funktionsloggen med “The web tier did not start on vercel” og viser hver indstilling, der skal ændres.

Opgradering

Kør først migreringer på den tilhørende vært, aktivér derefter den nye Vercel- udrulning, og udrul til sidst de tilhørende workers efter rækkefølgen i opgraderingsvejledningen. En øjeblikkelig Vercel-tilbageførsel er en kode- tilbageførsel og er altid sikker inden for en udgivelse.

Navigation

Skriv for at søge…

↑↓ naviger↵ vælgEsc luk