La conception est décrite à la section 5 de docs/architecture/23-ops.md. Vercel exécute uniquement la couche Web. Tout le reste fonctionne sur un hôte compagnon que vous exploitez; celui-ci est obligatoire.
État de cette version
La configuration est en place (apps/web/vercel.json, le préréglage Nitro vercel et les vérifications au démarrage). Vercel exige un stockage de fichiers partagé (QUIRE_STORAGE_DRIVER=s3 ou azure), un pilote temps réel fonctionnant entre les instances de fonctions (QUIRE_REALTIME_DRIVER=sse ou centrifugo) et un fournisseur de courriel HTTP. Sans ces éléments, la couche Web refuse de démarrer et son journal indique chaque paramètre manquant.
Hôte compagnon : Fly, Railway, ECS ou votre propre hôte Docker avec docker/compose.yaml
Postgres
Externe, derrière un répartiteur de connexions transactionnel : Neon, Supabase ou RDS avec PgBouncer
Fichiers
S3 ou R2. Aucun disque persistant
Tâches en arrière-plan
Ajoutées à pg-boss dans la transaction de la requête et exécutées par le processus compagnon. Avec QUIRE_QUEUE_DRIVER=vercel sur celui-ci, les tâches légères (livraisons non ordonnées de notifications et de webhooks) passent par Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), évitant l’interrogation de Postgres
Tâches récurrentes
Planificateur compagnon. Aucun itinéraire Vercel Cron, car un travail exécuté dans une fonction par une tâche planifiée expire
Traces
OpenTelemetry vers votre collecteur, OTEL_EXPORTER_OTLP_ENDPOINT
Limites de cette cible
La couche Web vérifie les éléments suivants au démarrage et refuse de démarrer en nommant tous les problèmes, plutôt que d’échouer plus tard au premier courriel qui ne peut être envoyé :
Pas de SMTP. Vercel bloque le SMTP sortant. Définissez QUIRE_EMAIL_PROVIDER_CONFIG sur un fournisseur HTTP (Postmark, SES, Mailgun, SendGrid ou Resend). QUIRE_SMTP_URL est refusé.
Pas de disque local.QUIRE_STORAGE_DRIVER=local est refusé.
Pas de mémoire partagée entre les invocations.QUIRE_REALTIME_DRIVER=inprocess est refusé. Les événements envoyés par le serveur sont limités par le délai d’expiration de la fonction; le client se reconnecte avec un curseur, aucun événement n’est perdu, mais la présence est indisponible.
Nombre limité de bases de données de locataires rattachées à environ huit, car chacune ajoute un bassin de connexions dans un environnement qui ne peut pas les partager.
Déploiement
Créez un projet Vercel à partir du dépôt, avec Répertoire racine défini sur apps/web. apps/web/vercel.json configure les commandes d’installation et de compilation (NITRO_PRESET=vercel) et évite la mise en cache de /sw.js.
Définissez les variables d’environnement. À partir de docker/.env.example, définissez au minimum : QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (adresse du répartiteur), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, les paramètres de stockage, ainsi que QUIRE_COLLAB_URL et QUIRE_COLLAB_SIGNING_KEY pointant vers le service collab de l’hôte compagnon.
QUIRE_REPORT_DATABASE_URL appartient à la base physique indiquée par DATABASE_URL. Pour chaque autre base enregistrée, ajoutez sa propre URL de connexion quire_report aux environnements Web et de travail, puis enregistrez son nom de variable d’environnement sous la forme env:NAME dans la console de la plateforme. L’analyse échoue par défaut si l’URL de rapport de cette base est absente.
Sur l’hôte compagnon, exécutez docker/compose.yaml sans le service web et avec le même fichier docker/.env :
Les migrations y sont exécutées avant la promotion de chaque déploiement Vercel.
Déployez. Si la configuration est refusée, le journal de la fonction commence par « The web tier did not start on vercel » et répertorie chaque paramètre à modifier.
Mise à niveau
Exécutez d’abord la migration sur l’hôte compagnon, promouvez ensuite le nouveau déploiement Vercel, puis mettez à niveau les processus de travail de l’hôte compagnon, dans l’ordre indiqué dans le guide de mise à niveau. Le retour instantané à une version précédente sur Vercel est un retour du code et reste toujours sûr dans une même version.