A kialakítást a docs/architecture/23-ops.md 5. szakasza írja le. A Vercel csak a webes réteget futtatja. Minden más egy Ön által üzemeltetett kiegészítő hoston fut, és ez kötelező.
Állapot ebben a kiadásban
A konfiguráció rendelkezésre áll (apps/web/vercel.json, a vercel Nitro-előbeállítás és az indítási ellenőrzések). A Vercelnek megosztott fájltárolás kell (QUIRE_STORAGE_DRIVER=s3 vagy azure), a függvénypéldányok között működő realtime driver (QUIRE_REALTIME_DRIVER=sse vagy centrifugo) és HTTP-s e-mail-szolgáltató. Ezek nélkül a webes réteg megtagadja az indulást, és a napló felsorolja a hiányzó beállításokat.
Összetevők
Összetevő
Futási hely
web
Vercel Functions, Bun runtime: oldalak, REST, MCP, LTI, fogadott webhookok
worker, scheduler, collab, content
Kiegészítő host: Fly, Railway, ECS vagy saját Docker-host docker/compose.yaml fájllal
Postgres
Külső adatbázis, tranzakciós pooler mögött: Neon, Supabase vagy PgBouncerrel használt RDS
Fájlok
S3 vagy R2. Nincs tartós lemez
Háttérfeladatok
A kérés tranzakcióján belül pg-boss sorolja be őket, a kiegészítő worker futtatja. A kiegészítő worker QUIRE_QUEUE_DRIVER=vercel beállításával az egyszerű feladatok (nem sorrendhez kötött értesítések és webhook-kézbesítések) Vercel Queues-en (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN) futnak, így a poolozott Postgres nem ellenőrzi őket folyamatosan
Ismétlődő feladatok
A kiegészítő scheduler. Nincs Vercel Cron-útvonal, mert a függvényben dolgozó cron időtúllépést okozhat
Nyomkövetés
OpenTelemetry a gyűjtőnek, OTEL_EXPORTER_OTLP_ENDPOINT
Amit ez a célkörnyezet nem tud
Induláskor ellenőrzi ezeket, és minden problémát megnevezve elutasítja a konfigurációt; nem várja meg, hogy az első e-mail ne küldődjön el:
Nincs SMTP. A Vercel blokkolja a kimenő SMTP-t. A QUIRE_EMAIL_PROVIDER_CONFIG értékét állítsa be HTTP-s szolgáltatóra (Postmark, SES, Mailgun, SendGrid vagy Resend). A QUIRE_SMTP_URL beállítás elutasított.
Nincs helyi lemez. A QUIRE_STORAGE_DRIVER=local beállítás elutasított.
Nincs megosztott memória a hívások között. A QUIRE_REALTIME_DRIVER=inprocess beállítás elutasított. A server-sent events működése a függvény időkorlátjáig tart; a kliens kurzorral csatlakozik újra, így az események nem vesznek el, de jelenléti állapot nincs.
A rögzített tenant-adatbázisok korlátozott számban használhatók, nagyjából nyolcig, mert mindegyik újabb kapcsolatpoolt jelent egy olyan környezetben, ahol a poolok nem oszthatók meg.
Üzembe helyezés
Hozzon létre Vercel-projektet a tárolóból, apps/webRoot Directory beállítással. Az apps/web/vercel.json állítja be a telepítési és buildparancsokat (NITRO_PRESET=vercel), és gyorsítótárazás nélkül szolgálja ki a /sw.js fájlt.
Állítsa be a környezeti változókat. A docker/.env.example alapján legalább ezek kellenek: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (a pooler címe), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, a tárolási beállítások, valamint a kiegészítő collab szolgáltatásra mutató QUIRE_COLLAB_URL és QUIRE_COLLAB_SIGNING_KEY.
A QUIRE_REPORT_DATABASE_URL a DATABASE_URL által megadott fizikai adatbázishoz tartozik. Minden további regisztrált adatbázishoz adja hozzá a saját quire_report kapcsolati URL-jét a webes és worker-környezethez, majd regisztrálja a változó nevét env:NAME formában a platform konzolján. Ha hiányzik az adatbázis jelentési URL-je, az analitika biztonságosan leáll.
A kiegészítő hoston futtassa a docker/compose.yaml fájlt a web szolgáltatás nélkül, ugyanazzal a docker/.env fájllal:
A migrációk itt futnak le, mielőtt az egyes Vercel-telepítéseket élesíti.
Telepítsen. Hibás konfigurációnál a függvénynapló ezzel kezdődik: “The web tier did not start on vercel”, majd felsorolja a módosítandó beállításokat.
Frissítés
Először migráljon a kiegészítő hostról, utána élesítse az új Vercel-telepítést, végül frissítse a kiegészítő workereket: a sorrendet az upgrade.md ismerteti. A Vercel azonnali visszaállítása kódot állít vissza, és ugyanazon kiadáson belül mindig biztonságos.