---
title: "Web sloj na Vercelu"
description: "Pokrenite Quire web sloj na Vercelu uz prateći worker."
image: "https://docs.quirelms.com/og.png"
---

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

# Web sloj na Vercelu

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

Dizajn je opisan u odjeljku 5 dokumenta `docs/architecture/23-ops.md`. Vercel pokreće samo web sloj. Sve ostalo radi na pratećem hostu kojim vi upravljate, i taj host je obavezan.

## Stanje u ovom izdanju <!--quire:status-in-this-release-->

Konfiguracija je pripremljena (`apps/web/vercel.json`, Nitro `vercel` preset i provjere pri pokretanju). Vercelu su potrebni zajedničko spremište datoteka (`QUIRE_STORAGE_DRIVER=s3` ili `azure`), realtime upravljački program koji radi na više instanci funkcija (`QUIRE_REALTIME_DRIVER=sse` ili `centrifugo`) i HTTP pružatelj e-pošte. Bez njih web sloj odbija pokretanje, a evidencija navodi svaku nedostajuću postavku.

## Komponente <!--quire:the-pieces-->

| Komponenta | Gdje radi |
| --- | --- |
| `web` | Vercel Functions, Bun runtime: stranice, REST, MCP, LTI, primanje webhookova |
| `worker`, `scheduler`, `collab`, `content` | Prateći host: Fly, Railway, ECS ili vaš Docker host s `docker/compose.yaml` |
| Postgres | Vanjska usluga iza transakcijskog poolera: Neon, Supabase ili RDS s PgBouncerom |
| Datoteke | S3 ili R2. Nema trajnog diska |
| Pozadinski zadaci | Dodaju se putem pg-bossa unutar transakcije zahtjeva, a izvršava ih prateći worker. Ako je na pratećem workeru postavljeno `QUIRE_QUEUE_DRIVER=vercel`, laki zadaci (nesortirana obavještenja i isporuke webhookova) idu preko Vercel Queues (`VERCEL_QUEUE_REGION`, `VERCEL_QUEUE_TOKEN`), pa se pooled Postgres ne provjerava zbog njih |
| Ponavljajući zadaci | Prateći scheduler. Ne postoji Vercel Cron ruta jer bi cron koji radi unutar funkcije prekoračio vrijeme izvršavanja |
| Praćenje | OpenTelemetry prema vašem kolektoru, `OTEL_EXPORTER_OTLP_ENDPOINT` |

## Šta ova platforma ne može <!--quire:what-this-target-cannot-do-->

Web sloj provjerava ove postavke pri pokretanju i odbija rad, navodeći svaki problem, umjesto da kasnije zakaže prvo slanje e-pošte:

- **Nema SMTP-a.** Vercel blokira odlazni SMTP. Postavite `QUIRE_EMAIL_PROVIDER_CONFIG` na HTTP pružatelja (Postmark, SES, Mailgun, SendGrid ili Resend). `QUIRE_SMTP_URL` se odbija.
- **Nema lokalnog diska.** `QUIRE_STORAGE_DRIVER=local` se odbija.
- **Nema zajedničke memorije između poziva.** `QUIRE_REALTIME_DRIVER=inprocess` se odbija. SSE događaji ograničeni su vremenom izvršavanja funkcije; klijent se ponovo povezuje kursorom, pa se događaji ne gube, ali prisustvo nije dostupno.
- **Broj baza podataka fiksiranih za organizacije je ograničen** na otprilike osam, jer svaka zahtijeva dodatni skup veza u okruženju koje ih ne može dijeliti.

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

1. Kreirajte Vercel projekat iz repozitorija s **Root Directory** postavljenim na `apps/web`. `apps/web/vercel.json` određuje komande za instalaciju i izgradnju (`NITRO_PRESET=vercel`) i isporučuje `/sw.js` bez keširanja.
2. Postavite varijable okruženja. Iz `docker/.env.example` su potrebne barem: `QUIRE_DEPLOY_TARGET=vercel`, `QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`, `QUIRE_SECRET_KEY`, `QUIRE_MASTER_KEY`, `DATABASE_URL` (adresa poolera), `QUIRE_REPORT_DATABASE_URL`, `QUIRE_AUDIT_DATABASE_URL`, `QUIRE_DATABASE_ID`, `QUIRE_EMAIL_PROVIDER_CONFIG`, `QUIRE_MAIL_FROM`, postavke spremišta te `QUIRE_COLLAB_URL` i `QUIRE_COLLAB_SIGNING_KEY` usmjereni na collab uslugu pratećeg hosta.
   `QUIRE_REPORT_DATABASE_URL` pripada fizičkoj bazi navedenoj u `DATABASE_URL`. Za svaku dodatno registrovanu bazu dodajte njen vlastiti `quire_report` URL veze u okruženja weba i workera, a zatim registrujte naziv varijable kao `env:NAME` u konzoli platforme. Analitika odbija rad ako URL izvještajne baze nedostaje.
3. Na pratećem hostu pokrenite `docker/compose.yaml` bez `web` usluge i s istim `docker/.env`:
   ```sh
   docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
   ```
   Migracije se izvršavaju tamo prije aktiviranja svakog Vercel izdanja.
4. Implementirajte aplikaciju. Ako konfiguracija bude odbijena, evidencija funkcije počinje porukom „The web tier did not start on vercel“ i navodi postavke koje treba promijeniti.

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

Najprije migrirajte s pratećeg hosta, zatim aktivirajte novo Vercel izdanje, pa nadogradite prateće workere: redoslijed je opisan u [upgrade.md](/bs/ops/upgrade/). Trenutni povratak na prethodnu verziju u Vercelu vraća kod i uvijek je siguran unutar jednog izdanja.

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