Intermédiaire 13 minNo-code

Dify auto-hébergé : créer des apps IA sur votre LLM local

Dify est une plateforme open source qui permet de construire des applications IA — chatbots, workflows, agents, assistants RAG — sans écrire une ligne de code, dans une interface visuelle. Auto-hébergée et branchée sur Ollama, elle vous donne une couche « no-code » complète par-dessus vos modèles locaux : vos prompts, vos documents et vos données ne quittent jamais votre machine. Ce guide couvre le déploiement en Docker Compose, la connexion à un LLM local, et la construction d'un premier assistant RAG fonctionnel.

Par Marie L.·Màj 2026-08-10·Testé sur Windows, macOS, Linux

#Pourquoi Dify plutôt qu'une interface de chat

Open WebUI ou LM Studio suffisent pour discuter avec un modèle. Dify vise un cran au-dessus : construire des applications réutilisables. Vous définissez un prompt système, vous y branchez une base de connaissances, vous exposez le tout via une API ou un widget de chat intégrable, et vous versionnez vos itérations. C'est l'équivalent local et open source d'un OpenAI Assistants ou d'un Coze.

L'intérêt du couple Dify + Ollama est double. D'abord la confidentialité : contrairement à Dify branché sur GPT-4 ou Claude, ici les documents indexés et les conversations restent sur votre infrastructure. Ensuite le coût : aucun jeton facturé, vous pouvez itérer sur des centaines de prompts sans surveiller une note d'API.

Chatbot
Un assistant conversationnel avec prompt système, variables d'entrée et mémoire de conversation.
Agent
Un assistant capable d'appeler des outils (recherche web, calcul, API) en boucle jusqu'à résoudre la tâche.
Workflow
Un enchaînement visuel de nœuds (LLM, condition, extraction, HTTP) pour des traitements déterministes.
Knowledge / RAG
L'indexation de vos documents pour que les apps répondent en s'appuyant dessus, avec citations des sources.
i
no-code, pas zero-config
Dify évite d'écrire du code applicatif, mais reste un outil technique : vous manipulez des prompts, des variables, des paramètres de découpage de documents. Comptez une bonne heure pour prendre l'outil en main au-delà de la simple installation.

#Prérequis

Dify est une application multi-conteneurs (API, worker, frontend, base PostgreSQL, Redis, base vectorielle). Elle se déploie via Docker Compose. Côté modèle, on suppose qu'Ollama tourne déjà et écoute sur son port par défaut.

Docker + Docker Compose
Docker Engine récent avec le plugin Compose (commande docker compose). Sur Windows/macOS, Docker Desktop suffit.
Ollama fonctionnel
Le daemon Ollama installé et joignable sur http://localhost:11434. Testez avec ollama list avant de commencer.
Un modèle de chat
Par exemple qwen2.5:7b ou llama3.1:8b. En Q4_K_M, un 7B tient dans ~5 Go de VRAM (RTX 3060 12 Go largement suffisante).
Un modèle d'embeddings
Indispensable pour le RAG : nomic-embed-text est le choix par défaut, léger et efficace.
Ressources
Prévoyez ~8 Go de RAM pour la stack Dify elle-même, en plus de la VRAM/RAM consommée par vos modèles Ollama.
Terminal — préparer les modèles
# Vérifier qu'Ollama répond
ollama list

# Modèle de chat (choisissez selon votre VRAM)
ollama pull qwen2.5:7b

# Modèle d'embeddings pour le RAG
ollama pull nomic-embed-text

#Installer Dify en Docker Compose

Dify fournit un dépôt officiel avec un dossier docker prêt à l'emploi. On clone, on copie le fichier d'environnement d'exemple, et on lance la stack.

  1. 01
    Cloner le dépôt
    Récupérez la dernière version stable du projet depuis GitHub, puis placez-vous dans le dossier docker qui contient le fichier docker-compose.yaml.
  2. 02
    Créer le fichier .env
    Copiez .env.example en .env. Les valeurs par défaut suffisent pour un usage local ; c'est là que vous ajusterez les ports ou les secrets plus tard.
  3. 03
    Démarrer la stack
    Lancez docker compose up -d. Le premier démarrage télécharge les images et initialise la base PostgreSQL ; comptez quelques minutes.
  4. 04
    Créer le compte admin
    Ouvrez http://localhost/install dans le navigateur et renseignez l'e-mail et le mot de passe du premier administrateur. C'est ce compte qui gérera l'espace de travail.
