Ves al contingut

La capa web a Vercel

Executeu la capa web de Quire a Vercel amb un worker complementari.

Mostra com a Markdown

El disseny es descriu a docs/architecture/23-ops.md, secció 5. Vercel només executa la capa web. Tota la resta s’executa en un host complementari que gestioneu vosaltres; és imprescindible.

Estat d’aquesta versió

La configuració està preparada (apps/web/vercel.json, el preset Nitro vercel i les comprovacions d’inici). Vercel necessita emmagatzematge de fitxers compartit (QUIRE_STORAGE_DRIVER=s3 o azure), un driver de temps real compatible amb diverses instàncies de funció (QUIRE_REALTIME_DRIVER=sse o centrifugo) i un proveïdor de correu electrònic HTTP. Si manca algun d’aquests elements, la capa web es nega a iniciar-se i el registre n’indica cadascun.

Components

Component On s’executa
web Vercel Functions, entorn Node: pàgines, REST, MCP, LTI i recepció de webhooks
worker, scheduler, collab, content Un host complementari: Fly, Railway, ECS o un host Docker propi amb docker/compose.yaml
Postgres Extern, darrere d’un gestor de connexions transaccionals: Neon, Supabase o RDS amb PgBouncer
Fitxers S3 o R2. No hi ha disc persistent
Tasques en segon pla S’encauen amb pg-boss dins de la transacció de la petició i les executa el worker complementari. Si s’estableix QUIRE_QUEUE_DRIVER=vercel al worker complementari, les tasques lleugeres (notificacions no ordenades i lliuraments de webhooks) passen per Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN) i no es consulta Postgres per aquestes tasques
Tasques recurrents El scheduler complementari. No hi ha cap ruta de Vercel Cron perquè una tasca executada dins d’una funció cron pot superar-ne el temps d’espera
Traçat OpenTelemetry cap al vostre recol·lector, OTEL_EXPORTER_OTLP_ENDPOINT

Què no pot fer aquest entorn

La capa web ho comprova en iniciar-se i es nega a continuar si hi ha algun problema. En lloc d’esperar a fallar quan un correu no s’enviï, enumera tots els problemes:

  • No hi ha SMTP. Vercel bloqueja el trànsit SMTP de sortida. Configureu QUIRE_EMAIL_PROVIDER_CONFIG amb un proveïdor HTTP (Postmark, SES, Mailgun, SendGrid o Resend). Es rebutja QUIRE_SMTP_URL.
  • No hi ha disc local. Es rebutja QUIRE_STORAGE_DRIVER=local.
  • No hi ha memòria compartida entre invocacions. Es rebutja QUIRE_REALTIME_DRIVER=inprocess. Els esdeveniments enviats pel servidor queden limitats al temps d’espera de la funció; el client es reconnecta amb un cursor, de manera que no es perd cap esdeveniment, però la presència no està disponible.
  • Nombre limitat de bases de dades de tenants assignades: aproximadament vuit, perquè cadascuna n’afegeix un altre grup de connexions en un entorn que no permet compartir-los.

Desplegament

  1. Creeu un projecte de Vercel des del repositori amb Root Directory apps/web. apps/web/vercel.json estableix les ordres d’instal·lació i compilació (NITRO_PRESET=vercel) i evita la memòria cau de /sw.js.
  2. Configureu les variables d’entorn. Com a mínim, des de docker/.env.example: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (l’adreça del gestor de connexions), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, les opcions d’emmagatzematge i QUIRE_COLLAB_URL i QUIRE_COLLAB_SIGNING_KEY que apuntin al servei collab del host complementari. QUIRE_REPORT_DATABASE_URL correspon a la base de dades física indicada per DATABASE_URL. Per a cada base addicional registrada, afegiu el seu URL de connexió quire_report als entorns web i worker, i registreu el nom de la variable com env:NAME a la consola de la plataforma. Si manca l’URL d’informes d’aquesta base de dades, les consultes d’analytics es bloquegen de manera segura.
  3. Al host complementari, executeu docker/compose.yaml sense el servei web, amb el mateix docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Les migracions s’hi executen abans d’activar cada desplegament de Vercel.
  4. Desplegueu. Si la configuració no és vàlida, el registre de la funció comença amb «The web tier did not start on vercel» i enumera els valors que cal canviar.

Actualització

Primer feu la migració des del host complementari, després activeu el nou desplegament de Vercel i, finalment, renoveu els workers del host complementari: seguiu l’ordre de actualització. Una reversió immediata a Vercel és una reversió del codi i sempre és segura dins d’una mateixa versió.

Navegació

Escriviu per cercar…

↑↓ per navegar↵ per seleccionarEsc per tancar