---
title: "Webová vrstva na Vercelu"
description: "Provozujte webovou vrstvu Quire na Vercelu s doprovodným workerem."
image: "https://docs.quirelms.com/og.png"
---

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

# Webová vrstva na Vercelu

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

Architektura je popsána v části 5 dokumentu `docs/architecture/23-ops.md`. Vercel provozuje pouze webovou vrstvu. Vše ostatní běží na doprovodném hostiteli, kterého provozujete vy; ten je nezbytný.

## Stav v této verzi <!--quire:status-in-this-release-->

Konfigurace je připravena (`apps/web/vercel.json`, předvolba Nitro `vercel` a kontroly při spuštění). Vercel potřebuje sdílené úložiště souborů (`QUIRE_STORAGE_DRIVER=s3` nebo `azure`), realtime ovladač fungující napříč instancemi funkcí (`QUIRE_REALTIME_DRIVER=sse` nebo `centrifugo`) a e-mailového poskytovatele přes HTTP. Bez nich webová vrstva odmítne spuštění a v protokolu pojmenuje chybějící nastavení.

## Součásti <!--quire:the-pieces-->

| Součást | Kde běží |
| --- | --- |
| `web` | Vercel Functions, runtime Node: stránky, REST, MCP, LTI, přijímané webhooky |
| `worker`, `scheduler`, `collab`, `content` | Doprovodný hostitel: Fly, Railway, ECS nebo vlastní Docker hostitel s `docker/compose.yaml` |
| Postgres | Externě za transaction poolerem: Neon, Supabase nebo RDS s PgBouncerem |
| Soubory | S3 nebo R2. Trvalý disk není k dispozici |
| Úlohy na pozadí | Zařazují se přes pg-boss do transakce požadavku a spouští je doprovodný worker. Pokud doprovodný worker používá `QUIRE_QUEUE_DRIVER=vercel`, lehké úlohy (neuspořádaná oznámení a doručování webhooků) procházejí přes Vercel Queues (`VERCEL_QUEUE_REGION`, `VERCEL_QUEUE_TOKEN`), takže se kvůli nim neprohledává sdílený Postgres |
| Opakované úlohy | Doprovodný scheduler. Není tu cesta Vercel Cron, protože cron provádějící práci uvnitř funkce by vypršel |
| Trasování | OpenTelemetry do vašeho collectoru, `OTEL_EXPORTER_OTLP_ENDPOINT` |

## Co tento cíl neumí <!--quire:what-this-target-cannot-do-->

Webová vrstva tato omezení kontroluje při spuštění a odmítne konfiguraci s výpisem všech problémů, místo aby selhala později při prvním neodeslaném e-mailu:

- **Bez SMTP.** Vercel blokuje odchozí SMTP. Nastavte `QUIRE_EMAIL_PROVIDER_CONFIG` na HTTP poskytovatele (Postmark, SES, Mailgun, SendGrid nebo Resend). `QUIRE_SMTP_URL` se odmítá.
- **Bez místního disku.** `QUIRE_STORAGE_DRIVER=local` se odmítá.
- **Bez sdílené paměti mezi voláními.** `QUIRE_REALTIME_DRIVER=inprocess` se odmítá. Server-sent events jsou omezeny časovým limitem funkce; klient se znovu připojí s kurzorem, takže se žádná událost neztratí, ale presence není dostupná.
- **Počet připnutých databází tenantů je omezen** přibližně na osm, protože každá vyžaduje další connection pool v prostředí, kde je nelze sdílet.

## Nasazení <!--quire:deploying-->

1. Vytvořte projekt Vercel z repozitáře s **Root Directory** nastaveným na `apps/web`. `apps/web/vercel.json` nastavuje instalační a sestavovací příkazy (`NITRO_PRESET=vercel`) a obsluhuje `/sw.js` bez cache.
2. Nastavte proměnné prostředí. Z `docker/.env.example` potřebujete alespoň: `QUIRE_DEPLOY_TARGET=vercel`, `QUIRE_APP_ORIGIN`, `QUIRE_CONTENT_ORIGIN`, `QUIRE_PLATFORM_DOMAINS`, `QUIRE_SECRET_KEY`, `QUIRE_MASTER_KEY`, `DATABASE_URL` (adresa pooleru), `QUIRE_REPORT_DATABASE_URL`, `QUIRE_AUDIT_DATABASE_URL`, `QUIRE_DATABASE_ID`, `QUIRE_EMAIL_PROVIDER_CONFIG`, `QUIRE_MAIL_FROM`, nastavení úložiště a `QUIRE_COLLAB_URL` spolu s `QUIRE_COLLAB_SIGNING_KEY`, které ukazují na službu collab doprovodného hostitele. `QUIRE_REPORT_DATABASE_URL` náleží ke stejné fyzické databázi jako `DATABASE_URL`. U každé další registrované databáze přidejte její vlastní připojovací URL `quire_report` do prostředí webu i workeru a zaregistrujte název proměnné jako `env:NAME` v konzoli platformy. Pokud chybí adresa reportu dané databáze, analytika se bezpečně odmítne.
3. Na doprovodném hostiteli spusťte `docker/compose.yaml` bez služby `web` a se stejným souborem `docker/.env`:
   ```sh
   docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
   ```
   Migrace se spouštějí tam před povýšením každého nasazení Vercelu.
4. Proveďte nasazení. Při odmítnutí konfigurace začíná protokol funkce textem „The web tier did not start on vercel“ a vypíše všechna nastavení, která je třeba změnit.

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

Nejprve migrujte na doprovodném hostiteli, potom povyšte nové nasazení Vercelu a nakonec obměňte workery doprovodného hostitele. Pořadí je popsáno v [upgrade.md](/cs/ops/upgrade/). Okamžité vrácení nasazení na Vercelu je návrat ke starší verzi kódu a v rámci jedné verze je vždy bezpečné.

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