Ir ao contido

A capa web en Vercel

Executa a capa web de Quire en Vercel cun traballador complementario.

Ver como Markdown

O deseño descríbese na sección 5 de docs/architecture/23-ops.md. Vercel executa só a capa web. Todo o demais execútase nun host complementario que xestionas ti, e é obrigatorio.

Estado nesta versión

A configuración xa está preparada (apps/web/vercel.json, o preaxuste Nitro vercel e as comprobacións de inicio). Vercel precisa almacenamento de ficheiros compartido (QUIRE_STORAGE_DRIVER=s3 ou azure), un controlador de tempo real que funcione en varias instancias de funcións (QUIRE_REALTIME_DRIVER=sse ou centrifugo) e un provedor HTTP de correo. Se faltan, a capa web non se inicia e o rexistro indica cada axuste pendente.

Compoñentes

Compoñente Onde se executa
web Vercel Functions, entorno de execución Node: páxinas, REST, MCP, LTI e webhooks recibidos
worker, scheduler, collab, content Un host complementario: Fly, Railway, ECS ou o teu propio host Docker con docker/compose.yaml
Postgres Externo, detrás dun agrupador de conexións de transaccións: Neon, Supabase ou RDS con PgBouncer
Ficheiros S3 ou R2. Non hai disco persistente
Tarefas en segundo plano Engádense con pg-boss dentro da transacción da petición e execútaas o traballador complementario. Se o traballador complementario utiliza QUIRE_QUEUE_DRIVER=vercel, as tarefas lixeiras (notificacións sen orde e entregas de webhooks) pasan por Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN) para que non se consulten esas tarefas en Postgres agrupado
Tarefas recorrentes Planificador complementario. Non hai ningunha ruta Vercel Cron porque unha tarefa executada nunha función supera o seu tempo límite
Trazas OpenTelemetry envíaas ao teu colector, OTEL_EXPORTER_OTLP_ENDPOINT

Limitacións deste destino

A capa web compróbaas ao iniciarse e rexeita a configuración, indicando todos os problemas en vez de fallar máis tarde cando non se envíe un correo:

  • Non admite SMTP. Vercel bloquea o tráfico SMTP saínte. Establece QUIRE_EMAIL_PROVIDER_CONFIG cun provedor HTTP (Postmark, SES, Mailgun, SendGrid ou Resend). Rexeitarase QUIRE_SMTP_URL.
  • Non admite disco local. Rexeitarase QUIRE_STORAGE_DRIVER=local.
  • Non comparte memoria entre invocacións. Rexeitarase QUIRE_REALTIME_DRIVER=inprocess. Os eventos enviados polo servidor limitanse ao tempo límite da función; o cliente reconéctase cun cursor, polo que non se perde ningún evento, pero a información de presenza non está dispoñible.
  • As bases de datos de inquilinos vinculados están limitadas a aproximadamente oito, porque cada unha require outro grupo de conexións nun entorno que non permite compartir os grupos.

Despregamento

  1. Crea un proxecto de Vercel desde o repositorio e establece apps/web como Directorio raíz. apps/web/vercel.json configura os comandos de instalación e compilación (NITRO_PRESET=vercel) e serve /sw.js sen caché.
  2. Establece as variables de entorno. A partir de docker/.env.example, necesitas polo menos: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (enderezo do agrupador), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, os axustes de almacenamento e QUIRE_COLLAB_URL e QUIRE_COLLAB_SIGNING_KEY, que deben apuntar ao servizo collab do host complementario. QUIRE_REPORT_DATABASE_URL pertence á base de datos física indicada por DATABASE_URL. Para cada base adicional rexistrada, engade o seu propio URL de conexión quire_report aos entornos web e do traballador e, a continuación, rexistra o nome da variable de entorno como env:NAME na consola da plataforma. Se falta o URL de informes desa base, a analítica falla de forma segura.
  3. No host complementario, executa docker/compose.yaml sen o servizo web e co mesmo docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    As migracións execútanse alí antes de activar cada despregamento de Vercel.
  4. Despregue. Se a configuración é rexeitada, o rexistro da función comeza por «The web tier did not start on vercel» e enumera todos os axustes que hai que cambiar.

Actualizacións

Executa primeiro as migracións no host complementario; despois, activa o novo despregamento de Vercel e, por último, actualiza gradualmente os traballadores complementarios, na orde indicada en upgrade.md. Unha reversión instantánea de Vercel reverte o código e sempre é segura dentro dunha versión.

Navegación

Escribe para buscar…

↑↓ navegar↵ seleccionarEsc pechar