Héberger Dify sur un VPS
Dify est une plateforme d'applications LLM auto-hébergée qui détient vos clés API et vos données. Installez-la avec Docker Compose sur un VPS et sécurisez-la.
Ce qu'est Dify, et ce que vous vous engagez à faire tourner
Dify est une plateforme auto-hébergeable pour construire des applications au-dessus des grands modèles de langage (LLM). Vous obtenez une interface web pour concevoir des applications de chat, des agents et des pipelines de récupération, une API pour les appeler depuis votre propre code, et un seul endroit pour gérer les prompts, les jeux de données et les clés de modèle. C'est le genre d'outil qu'une petite équipe met en place pour que tout le monde construise sur une même base privée partagée, plutôt que d'éparpiller les clés API dans des scripts.
Le faire tourner soi-même signifie faire tourner plusieurs composants. Dify est livré sous la forme d'un ensemble de conteneurs Docker : un serveur API, un worker en arrière-plan, une interface web, une base de données Postgres, un cache Redis et une base de données vectorielle, le tout relié avec Docker Compose. C'est plus qu'un simple binaire, mais Compose gère le câblage, et un VPS disposant de quelques gigaoctets de RAM le fait tourner confortablement.
Comme Dify détient vos clés API de modèle et, souvent, des documents privés que vous avez chargés pour la récupération, traitez la machine sur laquelle il tourne comme sensible dès la première minute. Ce guide l'installe, puis le sécurise comme vous sécuriseriez tout service qui détient des secrets.
Prérequis
Vous avez besoin d'un VPS sous Ubuntu 24.04 avec Docker et le plugin Docker Compose installés, ainsi que d'un utilisateur disposant de sudo ou membre du groupe docker. Si Docker est nouveau pour vous, les bases de Docker Compose sur un VPS couvrent l'installation et les commandes de base que ce guide suppose acquises. Un nom de domaine pointant vers le serveur vaut la peine, car vous voudrez du TLS devant Dify plutôt qu'une simple adresse IP nue.
Étape 1 : récupérer Dify et ses fichiers Compose
Dify conserve sa configuration Docker dans le dépôt principal. Clonez-le et placez-vous dans le répertoire docker :
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .envLe fichier .env constitue toute la configuration. Lisez-le avant de démarrer quoi que ce soit. Les valeurs qui comptent en premier sont celles qui définissent les mots de passe et les secrets : SECRET_KEY, le mot de passe Postgres et le mot de passe Redis. Le fichier d'exemple est livré avec des valeurs génériques, et les laisser telles quelles est la manière la plus courante pour un Dify auto-hébergé de finir compromis. Générez une vraie clé secrète :
openssl rand -base64 42Collez-la dans SECRET_KEY, et définissez une valeur forte et unique pour chaque champ de mot de passe du fichier.
Étape 2 : le démarrer
Lancez la pile :
docker compose up -dLe premier lancement télécharge plusieurs images et initialise la base de données, alors laissez-lui une minute. Vérifiez que les conteneurs sont sains :
docker compose psChaque service doit afficher running. Dify sert son interface web via un conteneur nginx intégré sur le port 80 par défaut. À votre première visite sur http://YOUR_SERVER/install, vous créez le compte administrateur. Faites-le immédiatement, avant que quoi que ce soit d'autre puisse atteindre le port, car tant que ce compte n'existe pas, quiconque charge la page peut le revendiquer et prendre possession de votre instance.
Étape 3 : ne l'exposez pas brut. Mettez du TLS et un pare-feu devant
C'est ici que la plupart des installations rapides s'arrêtent et que la plupart des incidents commencent. Le nginx propre à Dify écoute sur le port 80, en clair, sur toutes les interfaces. Vous ne voulez pas que votre connexion d'administration et vos clés de modèle transitent en HTTP simple, et vous ne voulez pas que les services internes soient joignables depuis l'extérieur.
Verrouillez la machine avec un pare-feu en refus par défaut qui n'autorise que le trafic SSH et web :
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enableRappelez-vous qu'un pare-feu qui ne couvre que l'IPv4 peut laisser les mêmes ports ouverts en IPv6, la faille de pare-feu IPv6 qui piège tant d'auto-hébergeurs. Confirmez que les deux piles sont filtrées.
Pour le TLS, le chemin le plus propre est de lier le port web de Dify à la boucle locale et de faire tourner un proxy inverse avec un certificat Let's Encrypt devant, de sorte que la seule chose sur l'internet public soit le proxy qui parle HTTPS. Le fichier .env de Dify vous permet de changer le port exposé ; réglez-le pour qu'il écoute sur 127.0.0.1 et pointez votre proxy dessus. Les idées de durcissement d'agent dans faire tourner un agent IA en toute sécurité sur un VPS s'appliquent ici aussi : gardez les composants sur la boucle locale, n'exposez que ce qui doit être public, et laissez une seule porte d'entrée durcie parler TLS.
Étape 4 : le maintenir à jour
Dify évolue vite, et les mises à jour incluent des correctifs de sécurité. Mettre à jour, c'est un pull et un redémarrage depuis le répertoire docker :
git pull
docker compose pull
docker compose up -dLisez les notes de version avant un changement de version majeure, car Dify modifie parfois le schéma du .env entre les versions, et une nouvelle variable que vous n'avez pas définie peut empêcher un conteneur de démarrer.
Étape 5 : sauvegardez ce que vous ne pouvez pas régénérer
Deux choses sur une machine Dify sont irremplaçables : la base de données Postgres, qui contient vos applications, vos utilisateurs et vos réglages, et le volume qui stocke les documents téléversés et l'index vectoriel. Les deux vivent sous des volumes Docker dans le répertoire docker. Prenez-en des instantanés selon un calendrier régulier, et copiez ces instantanés hors du serveur. Une clé API de modèle peut être réémise ; l'application que vous avez passé une semaine à construire, non.
Pour un agent plus autonome, capable d'exécuter du code, voyez l'auto-hébergement d'Agent Zero, et construire votre propre agent IA sur un VPS couvre les fondations sous-jacentes à tous.
FAQ
Quelle configuration matérielle faut-il pour auto-héberger Dify ?
Dify tourne comme une pile Docker Compose d'environ une demi-douzaine de conteneurs, alors prévoyez un VPS avec au moins 2 Go de RAM libres, idéalement 4 Go, plus quelques cœurs de CPU et assez de disque pour vos documents téléversés et l'index vectoriel. La pression mémoire vient de la base de données et du magasin vectoriel, pas de Dify lui-même.
Est-il sûr d'exposer Dify directement sur le port 80 ?
Non. Le serveur web intégré de Dify écoute en HTTP simple, et il place devant lui votre connexion d'administration et vos clés API de modèle. Mettez un proxy inverse avec un certificat Let's Encrypt devant, liez le port propre à Dify à la boucle locale, et laissez seul le proxy HTTPS faire face à l'internet. Associez cela à un pare-feu en refus par défaut qui couvre à la fois l'IPv4 et l'IPv6.
Comment mettre à jour un Dify auto-hébergé ?
Depuis le répertoire docker, exécutez git pull, puis docker compose pull et docker compose up -d pour récupérer les nouvelles images et redémarrer. Lisez d'abord les notes de version, car Dify ajoute parfois de nouvelles variables .env entre les versions, et une variable manquante peut empêcher un conteneur de démarrer.
Quelle est la première chose à faire après avoir installé Dify ?
Rendez-vous sur /install et créez le compte administrateur immédiatement. Tant que ce compte n'existe pas, quiconque peut atteindre la page peut le revendiquer. Mettez-le en place dès que les conteneurs sont sains, et avant d'ouvrir le pare-feu au monde entier.