Preskoči na sadržaj

Web sloj na Vercelu

Pokrenite Quire web sloj na Vercelu uz prateći worker.

Prikaži kao Markdown

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

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

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

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

  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:
    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

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

Navigacija

Upišite pojam za pretragu…

↑↓ navigacija↵ odaberiEsc zatvori