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
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í.
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í
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í
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.
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.
Na doprovodném hostiteli spusťte docker/compose.yaml bez služby web a se stejným souborem docker/.env:
Migrace se spouštějí tam před povýšením každého nasazení Vercelu.
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
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. 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é.