---
title: "Webnivået på Vercel"
description: "Kjør Quires webnivå på Vercel med en følgearbeider."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/nb/llms.txt
> Use this file to discover all available pages before exploring further.

# Webnivået på Vercel

<span id="the-web-tier-on-vercel"></span>

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 <!--quire:status-in-this-release-->

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 <!--quire:the-pieces-->

| 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 <!--quire:what-this-target-cannot-do-->

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 <!--quire:deploying-->

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`:
   ```sh
   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 <!--quire:upgrading-->

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

Source: https://docs.quirelms.com/nb/ops/vercel/index.mdx
