---
title: "De web tier op Vercel"
description: "Draai de web tier fan Quire op Vercel mei in begeliedende worker."
image: "https://docs.quirelms.com/og.png"
---

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

# De web tier op Vercel

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

It ûntwerp stiet yn `docs/architecture/23-ops.md` seksje 5. Vercel draait allinnich de
web tier. Al it oare draait op in begeliedende host dy'tst sels behearst; dy is ferplichte.

## Steat yn dizze release <!--quire:status-in-this-release-->

De konfiguraasje is oanwêzich (`apps/web/vercel.json`, de Nitro-preset `vercel` en de
startkontrôles). Vercel hat dielde bestânsopslach nedich (`QUIRE_STORAGE_DRIVER=s3` of
`azure`), in realtime-driver dy't oer funksje-ynstânsjes hinne wurket
(`QUIRE_REALTIME_DRIVER=sse` of `centrifugo`) en in HTTP-e-mailprovider. Sûnder dy
ynstellingen wegeret de web tier te begjinnen en neamt it logboek elk ûntbrekkend item.

## De ûnderdielen <!--quire:the-pieces-->

| Underdiel | Wêr't it draait |
| --- | --- |
| `web` | Vercel Functions, Node-runtime: siden, REST, MCP, LTI en ûntfongen webhooks |
| `worker`, `scheduler`, `collab`, `content` | Begeliedende host: Fly, Railway, ECS of dyn eigen Docker-host mei `docker/compose.yaml` |
| Postgres | Ekstern, efter in transaksjepooler: Neon, Supabase of RDS mei PgBouncer |
| Bestannen | S3 of R2. Der is gjin permaninte skiif |
| Eftergrûntaken | Yn de transaksje fan it fersyk mei pg-boss op de wachtrige set, útfierd troch de begeliedende worker. Mei `QUIRE_QUEUE_DRIVER=vercel` op dy worker geane de lichte taken (net-oardere meidielingen en webhookleveringen) fia Vercel Queues (`VERCEL_QUEUE_REGION`, `VERCEL_QUEUE_TOKEN`), sadat Postgres se net poallet |
| Weromkommende taken | De begeliedende scheduler. Der is gjin Vercel Cron-route, om't wurk yn in funksje útfiere ta in timeout liedt |
| Tracing | OpenTelemetry nei dyn collector, `OTEL_EXPORTER_OTLP_ENDPOINT` |

## Wat dizze target net kin <!--quire:what-this-target-cannot-do-->

De web tier kontrolearret dit by it starten en wegeret, mei elke reden neamd,
ynstee fan letter te mislearjen by de earste e-mail dy't net ferstjoerd wurdt:

- **Gjin SMTP.** Vercel blokkearret útgeand SMTP. Stel `QUIRE_EMAIL_PROVIDER_CONFIG`
  yn op in HTTP-provider (Postmark, SES, Mailgun, SendGrid of Resend).
  `QUIRE_SMTP_URL` wurdt wegere.
- **Gjin lokale skiif.** `QUIRE_STORAGE_DRIVER=local` wurdt wegere.
- **Gjin dielde ûnthâld tusken oproppen.** `QUIRE_REALTIME_DRIVER=inprocess`
  wurdt wegere. Server-sent events binne beheind troch de funksjetimeout; de client
  ferbynt opnij mei in cursor, sadat gjin barren ferlern giet, mar oanwêzigens is net beskikber.
- **It tal fêstsette tenant-databases is beheind** ta sa'n acht, om't elk in ekstra
  ferbiningspool freget yn in omjouwing dêr't pools net dield wurde kinne.

## Ynsette <!--quire:deploying-->

1. Meitsje út it repository in Vercel-projekt mei **Root Directory** `apps/web`.
   `apps/web/vercel.json` stelt ynstallaasje- en boukommando's yn (`NITRO_PRESET=vercel`)
   en tsjinnet `/sw.js` sûnder cache.
2. Stel omjouwingsfariabelen yn. Brûk op syn minst út `docker/.env.example`:
   `QUIRE_DEPLOY_TARGET=vercel`, `QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`,
   `QUIRE_PLATFORM_DOMAINS`, `QUIRE_SECRET_KEY`, `QUIRE_MASTER_KEY`,
   `DATABASE_URL` (adres fan de pooler), `QUIRE_REPORT_DATABASE_URL`,
   `QUIRE_AUDIT_DATABASE_URL`, `QUIRE_DATABASE_ID`, `QUIRE_EMAIL_PROVIDER_CONFIG`,
   `QUIRE_MAIL_FROM`, opslachynstellingen en `QUIRE_COLLAB_URL` en
   `QUIRE_COLLAB_SIGNING_KEY` dy't nei de collab-tsjinst fan de begeliedende host wize.
   `QUIRE_REPORT_DATABASE_URL` heart by de fysike database dy't `DATABASE_URL` neamt.
   Foegje foar elke ekstra registrearre database de eigen `quire_report`-ferbinings-URL ta
   oan de omjouwings fan web en worker; registrearje dêrnei de fariabelenamme yn it
   platfoarmkonsole as `env:NAME`. Analytics wegeret wurk as dy database gjin rapport-URL hat.
3. Draai op de begeliedende host `docker/compose.yaml` sûnder `web`-tsjinst, mei deselde
   `docker/.env`:
   ```sh
   docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
   ```
   Migrations rinne dêr, foardat elke Vercel-ynset aktyf makke wurdt.
4. Set yn. By wegere konfiguraasje begjint it funksjelogboek mei
   "The web tier did not start on vercel" en list it elke ynstelling dy't feroare wurde moat.

## Upgrade <!--quire:upgrading-->

Migrearje earst fan de begeliedende host ôf, set dêrnei de nije Vercel-ynset aktyf en
fernij as lêste de workers dêre: folgje de folchoarder yn [upgrade.md](/fy/ops/upgrade/).
In direkte Vercel-rollback is in koaderollback en is binnen in release altyd feilich.

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