Terminal — déploiement
git clone https://github.com/langgenius/dify.git
cd dify/docker

cp .env.example .env

docker compose up -d

# Vérifier que les conteneurs tournent
docker compose ps
L'interface est sur le port 80
Par défaut, le frontend Dify est exposé sur http://localhost (port 80), pas sur un port applicatif exotique. Si le port 80 est déjà occupé, modifiez EXPOSE_NGINX_PORT dans le fichier .env avant de relancer docker compose up -d.

#Brancher Ollama comme fournisseur de modèles

Dify ne connaît vos modèles locaux que si vous déclarez Ollama comme fournisseur. Cela se fait dans les réglages du modèle, pas dans un fichier de config. Le point de vigilance principal est l'URL : depuis un conteneur Docker, localhost désigne le conteneur lui-même, pas votre machine hôte où tourne Ollama.

  1. 01
    Ouvrir les réglages fournisseurs
    Cliquez sur votre avatar en haut à droite → Paramètres → Fournisseurs de modèles. Cherchez Ollama dans la liste et sélectionnez-le.
  2. 02
    Renseigner l'URL du serveur
    Dans le champ Base URL, saisissez l'adresse joignable depuis le conteneur (voir le callout ci-dessous). Le nom du modèle doit correspondre exactement à ce que renvoie ollama list, par exemple qwen2.5:7b.
  3. 03
    Ajouter le modèle de chat
    Type de modèle : LLM. Renseignez la taille de contexte (par ex. 8192 ou plus selon le modèle) et validez. Dify teste la connexion à l'enregistrement.
  4. 04
    Ajouter le modèle d'embeddings
    Répétez l'opération avec nomic-embed-text en choisissant le type Text Embedding. Sans lui, vous ne pourrez pas construire de base de connaissances.
  5. 05
    Définir les modèles par défaut
    Toujours dans les réglages, fixez qwen2.5:7b comme modèle système par défaut et nomic-embed-text comme modèle d'embeddings par défaut.
