> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Déployer Mastra sur Vercel Utilisez `@mastra/deployer-vercel` pour déployer votre serveur Mastra sous forme de fonctions serverless sur Vercel. Le Deployer regroupe votre code et génère un répertoire `.vercel/output` conforme à la [Build Output API](https://vercel.com/docs/build-output-api/v3) de Vercel, prêt à être déployé sans configuration supplémentaire. > **Info:** Ce guide traite du déploiement du [serveur Mastra](https://mastra.zisheng.pro/fr/docs/server/mastra-server). Si vous utilisez un [adaptateur de serveur](https://mastra.zisheng.pro/fr/docs/server/server-adapters) ou un [framework web](https://mastra.zisheng.pro/fr/docs/deployment/web-framework), procédez au déploiement comme vous le feriez habituellement pour ce framework. ## Avant de commencer Vous aurez besoin d’une [application Mastra](https://mastra.zisheng.pro/fr/guides/getting-started/quickstart) et d’un compte [Vercel](https://vercel.com/). > **Attention:** Les fonctions Vercel utilisent un système de fichiers éphémère. Tout stockage configuré, y compris celui de l’observabilité, doit donc être hébergé en externe. Si vous utilisez [LibSQLStore](https://mastra.zisheng.pro/fr/reference/storage/libsql) avec une URL de fichier, adoptez une base de données hébergée à distance. ## Installation Ajoutez le package `@mastra/deployer-vercel` à votre projet : **npm**: ```bash npm install @mastra/deployer-vercel@latest ``` **pnpm**: ```bash pnpm add @mastra/deployer-vercel@latest ``` **Yarn**: ```bash yarn add @mastra/deployer-vercel@latest ``` **Bun**: ```bash bun add @mastra/deployer-vercel@latest ``` Importez [`VercelDeployer`](https://mastra.zisheng.pro/fr/reference/deployer/vercel) et définissez-le comme Deployer dans votre configuration Mastra : ```typescript import { Mastra } from '@mastra/core' import { VercelDeployer } from '@mastra/deployer-vercel' export const mastra = new Mastra({ deployer: new VercelDeployer(), }) ``` ## Déployer 1. Envoyez votre projet vers un Provider Git distant, par exemple GitHub, puis connectez votre dépôt à Vercel. Par défaut, Vercel exécute `npm run build`, qui déclenche `mastra build`. Si vous n’avez pas de script de build, ajoutez `"build": "mastra build"` à votre `package.json`. > **Remarque:** Pensez à définir les variables d’environnement nécessaires à l’exécution de votre application, par exemple la clé d’API de votre [Provider de modèle](https://mastra.zisheng.pro/fr/models/providers). 2. Lorsque vous êtes prêt, cliquez sur **Deploy** et attendez la fin du premier déploiement. 3. Vérifiez votre déploiement à l’adresse `https://.vercel.app/api/agents`, qui doit renvoyer une liste JSON de vos Agents. Comme le serveur Mastra préfixe chaque endpoint avec `/api`, vous devez l’ajouter à vos URL lorsque vous effectuez des requêtes. 4. Vous pouvez maintenant appeler vos endpoints Mastra via HTTP. > **Attention:** Configurez l’[authentification](https://mastra.zisheng.pro/fr/docs/server/auth) avant d’exposer publiquement vos endpoints. ## Studio Vous pouvez déployer [Studio](https://mastra.zisheng.pro/fr/docs/studio/overview) avec votre API en activant l’option `studio`. Studio est déployé sous forme de ressources statiques servies depuis l’Edge CDN de Vercel et ne consomme donc aucune invocation de fonction. ```typescript import { Mastra } from '@mastra/core' import { VercelDeployer } from '@mastra/deployer-vercel' export const mastra = new Mastra({ deployer: new VercelDeployer({ studio: true, }), }) ``` Après le déploiement, Studio est disponible à l’URL racine (`https://.vercel.app/`) et l’API reste accessible sous `/api/*`. Studio se connecte automatiquement à l’API de la même origine ; aucune variable d’environnement supplémentaire n’est donc nécessaire. Studio sert ses propres pages depuis le CDN, tandis que tous les autres chemins sont dirigés vers votre serveur. Les routes ajoutées avec [`registerApiRoute()`](https://mastra.zisheng.pro/fr/docs/server/custom-api-routes) restent ainsi accessibles à leurs propres chemins. Évitez d’attribuer à une route personnalisée un chemin déjà utilisé par Studio, comme `/agents` ou `/workflows`, car Studio les réserve en priorité. > **Attention:** Une fois Studio connecté à votre serveur Mastra, il dispose d’un accès complet à vos Agents, Workflows et Tools. Veillez à le sécuriser correctement en production, par exemple derrière une authentification ou un VPN, afin d’empêcher tout accès non autorisé. ## Remplacements facultatifs Le Deployer Vercel prend en charge des options de configuration écrites dans la configuration de fonction de la Vercel Output API. Consultez la [référence de `VercelDeployer`](https://mastra.zisheng.pro/fr/reference/deployer/vercel) pour découvrir les options disponibles, telles que `maxDuration`, `memory` et `regions`. ## Observabilité Les fonctions serverless peuvent s’arrêter immédiatement après avoir renvoyé une réponse. Tout traitement asynchrone en attente, comme l’envoi de télémétrie, peut être interrompu avant son terme. Attendre `flush()` garantit l’envoi de toutes les traces avant l’arrêt de la fonction. ```typescript import type { VercelRequest, VercelResponse } from '@vercel/node' import { mastra } from '../src/mastra' export default async function handler(req: VercelRequest, res: VercelResponse) { const { message } = req.body const agent = mastra.getAgent('myAgent') const result = await agent.generate([{ role: 'user', content: message }]) await mastra.observability.flush() return res.json(result) } ``` > **Attention:** Le Deployer Vercel n’inclut aucun appel à `flush`. Si vous en avez besoin, vous devez encapsuler vous-même le Handler afin d’ajouter cette logique avant de renvoyer la réponse. Vous pouvez également déployer l’application sur un serveur de longue durée, tel qu’une [machine virtuelle](https://mastra.zisheng.pro/fr/guides/deployment/digital-ocean), où ce problème ne se pose pas. ## Liens associés - [Référence de VercelDeployer](https://mastra.zisheng.pro/fr/reference/deployer/vercel) - [Présentation du déploiement](https://mastra.zisheng.pro/fr/docs/deployment/overview) - [Adaptateurs de serveur](https://mastra.zisheng.pro/fr/docs/server/server-adapters) - [Intégration aux frameworks web](https://mastra.zisheng.pro/fr/docs/deployment/web-framework)