Guide de déploiement

Héberger Langfuse sur un VPS : observabilité LLM sans SaaS

Déployer sur un VPS Cloud →

Tutoriel

Héberger Langfuse sur un VPS : observabilité LLM sans SaaS

Intelligence Artificielle7 min de lecture7 étapes

Toute application propulsée par un LLM finit par soulever une question à laquelle ses développeurs ne peuvent pas répondre à partir des seuls logs : pourquoi cette réponse s’est-elle dégradée, quelle version de prompt a été la plus performante, et où part l’argent ? Langfuse (MIT, ~30 k étoiles sur GitHub, v3.212.0) est la réponse open source : une plateforme d’observabilité full-stack pour applications LLM, que vous déployez sur votre propre VPS et connectez à n’importe quel fournisseur de modèles en quelques minutes.

Sommaire· Pourquoi les applications LLM nécessitent une observabilité dédiée1/7
  1. 01Pourquoi les applications LLM nécessitent une observabilité dédiée
  2. 02Ce que Langfuse vous offre d’emblée
  3. 03Sur quoi tourne Langfuse (et pourquoi il lui faut 4 Go de RAM)
  4. 04Déployer Langfuse sur votre VPS en six étapes
  5. 05Associez-le à LiteLLM pour une visibilité complète sur les coûts de l’IA
  6. 06Coûts LLM affichés à $0.00 dans la vue Tracing v4 — ce qui se passe et comment contourner
  7. 07Langfuse vs Langsmith vs Helicone

Pourquoi les applications LLM nécessitent une observabilité dédiée

Les outils d’APM traditionnels (Datadog, New Relic) capturent la latence HTTP et les taux d’erreur, mais ils sont aveugles à ce qui se passe à l’intérieur d’un appel LLM. Une réponse qui arrive en 800 ms peut malgré tout être factuellement fausse, vague au point d’être inutile, ou trois fois plus coûteuse que celle de la veille parce qu’une régression de prompt est passée entre les mailles de la revue de code. Langfuse résout ce problème en traitant chaque interaction LLM comme une trace structurée : il enregistre le prompt complet (y compris le message système et l’historique de conversation), la complétion, le modèle utilisé, le décompte de tokens, la ventilation de la latence par span, ainsi que tous les scores d’évaluation que votre équipe y attache. Vous pouvez ensuite filtrer, comparer et reproduire n’importe quelle trace, individuellement ou de façon agrégée.

Ce que Langfuse vous offre d’emblée

  • Traçage LLM full-stack : prompt, complétion, latence, coût et nombre de tokens — y compris les spans imbriqués pour les chaînes d’agents (LangChain, LlamaIndex, Dify).
  • Hub de gestion des prompts : versionnez vos prompts, préparez des variantes, faites des tests A/B en production et promouvez la gagnante sans déploiement de code.
  • Framework d’évaluation : lancez du LLM-as-a-judge, des files d’annotation humaine ou des fonctions de scoring personnalisées sur n’importe quelle trace ou dataset.
  • Analytique des coûts : suivez la consommation de tokens par modèle, endpoint, utilisateur et session — changez de fournisseur en vous appuyant sur des données concrètes, pas sur des suppositions.
  • Gestion des datasets : capturez les traces de production comme jeux de tests de référence pour l’évaluation hors ligne et la détection de régressions.
  • SDK natif pour Python et TypeScript, plus une intégration automatique avec LiteLLM, LangChain, LlamaIndex, Dify, Haystack et VercelAI.

Sur quoi tourne Langfuse (et pourquoi il lui faut 4 Go de RAM)

Langfuse v3 se présente comme une stack Docker Compose à six services : langfuse (frontend Next.js + API), langfuse-worker (tâches d’arrière-plan et évaluations), postgres (état de l’application), clickhouse (analytique des traces — stockage en colonnes optimisé pour les séries temporelles à forte cardinalité), redis (file d’attente et cache) et minio (stockage d’objets compatible S3 pour les pièces jointes média). ClickHouse justifie le minimum de 4 Go : son compilateur JIT et son moteur d’exécution vectorielle ont besoin de marge. Sur un VPS peu sollicité, la stack complète tourne au repos autour de 1,5–2 Go ; sous une charge de production modérée, prévoyez 4 Go, et 8 Go pour un traçage soutenu à haut débit. Les six services démarrent d’un seul docker compose up -d et sont gérés par AWX dans le flux en un clic de ServOrbit.

