Lumaktaw sa nilalaman

Web tier sa Vercel

Patakbuhin ang web tier ng Quire sa Vercel kasama ang kasamang worker.

Tingnan bilang Markdown

Nasa seksiyon 5 ng docs/architecture/23-ops.md ang disenyo. Web tier lang ang pinapatakbo ng Vercel. Tumatakbo sa kasamang host na pinangangasiwaan mo ang lahat ng iba pa; kailangan ito.

Katayuan sa release na ito

Nakahanda na ang configuration (apps/web/vercel.json, ang vercel Nitro preset, at mga startup check). Kailangan ng Vercel ang shared file storage (QUIRE_STORAGE_DRIVER=s3 o azure), realtime driver na gumagana sa iba’t ibang function instance (QUIRE_REALTIME_DRIVER=sse o centrifugo), at HTTP email provider. Kapag wala ang mga ito, tatanggi ang web tier na magsimula at ililista ng log ang bawat nawawalang setting.

Mga bahagi

Bahagi Saan tumatakbo
web Vercel Functions, Bun runtime: mga pahina, REST, MCP, LTI, natanggap na webhook
worker, scheduler, collab, content Kasamang host: Fly, Railway, ECS, o sarili mong Docker host na may docker/compose.yaml
Postgres External, nasa likod ng transaction pooler: Neon, Supabase, o RDS na may PgBouncer
Files S3 o R2. Walang persistent disk
Mga background job Ipinipila sa loob ng transaction ng request gamit ang pg-boss at pinapatakbo ng kasamang worker. Kapag QUIRE_QUEUE_DRIVER=vercel sa companion worker, ipinadaraan sa Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN) ang magaang trabaho (walang pagkakasunod na notification at webhook delivery) upang hindi ito i-poll sa pooled Postgres
Mga paulit-ulit na trabaho Ang scheduler ng kasamang host. Walang Vercel Cron route dahil nagti-time out ang cron na gumagawa ng trabaho sa function
Tracing OpenTelemetry papunta sa collector mo, OTEL_EXPORTER_OTLP_ENDPOINT

Hindi kayang gawin ng target na ito

Sinusuri ito ng web tier sa pagsisimula at tumatanggi, inililista ang lahat ng problema, sa halip na pumalya sa unang email na hindi naipadala:

  • Walang SMTP. Hinaharang ng Vercel ang palabas na SMTP. Itakda ang QUIRE_EMAIL_PROVIDER_CONFIG sa HTTP provider (Postmark, SES, Mailgun, SendGrid, o Resend). Tinatanggihan ang QUIRE_SMTP_URL.
  • Walang lokal na disk. Tinatanggihan ang QUIRE_STORAGE_DRIVER=local.
  • Walang shared memory sa pagitan ng invocation. Tinatanggihan ang QUIRE_REALTIME_DRIVER=inprocess. Nililimitahan ng timeout ng function ang server-sent event; muling kumokonekta ang client gamit ang cursor kaya walang nawawalang event, ngunit hindi available ang presence.
  • Mga walong pinned tenant database lang dahil nagdaragdag ang bawat isa ng connection pool sa environment na hindi nakapaghahati ng pool.

Pag-deploy

  1. Gumawa ng Vercel project mula sa repository at itakda ang Root Directory sa apps/web. Itinatakda ng apps/web/vercel.json ang install at build command (NITRO_PRESET=vercel) at sine-serve ang /sw.js nang walang cache.
  2. Itakda ang mga environment variable. Mula sa docker/.env.example, kailangan man lang ang: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (address ng pooler), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, mga setting ng storage, at QUIRE_COLLAB_URL at QUIRE_COLLAB_SIGNING_KEY na nakaturo sa collab service ng kasamang host. Nakatali ang QUIRE_REPORT_DATABASE_URL sa pisikal na database na pinangalanan ng DATABASE_URL. Para sa bawat dagdag na rehistradong database, idagdag ang sarili nitong quire_report connection URL sa environment ng web at worker, saka irehistro sa platform console ang pangalan nito bilang env:NAME. Hihinto nang ligtas ang analytics kapag nawawala ang report URL ng database.
  3. Sa kasamang host, patakbuhin ang docker/compose.yaml nang walang web service at gamit ang parehong docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Tumatakbo roon ang migration bago i-promote ang bawat Vercel deployment.
  4. Mag-deploy. Kapag tinanggihan ang configuration, magsisimula ang function log sa “The web tier did not start on vercel” at ililista ang mga setting na dapat baguhin.

Pag-upgrade

Mag-migrate muna mula sa kasamang host, saka i-promote ang bagong Vercel deployment at i-roll ang mga worker ng kasama; nasa upgrade.md ang pagkakasunod. Ligtas sa loob ng isang release ang agarang rollback sa Vercel dahil code lang ito.

Nabigasyon

Mag-type para maghanap…

↑↓ mag-navigate↵ pumiliEsc isara