!
localhost ne marche pas depuis le conteneur
Ollama tourne sur l'hôte, mais Dify tourne dans Docker. Utilisez http://host.docker.internal:11434 sous Docker Desktop (Windows/macOS). Sous Linux, utilisez l'IP de la passerelle Docker (souvent http://172.17.0.1:11434) ou lancez Ollama avec OLLAMA_HOST=0.0.0.0 puis pointez sur l'IP de la machine hôte sur le réseau local.
Terminal — exposer Ollama sur le réseau (Linux)
# Rendre Ollama joignable au-delà de localhost
# (à ajouter dans le service systemd ou l'environnement)
OLLAMA_HOST=0.0.0.0 ollama serve

# Vérifier depuis l'hôte que l'API répond
curl http://localhost:11434/api/tags

#Construire un premier assistant RAG sans coder

Le RAG (Retrieval-Augmented Generation) permet au modèle de répondre à partir de vos documents plutôt que de ses seules connaissances d'entraînement. Dans Dify, cela passe par une base de connaissances (Knowledge) que l'on rattache ensuite à une application.

  1. 01
    Créer une base de connaissances
    Onglet Knowledge → Créer. Importez vos fichiers (PDF, Markdown, TXT, DOCX). Dify les découpe automatiquement en chunks.
  2. 02
    Régler le découpage et l'indexation
    Choisissez le mode d'indexation « haute qualité » qui utilise votre modèle d'embeddings nomic-embed-text. Ajustez la taille des chunks si vos documents sont très structurés (tableaux, code).
  3. 03
    Créer l'application de chat
    Onglet Studio → Créer une app → Chatbot. Donnez-lui un nom et une description.
  4. 04
    Rédiger le prompt système
    Dans l'éditeur, décrivez le rôle de l'assistant : « Tu réponds uniquement à partir des documents fournis. Si l'information n'y figure pas, dis-le. » C'est ce qui limite les hallucinations.
  5. 05
    Rattacher la base de connaissances
    Dans le panneau Contexte de l'app, ajoutez la base créée à l'étape 1. Activez la citation des sources pour que les réponses affichent les extraits utilisés.
  6. 06
    Tester puis publier
    Utilisez le panneau de débogage à droite pour poser des questions. Quand le comportement vous convient, cliquez sur Publier pour obtenir une URL de chat et une clé d'API.
Le modèle d'embeddings compte autant que le modèle de chat
La qualité d'un RAG dépend d'abord de la pertinence des passages récupérés. Un bon modèle d'embeddings (nomic-embed-text, ou mxbai-embed-large si vous avez la marge) améliore nettement les réponses, même avec un modèle de chat modeste. N'investissez pas tout dans un gros LLM en négligeant les embeddings.

#Workflows et agents : jusqu'où va le no-code

Au-delà du simple chatbot, Dify propose deux modes plus avancés. Le mode Workflow expose un canevas visuel où l'on relie des nœuds : entrée utilisateur, appel LLM, condition (if/else), extraction de paramètres, requête HTTP, itération sur une liste. On construit ainsi des pipelines déterministes — par exemple : recevoir un e-mail, le classer, extraire les entités, puis rédiger une réponse type.

Le mode Agent, lui, laisse le modèle décider quels outils appeler et dans quel ordre, en boucle, jusqu'à aboutir. C'est plus puissant mais plus fragile : la qualité dépend fortement de la capacité du modèle à raisonner et à respecter le format d'appel d'outils. Les petits modèles locaux (7B) s'en sortent mal ; visez au minimum un modèle qui gère bien le tool-use, type Qwen2.5 14B+ si votre VRAM le permet.

Ce que le no-code fait bien
Prototyper vite un chatbot RAG, enchaîner quelques étapes LLM, exposer une API sans backend à écrire, itérer sur des prompts en équipe.
Là où ça coince en local
Les agents multi-outils exigeants demandent un modèle capable de tool-use fiable, donc de la VRAM. Un 7B suffit pour du RAG, rarement pour un agent complexe.
Quand passer au code
Logique métier fine, intégrations sur mesure, contrôle total du pipeline de récupération : une bibliothèque comme LangChain reprend la main là où le canevas visuel montre ses limites.

#Dépannage

« Connection refused » à l'ajout du modèle
Dify n'atteint pas Ollama. Le problème est presque toujours l'URL : remplacez localhost par host.docker.internal (Docker Desktop) ou l'IP de la passerelle Docker (Linux), et vérifiez qu'Ollama écoute bien sur 0.0.0.0.
Le modèle n'apparaît pas
Le nom renseigné ne correspond pas à ollama list. Copiez le nom exact, tag inclus (qwen2.5:7b et non qwen2.5).
Erreur lors de l'indexation des documents
Le modèle d'embeddings n'est pas configuré ou pas téléchargé. Faites ollama pull nomic-embed-text et sélectionnez-le comme modèle d'embeddings par défaut.
Réponses très lentes
Le modèle de chat déborde probablement sur le CPU. Passez à une quantification plus légère (Q4_K_M) ou à un modèle plus petit, et vérifiez que le GPU est bien sollicité côté Ollama.
Le port 80 est déjà pris
Un autre service occupe le port. Changez EXPOSE_NGINX_PORT dans le .env (par ex. 8080) puis relancez docker compose up -d.
Réponses hors sujet malgré le RAG
Vérifiez que la base de connaissances est bien rattachée à l'app et que le prompt système contraint le modèle à s'appuyer sur le contexte. Ajustez aussi la taille des chunks.

#Pour aller plus loin

Dify ne vaut que par la solidité du modèle et de l'infrastructure qui le portent. Ces guides consolident les briques sur lesquelles il s'appuie.

Installer Ollama
Le daemon qui sert votre modèle de chat et vos embeddings sur le port 11434 — la fondation de toute la stack Dify locale.
RAG en local avec ChromaDB et Ollama
Pour comprendre ce que Dify automatise sous le capot et reprendre la main en Python quand le no-code montre ses limites.
n8n + Ollama : automatiser en local
Une autre approche no-code, orientée automatisation de tâches, complémentaire des workflows Dify.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.