Déployer Langfuse sur votre VPS en six étapes

  1. Commandez un VPS Power (8 GB de RAM)

    Langfuse réclame au moins 4 Go de RAM : au catalogue, le premier plan qui les dépasse est le VPS Power (4 vCPU, 8 GB), à installer sous Ubuntu 24.04 — de quoi absorber aussi un trafic de production permanent. Choisissez un domaine ou sous-domaine que vous contrôlez — les cookies de session NextAuth de Langfuse exigent un véritable domaine en HTTPS.

  2. Installation en un clic depuis le Marketplace

    Ouvrez votre panneau de contrôle ServOrbit, allez dans Marketplace → Intelligence Artificielle → Langfuse, puis cliquez sur Déployer. Saisissez votre domaine lorsque cela vous est demandé. Docker Compose télécharge les six images et les démarre ; l’interface web est prête sur le port 3000 en 60 à 90 secondes (l’initialisation de ClickHouse au premier démarrage est la plus longue).

  3. Ouvrez l’interface web et créez votre premier projet

    Rendez-vous sur https://votre-domaine.com. Langfuse affiche l’écran d’inscription au premier démarrage. Créez votre compte administrateur, puis allez dans Paramètres → Projets → Créer un projet. Copiez la Clé publique et la Clé secrète depuis les paramètres du projet — vous en aurez besoin dans votre application.

  4. Instrumentez votre application Python ou TypeScript

    En Python : pip install langfuse, définissez LANGFUSE_HOST=https://votre-domaine.com, LANGFUSE_PUBLIC_KEY et LANGFUSE_SECRET_KEY, puis décorez vos appels LLM avec @observe() ou utilisez langfuse.trace(). En TypeScript : npm install langfuse, initialisez le client avec votre host et vos clés. Les traces apparaissent dans le tableau de bord quelques secondes après le premier appel.

  5. Activez le traçage automatique si vous utilisez LiteLLM

    Si LiteLLM fait déjà partie de votre stack (ce qui est probable si vous utilisez la stack IA de ServOrbit), ajoutez success_callback = ["langfuse"] à litellm_config.yaml et définissez les trois variables d’environnement Langfuse. Chaque appel LLM relayé par le proxy — sur l’ensemble des modèles en aval — est tracé automatiquement, avec les données de coût et de tokens jointes.

  6. Lancez votre première évaluation

    Allez dans Traces, filtrez un échantillon représentatif, cliquez sur « Ajouter au dataset ». Ouvrez Datasets → votre dataset → Lancer l’évaluation, choisissez le LLM-as-a-judge avec un modèle de prompt (« Évaluez la pertinence de cette réponse sur une échelle de 1 à 5 »), puis validez. Les scores apparaissent sur chaque trace de l’ensemble et alimentent le tableau de bord analytique agrégé.

  7. Se connecter la première fois

    L'URL ouvre l'écran Langfuse avec un lien « Sign up » : créez votre compte, puis votre organisation et votre premier projet dans l'assistant.

Associez-le à LiteLLM pour une visibilité complète sur les coûts de l’IA

La stack IA de ServOrbit inclut déjà LiteLLM comme passerelle compatible OpenAI. Connectez Langfuse à LiteLLM avec trois variables d’environnement et vous obtenez une vue d’ensemble complète : LiteLLM applique les limites de débit et route entre les fournisseurs ; Langfuse enregistre chaque trace avec le prompt complet, la complétion, le modèle, les tokens et le coût. Ensemble, ils vous offrent une couche d’opérations IA privée et auditable — pas d’intermédiaire SaaS, aucune donnée qui quitte votre infrastructure.

Coûts LLM affichés à $0.00 dans la vue Tracing v4 — ce qui se passe et comment contourner

Un problème actif affecte la vue Tracing v4 de Langfuse (signalé dans l’issue #16077, 14 commentaires en août 2026) : la colonne Cost ($) affiche systématiquement $0.00 pour toutes les traces.

La cause est structurelle. La vue v4 lit le coût porté par l’observation racine de chaque trace, qui est de type SPAN — un span n’a pas de coût propre, il ne fait qu’encapsuler des générations enfants. Le coût réel est distribué sur les observations de type GENERATION enfantes, mais la vue ne les agrège pas : elle lit la racine, trouve zéro, et affiche zéro.

Vos données sont intactes. Le coût est bien enregistré sur chaque génération ; seul l’affichage de la vue principale est faux. Trois contournements fonctionnent en attendant le correctif officiel :

1. Onglet Analytics / Metrics — la vue agrégée calcule les coûts sur l’ensemble des générations, pas sur la racine. C’est la source fiable pour suivre votre consommation quotidienne ou par modèle.

2. Filtrer par type GENERATION dans Traces — ajoutez le filtre observation_type = GENERATION dans la vue Traces. Vous ne voyez plus les traces parentes, mais chaque ligne affiche son coût réel.

3. Ouvrir le détail d’une trace — le panneau latéral affiche la ventilation complète par span et génération, avec les coûts corrects. Utile pour diagnostiquer une trace précise.

Si vous observez ce comportement sur votre instance, vérifiez que vous êtes bien sur Langfuse v3.x avec Tracing v4 activé. L’issue est ouverte et suivie par l’équipe Langfuse.

Langfuse vs Langsmith vs Helicone

Langsmith (le produit hébergé de LangChain) et Helicone sont les principales alternatives SaaS. Les deux sont excellents — et tous deux vous imposent de faire transiter vos traces par leurs serveurs. Pour les équipes qui manipulent des prompts sensibles (juridiques, financiers, médicaux), ou pour les environnements de conformité qui interdisent toute sortie de données vers un tiers, l’auto-hébergement n’est pas une option. Langfuse vous offre le même ensemble de fonctionnalités (traçage, évaluations, gestion des prompts, analytique des coûts) sur une infrastructure que vous maîtrisez. La licence MIT signifie aussi que vous pouvez lire, modifier et auditer chaque ligne du code par lequel transitent vos traces.

Déployez Langfuse sur votre VPS

Obtenez une observabilité LLM complète en un clic — tracez chaque requête IA, gérez vos prompts et suivez vos coûts, sur une infrastructure que vous maîtrisez.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet