---
title: "Ang web tier sa Vercel"
description: "Padagana ang web tier sa Quire sa Vercel uban sa kauban nga worker."
image: "https://docs.quirelms.com/og.png"
---

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

# Ang web tier sa Vercel

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

Ang disenyo gihulagway sa seksiyon 5 sa `docs/architecture/23-ops.md`. Ang web tier ra ang gipadagan sa Vercel. Ang tanang laing bahin anaa sa kauban nga host nga imong paandaron, ug kinahanglan kini.

## Kahimtang niining release <!--quire:status-in-this-release-->

Andam na ang configuration (`apps/web/vercel.json`, ang Nitro preset nga `vercel` ug ang mga pagsusi sa pagsugod). Nagkinahanglan ang Vercel og gipaambitang file storage (`QUIRE_STORAGE_DRIVER=s3` o `azure`), realtime driver nga molihok sa daghang function instance (`QUIRE_REALTIME_DRIVER=sse` o `centrifugo`) ug HTTP email provider. Kon wala kini, dili mosugod ang web tier ug ilista sa log niini ang matag kulang nga setting.

## Mga bahin <!--quire:the-pieces-->

| Bahin | Asa kini modagan |
| --- | --- |
| `web` | Vercel Functions, Bun runtime: mga panid, REST, MCP, LTI, nadawat nga mga webhook |
| `worker`, `scheduler`, `collab`, `content` | Kauban nga host: Fly, Railway, ECS, o kaugalingon nimong Docker host nga adunay `docker/compose.yaml` |
| Postgres | Eksternal, luyo sa transaction pooler: Neon, Supabase, o RDS nga may PgBouncer |
| Files | S3 o R2. Walay persistent disk |
| Background jobs | I-enqueue sa sulod sa transaction sa request gamit ang pg-boss, ug padaganon sa kauban nga worker. Kon gigamit sa companion worker ang `QUIRE_QUEUE_DRIVER=vercel`, moagi sa Vercel Queues (`VERCEL_QUEUE_REGION`, `VERCEL_QUEUE_TOKEN`) ang gaan nga mga job (notifications ug webhook delivery nga walay gitakdang han-ay), busa dili pangutan-on alang niini ang pooled Postgres |
| Recurring jobs | Ang kauban nga scheduler. Walay Vercel Cron route kay mo-timeout ang cron nga magbuhat sulod sa function |
| Tracing | OpenTelemetry ngadto sa imong collector, `OTEL_EXPORTER_OTLP_ENDPOINT` |

## Dili mahimo niining target <!--quire:what-this-target-cannot-do-->

Susihon kini sa web tier sa pagsugod ug mohunong kini samtang gilista ang matag problema, imbis nga mapakyas sa ulahing higayon kon dili mapadala ang unang email:

- **Walay SMTP.** Gibabagan sa Vercel ang SMTP nga mogawas. Itakda ang `QUIRE_EMAIL_PROVIDER_CONFIG` sa HTTP provider (Postmark, SES, Mailgun, SendGrid o Resend). Isalikway ang `QUIRE_SMTP_URL`.
- **Walay lokal nga disk.** Isalikway ang `QUIRE_STORAGE_DRIVER=local`.
- **Walay gipaambitang memorya tali sa mga invocation.** Isalikway ang `QUIRE_REALTIME_DRIVER=inprocess`. Kutob ra sa timeout sa function ang server-sent events; mokonektar pag-usab ang kliyente gamit ang cursor, busa walay event nga mawala, apan dili magamit ang presence.
- **Limitado ang naka-pin nga tenant database** ngadto sa mga walo, kay dugang connection pool ang matag usa niini sa palibot nga dili makapaambit og pool.

## Pag-deploy <!--quire:deploying-->

1. Paghimo og Vercel project gikan sa repository, gamit ang **Root Directory** nga `apps/web`. Itakda sa `apps/web/vercel.json` ang install ug build command (`NITRO_PRESET=vercel`) ug ipaserbisyo ang `/sw.js` nga walay cache.
2. Itakda ang mga environment variable. Gikan sa `docker/.env.example`, labing menos: `QUIRE_DEPLOY_TARGET=vercel`, `QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`, `QUIRE_SECRET_KEY`, `QUIRE_MASTER_KEY`, `DATABASE_URL` (address sa pooler), `QUIRE_REPORT_DATABASE_URL`, `QUIRE_AUDIT_DATABASE_URL`, `QUIRE_DATABASE_ID`, `QUIRE_EMAIL_PROVIDER_CONFIG`, `QUIRE_MAIL_FROM`, ang mga setting sa storage, ug ang `QUIRE_COLLAB_URL` ug `QUIRE_COLLAB_SIGNING_KEY` nga nagtudlo sa collab service sa kauban nga host. Gigamit ang `QUIRE_REPORT_DATABASE_URL` para sa pisikal nga database nga ginganlan sa `DATABASE_URL`. Para sa matag dugang nga narehistrong database, idugang ang kaugalingong `quire_report` connection URL niini sa environment sa web ug worker, unya irehistro ang ngalan sa environment variable isip `env:NAME` sa platform console. Mosira ang analytics kon kulang ang report URL niana nga database.
3. Sa kauban nga host, padagana ang `docker/compose.yaml` nga walay `web` service ug gamita ang samang `docker/.env`:
   ```sh
   docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
   ```
   Didto modagan ang mga migration, sa dili pa i-promote ang matag Vercel deployment.
4. I-deploy. Kon isalikway ang configuration, magsugod ang function log sa "The web tier did not start on vercel" ug ilista ang matag setting nga usbon.

## Pag-upgrade <!--quire:upgrading-->

Una pag-migrate gikan sa kauban nga host, sunod i-promote ang bag-ong Vercel deployment, unya i-roll ang mga worker sa kauban nga host: mao kini ang han-ay sa [upgrade.md](/ceb/ops/upgrade/). Luwas kanunay sulod sa usa ka release ang instant rollback sa Vercel kay rollback kini sa code.

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