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
Creeu un projecte de Vercel des del repositori amb Root Directoryapps/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.
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.
Al host complementari, executeu docker/compose.yaml sense el servei web,
amb el mateix docker/.env:
Les migracions s’hi executen abans d’activar cada desplegament de Vercel.
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ó.