Laktawi ngadto sa sulod

Ang web tier sa Vercel

Padagana ang web tier sa Quire sa Vercel uban sa kauban nga worker.

Tan-awa isip Markdown

Ang disenyo gihulagway sa seksiyon 5 sa docs/architecture/23-ops.md. Ang web tier ra ang gipadagan sa Vercel. Ang tanang laing bahin anaa sa kauban nga host nga imong paandaron, ug kinahanglan kini.

Kahimtang niining release

Andam na ang configuration (apps/web/vercel.json, ang Nitro preset nga vercel ug ang mga pagsusi sa pagsugod). Nagkinahanglan ang Vercel og gipaambitang file storage (QUIRE_STORAGE_DRIVER=s3 o azure), realtime driver nga molihok sa daghang function instance (QUIRE_REALTIME_DRIVER=sse o centrifugo) ug HTTP email provider. Kon wala kini, dili mosugod ang web tier ug ilista sa log niini ang matag kulang nga setting.

Mga bahin

Bahin Asa kini modagan
web Vercel Functions, Bun runtime: mga panid, REST, MCP, LTI, nadawat nga mga webhook
worker, scheduler, collab, content Kauban nga host: Fly, Railway, ECS, o kaugalingon nimong Docker host nga adunay docker/compose.yaml
Postgres Eksternal, luyo sa transaction pooler: Neon, Supabase, o RDS nga may PgBouncer
Files S3 o R2. Walay persistent disk
Background jobs I-enqueue sa sulod sa transaction sa request gamit ang pg-boss, ug padaganon sa kauban nga worker. Kon gigamit sa companion worker ang QUIRE_QUEUE_DRIVER=vercel, moagi sa Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN) ang gaan nga mga job (notifications ug webhook delivery nga walay gitakdang han-ay), busa dili pangutan-on alang niini ang pooled Postgres
Recurring jobs Ang kauban nga scheduler. Walay Vercel Cron route kay mo-timeout ang cron nga magbuhat sulod sa function
Tracing OpenTelemetry ngadto sa imong collector, OTEL_EXPORTER_OTLP_ENDPOINT

Dili mahimo niining target

Susihon kini sa web tier sa pagsugod ug mohunong kini samtang gilista ang matag problema, imbis nga mapakyas sa ulahing higayon kon dili mapadala ang unang email:

  • Walay SMTP. Gibabagan sa Vercel ang SMTP nga mogawas. Itakda ang QUIRE_EMAIL_PROVIDER_CONFIG sa HTTP provider (Postmark, SES, Mailgun, SendGrid o Resend). Isalikway ang QUIRE_SMTP_URL.
  • Walay lokal nga disk. Isalikway ang QUIRE_STORAGE_DRIVER=local.
  • Walay gipaambitang memorya tali sa mga invocation. Isalikway ang QUIRE_REALTIME_DRIVER=inprocess. Kutob ra sa timeout sa function ang server-sent events; mokonektar pag-usab ang kliyente gamit ang cursor, busa walay event nga mawala, apan dili magamit ang presence.
  • Limitado ang naka-pin nga tenant database ngadto sa mga walo, kay dugang connection pool ang matag usa niini sa palibot nga dili makapaambit og pool.

Pag-deploy

  1. Paghimo og Vercel project gikan sa repository, gamit ang Root Directory nga apps/web. Itakda sa apps/web/vercel.json ang install ug build command (NITRO_PRESET=vercel) ug ipaserbisyo ang /sw.js nga walay cache.
  2. Itakda ang mga environment variable. Gikan sa docker/.env.example, labing menos: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (address sa pooler), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, ang mga setting sa storage, ug ang QUIRE_COLLAB_URL ug QUIRE_COLLAB_SIGNING_KEY nga nagtudlo sa collab service sa kauban nga host. Gigamit ang QUIRE_REPORT_DATABASE_URL para sa pisikal nga database nga ginganlan sa DATABASE_URL. Para sa matag dugang nga narehistrong database, idugang ang kaugalingong quire_report connection URL niini sa environment sa web ug worker, unya irehistro ang ngalan sa environment variable isip env:NAME sa platform console. Mosira ang analytics kon kulang ang report URL niana nga database.
  3. Sa kauban nga host, padagana ang docker/compose.yaml nga walay web service ug gamita ang samang docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Didto modagan ang mga migration, sa dili pa i-promote ang matag Vercel deployment.
  4. I-deploy. Kon isalikway ang configuration, magsugod ang function log sa “The web tier did not start on vercel” ug ilista ang matag setting nga usbon.

Pag-upgrade

Una pag-migrate gikan sa kauban nga host, sunod i-promote ang bag-ong Vercel deployment, unya i-roll ang mga worker sa kauban nga host: mao kini ang han-ay sa upgrade.md. Luwas kanunay sulod sa usa ka release ang instant rollback sa Vercel kay rollback kini sa code.

Paglawig

Pag-type aron mangita…

↑↓ lihok↵ piliaEsc sirad-i