Déployer Dify sur Hetzner avec Docker : Le Guide Complet
Cet article contient des liens affiliés vers certains outils mentionnés. Si vous souscrivez via ces liens, SEOmnix peut percevoir une commission, sans coût additionnel pour vous.
Le déploiement d'applications modernes comme Dify, une plateforme open-source pour la création d'applications LLM, nécessite une infrastructure robuste et flexible. Les serveurs privés virtuels (VPS) de Hetzner, combinés à la puissance de Docker et Docker Compose, offrent une solution idéale pour héberger Dify de manière performante et sécurisée. Ce guide détaillé vous accompagnera à travers chaque étape, des prérequis sur Hetzner à la configuration finale avec HTTPS, pour une mise en production réussie.
1. Prérequis Essentiels sur Hetzner Cloud
Pour garantir une installation fluide et performante de Dify, il est crucial de bien choisir et configurer votre VPS Hetzner dès le départ. Les recommandations suivantes sont basées sur les bonnes pratiques de déploiement d'applications gourmandes en ressources comme Dify en 2026 :
- Image Système Recommandée : Optez pour Ubuntu 24.04 LTS. Cette version Long Term Support garantit stabilité et mises à jour de sécurité sur le long terme, un atout majeur pour une infrastructure de production.
- Type de Serveur Conseillé : Un modèle CX32 (8 vCPU, 16 Go de RAM, SSD NVMe) est généralement suffisant. Il offre la puissance de calcul et la mémoire nécessaires pour gérer un usage avancé de Dify, incluant plusieurs applications et des fonctionnalités de Retrieval Augmented Generation (RAG) qui peuvent être gourmandes en ressources.
- Localisation du Serveur :
- Pour la conformité au RGPD et une faible latence en Europe, choisissez des datacenters comme Nuremberg ou Helsinki.
- Si votre audience principale est aux États-Unis, Ashburn offrira une latence optimisée.
- Accès SSH Sécurisé : Lors de la création de votre serveur dans la console Hetzner, ajoutez impérativement votre clé publique SSH. Cela permet une connexion sécurisée et sans mot de passe, renforçant la sécurité de votre infrastructure.
- Configuration du Pare-feu Hetzner (Cloud Firewall) : Pour un fonctionnement minimal, assurez-vous d'ouvrir les ports suivants :
- 22 (SSH) : Pour l'administration du serveur.
- 80 (HTTP) : Pour les requêtes web non sécurisées (redirigées ensuite vers HTTPS).
- 443 (HTTPS) : Pour l'accès sécurisé à Dify.
Ces configurations posent les bases d'un environnement stable et sécurisé pour Dify.
2. Préparation du Serveur VPS Hetzner
Une fois votre VPS Hetzner provisionné, les premières étapes consistent à établir la connexion et à mettre à jour le système.
Connexion SSH : Dès que le serveur est prêt, connectez-vous via SSH en utilisant l'adresse IP de votre serveur et votre clé SSH :
ssh root@VOTRE_IP_SERVEURMise à jour Système : Il est essentiel de mettre à jour tous les paquets du système pour bénéficier des dernières corrections de sécurité et améliorations de performance :
sudo apt update && sudo apt upgrade -y(Optionnel mais Recommandé) Création d'un utilisateur non-root : Pour des raisons de sécurité, il est préférable de ne pas opérer en tant que
rooten permanence. Créez un nouvel utilisateur et donnez-lui les privilègessudoou ajoutez-le au groupedockerune fois Docker installé. Par exemple :sudo adduser monutilisateur sudo usermod -aG sudo monutilisateur # Puis déconnectez-vous et reconnectez-vous avec 'monutilisateur'
3. Installation de Docker et Docker Compose
Dify s'appuie fortement sur Docker et Docker Compose pour orchestrer ses différents services (API, console, base de données, etc.). Vous avez deux méthodes principales pour les installer.
Méthode 1 : Script officiel Docker (rapide)
Cette méthode est la plus rapide et installe la dernière version stable de Docker Engine et du plugin Docker Compose v2.
curl -fsSL https://get.docker.com | sh
docker --version
docker compose version
Méthode 2 : Dépôt officiel Docker (plus contrôlée)
Cette approche est recommandée pour un contrôle plus précis des versions et une intégration plus propre avec le système de gestion de paquets d'Ubuntu.
basename=$(lsb_release -cs)
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \n "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \n $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
docker --version && docker compose version
Dans les deux cas, assurez-vous que la commande docker compose version fonctionne, car Dify utilise le plugin Docker Compose v2, qui s'appelle docker compose (sans tiret) et non l'ancien binaire docker-compose.
4. Récupération du Code Source de Dify
Le code de Dify contient les fichiers docker-compose.yaml nécessaires au déploiement. Il est recommandé de récupérer la dernière version stable.
Option A : Cloner la dernière release stable (recommandé)
Cette méthode garantit que vous déployez une version testée et stable de Dify.
sudo apt install git jq -y # Installer git et jq si non présents
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
cd dify/docker
Option B : Cloner directement le dépôt principal
Cette option clone la branche main, qui peut parfois inclure des changements en cours de développement.
sudo apt install git -y # Installer git si non présent
git clone https://github.com/langgenius/dify.git /opt/dify
cd /opt/dify/docker
Pour ce guide, nous considérerons que vous êtes dans le dossier dify/docker après avoir cloné le dépôt.
5. Configuration de l'Environnement Dify (.env)
Avant de lancer Dify, vous devez configurer les variables d'environnement essentielles. Copiez le fichier d'exemple et éditez-le :
cp .env.example .env
nano .env
Voici les variables critiques à ajuster pour un déploiement en production sur Hetzner :
SECRET_KEY: Générez une clé secrète longue et aléatoire. Elle est cruciale pour la sécurité de votre application (sessions, chiffrement, etc.). Utilisez la commande suivante pour en générer une :openssl rand -base64 42Copiez la sortie et collez-la comme valeur de
SECRET_KEY.CONSOLE_WEB_URL: L'URL complète via laquelle vous accéderez à la console d'administration de Dify. Par exemple :https://console.votredomaine.fr.APP_WEB_URL: L'URL publique pour les applications créées avec Dify. Cela peut être un sous-domaine différent (ex:https://apps.votredomaine.fr) ou le même domaine avec un sous-chemin.DB_PASSWORD: Définissez un mot de passe fort et complexe pour la base de données PostgreSQL interne de Dify. Ne laissez jamais le mot de passe par défaut.
Vous devrez également vérifier d'autres paramètres dans ce fichier, notamment ceux liés à la base de données, au stockage de fichiers, et aux configurations SMTP si vous prévoyez d'utiliser des fonctionnalités d'envoi d'e-mails ou un stockage externe.
6. Lancement de Dify avec Docker Compose
Une fois le fichier .env correctement configuré et enregistré, vous êtes prêt à lancer Dify. Assurez-vous d'être dans le répertoire dify/docker.
Démarrage des services : Cette commande va télécharger les images Docker nécessaires et démarrer tous les conteneurs définis dans le
docker-compose.yamlen arrière-plan (-dpour "detached").
docker compose up -d ```
Vérification de l'état des services : Pour s'assurer que tous les conteneurs sont bien en cours d'exécution et en bonne santé :
docker compose ps
```
Vous devriez voir tous les services (API, console, PostgreSQL, Redis, etc.) affichant un statut running.
Diagnostic (en cas de problème) : Si un service ne démarre pas correctement, vous pouvez consulter les logs en temps réel pour identifier la cause :
docker compose logs -f ```
Cette étape met en place l'ensemble de la pile Dify, mais elle n'est pas encore accessible publiquement de manière sécurisée. C'est là qu'interviennent Nginx et Let's Encrypt.
7. Sécurisation et Accès Public : Nginx et HTTPS (Let's Encrypt)
Pour rendre votre instance Dify accessible et sécurisée via HTTPS, vous devez installer un serveur web comme Nginx qui agira comme un reverse proxy, et obtenir un certificat SSL avec Let's Encrypt via Certbot.
Installer Nginx :
sudo apt install nginx -y ```
Configurer Nginx comme reverse proxy :
Créez un nouveau fichier de configuration Nginx pour Dify. Remplacez
console.votredomaine.fretapps.votredomaine.frpar vos propres sous-domaines (préalablement configurés pour pointer vers l'IP de votre VPS Hetzner).
sudo nano /etc/nginx/sites-available/dify.conf ```
Collez le contenu suivant :
```nginx
server { listen 80; server_name console.votredomaine.fr apps.votredomaine.fr;
location / {
proxy_pass http://localhost:8080; # Dify's port interne par défaut
proxy_set_header Host $host;
proxy_set_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 300s;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
}
} ```
Activez la configuration et testez-la :
```bash
sudo ln -s /etc/nginx/sites-available/dify.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx ```
Installer Certbot :
sudo apt install certbot python3-certbot-nginx -y ```
Obtenir un certificat SSL Let's Encrypt :
Certbot va automatiquement détecter votre configuration Nginx et générer les certificats. Il modifiera également votre fichier
dify.confpour activer HTTPS et la redirection HTTP vers HTTPS.
sudo certbot --nginx -d console.votredomaine.fr -d apps.votredomaine.fr ```
Suivez les instructions à l'écran, entrez votre adresse e-mail et acceptez les conditions. Choisissez l'option pour rediriger toutes les requêtes HTTP vers HTTPS.
Vérifiez que le renouvellement automatique est configuré :
```bash
sudo systemctl status certbot.timer ```
Après ces étapes, votre instance Dify sera accessible via `https://console.votredomaine.fr` et `https://apps.votredomaine.fr`.
Conclusion
Vous avez maintenant déployé avec succès Dify sur votre VPS Hetzner en utilisant Docker et Docker Compose, sécurisé par Nginx et Let's Encrypt. Cette infrastructure offre une base solide pour développer et gérer vos applications basées sur des modèles de langage. Pour aller plus loin dans l'optimisation et la gestion de vos déploiements auto-hébergés avec Docker, n'hésitez pas à consulter notre guide détaillé sur le Déploiement de Dify en Self-Hosted avec Docker et Docker Compose : Le Guide Complet.
Ce processus vous donne un contrôle total sur votre environnement Dify, essentiel pour les projets nécessitant une confidentialité des données ou des configurations spécifiques. Votre plateforme Dify est désormais prête à l'emploi pour créer des applications d'IA puissantes.
L'équipe SEOmnix
L'équipe technique de SEOmnix teste, compare et décortique les meilleurs outils SaaS et IA pour aider les professionnels à automatiser leur croissance.