Slaan oor na inhoud

Die webvlak op Vercel

Bedryf Quire se webvlak op Vercel met ’n meegaande werker.

Bekyk as Markdown

Die ontwerp staan in afdeling 5 van docs/architecture/23-ops.md. Vercel bedryf net die webvlak. Alles anders loop op ’n meegaande gasheer wat jy bedryf; dit is noodsaaklik.

Status in hierdie vrystelling

Die konfigurasie is in plek (apps/web/vercel.json, die vercel Nitro-voorinstelling en opstartkontroles). Vercel benodig gedeelde lêerberging (QUIRE_STORAGE_DRIVER=s3 of azure), ’n intydse aandrywer wat oor funksie-instansies werk (QUIRE_REALTIME_DRIVER=sse of centrifugo) en ’n HTTP-e-posverskaffer. Sonder hulle weier die webvlak om te begin en noem sy log elke ontbrekende instelling.

Die dele

Deel Waar dit loop
web Vercel Functions, Node-looptyd: bladsye, REST, MCP, LTI, ontvangde webhooks
worker, scheduler, collab, content ’n Meegaande gasheer: Fly, Railway, ECS of jou eie Docker-gasheer met docker/compose.yaml
Postgres Ekstern, agter ’n transaksiepoeler: Neon, Supabase of RDS met PgBouncer
Lêers S3 of R2. Daar is geen aanhoudende skyf nie
Agtergrondtake Word met pg-boss binne die versoek se transaksie in die tou geplaas en deur die meegaande werker uitgevoer. Met QUIRE_QUEUE_DRIVER=vercel op die meegaande werker gaan die ligte take (ongeordende kennisgewings en webhook-aflewerings) deur Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), sodat gepoelde Postgres nie daarvoor gepols word nie
Herhalende take Die meegaande skeduleerder. Daar is geen Vercel Cron-roete nie, want ’n cron wat werk binne ’n funksie doen, loop uit op ’n tydsbeperking
Nasporing OpenTelemetry na jou versamelaar, OTEL_EXPORTER_OTLP_ENDPOINT

Wat hierdie teiken nie kan doen nie

Die webvlak kontroleer dit wanneer dit begin en weier met elke probleem benoem, eerder as om later te misluk wanneer die eerste e-pos nie gestuur word nie:

  • Geen SMTP nie. Vercel blokkeer uitgaande SMTP. Stel QUIRE_EMAIL_PROVIDER_CONFIG op ’n HTTP-verskaffer (Postmark, SES, Mailgun, SendGrid of Resend). QUIRE_SMTP_URL word geweier.
  • Geen plaaslike skyf nie. QUIRE_STORAGE_DRIVER=local word geweier.
  • Geen gedeelde geheue tussen aanroepe nie. QUIRE_REALTIME_DRIVER=inprocess word geweier. Gebeurtenisse wat deur die bediener gestuur word, word deur die funksietydsbeperking begrens; die kliënt koppel weer met ’n wyser, dus gaan geen gebeurtenis verlore nie, maar teenwoordigheid is onbeskikbaar.
  • Gepinde tenant-databasisse is beperk tot ongeveer agt, want elkeen is nog ’n verbindingspoel in ’n omgewing wat poele nie kan deel nie.

Ontplooi

  1. Skep ’n Vercel-projek vanaf die bewaarplek met Root Directory apps/web. apps/web/vercel.json stel die installasie- en bouopdragte (NITRO_PRESET=vercel) in en bedien /sw.js sonder kasberging.
  2. Stel die omgewingsveranderlikes in. Ten minste die volgende uit docker/.env.example: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (die poeler se adres), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, berginginstellings en QUIRE_COLLAB_URL plus QUIRE_COLLAB_SIGNING_KEY wat na die meegaande collab-diens wys. QUIRE_REPORT_DATABASE_URL behoort aan die fisiese databasis wat deur DATABASE_URL benoem word. Vir elke bykomende geregistreerde databasis, voeg sy eie quire_report-verbinding-URL by die web- en werkeromgewings, en registreer dan sy omgewingsveranderlikenaam as env:NAME in die platformkonsole. Analise faal gesluit as daardie databasis se verslag-URL ontbreek.
  3. Begin docker/compose.yaml op die meegaande gasheer sonder die web-diens, met dieselfde docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Migrasies loop daar voordat elke Vercel-ontplooiing bevorder word.
  4. Ontplooi. By ’n geweierde konfigurasie begin die funksielog met “The web tier did not start on vercel” en lys elke instelling om te verander.

Opgradeer

Migreer eers vanaf die meegaande gasheer, bevorder dan die nuwe Vercel-ontplooiing en rol daarna die meegaande werkers oor: die volgorde staan in upgrade.md. ’n Onmiddellike Vercel-terugdraai is ’n kode-terugdraai en is altyd veilig binne ’n vrystelling.

Navigasie

Tik om te soek…

↑↓ navigeer↵ kiesEsc sluit