[{"data":1,"prerenderedAt":186},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-dify-vps-ma-fr":6,"promo-bar-likely":185},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-deployer-dify-vps-ma-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":34,"sections":35,"ctaTitle":120,"ctaBody":121,"ctaButton":122,"ctaUrl":123,"relatedPosts":124},2,"deployer-dify-vps",{"fr":10,"en":12,"ar":13,"es":14},"deploying-dify-on-a-vps-ai-workflows-under-control","نشر-dify-على-vps-سير-عمل-الذكاء-الاصطناعي-تحت-السيطرة","desplegar-dify-en-un-vps","Déployer Dify sur un VPS : guide de l'installation aux plugins","Installez Dify sur un VPS ServOrbit : prérequis, Docker Compose, plugins offline, limites de l'installation Docker, sauvegarde avant mise à jour, dépannage.",15,1,false,"2026-02-11T00:00:00+00:00","2026-10-29T03:10:23+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},"Intelligence Artificielle","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[28],{"id":18,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-dify-vps-poster.svg",{"categorySlug":24,"appSlug":33},"dify","Dify permet de concevoir des agents IA, des chatflows et des workflows multi-modèles sans repartir de zéro côté backend. L'auto-héberger sur un VPS ServOrbit garde vos clés API, vos prompts et vos bases de connaissance dans un périmètre que vous administrez. Ce guide couvre le parcours complet : dimensionnement, installation Docker Compose, première connexion, plugins offline, limites connues de l'installation Docker (nœud Agent, outils MCP), sauvegarde avant montée de version et dépannage des erreurs courantes.",[36,40,50,53,72,75,78,81,84,87,90,108,111,114,117],{"type":37,"title":38,"body":39},"h2","Pourquoi héberger Dify sur un VPS ?","Utiliser la version cloud de Dify implique de confier vos prompts, vos données métier et vos clés API à un serveur tiers, avec des limitations sur le nombre d'applications et les modèles accessibles. En auto-hébergeant Dify sur un VPS, vous éliminez ces contraintes : aucun abonnement mensuel lié à l'usage, aucune donnée sensible transmise à l'extérieur, et la liberté de connecter n'importe quel fournisseur de modèles (OpenAI, Anthropic, Ollama en local, etc.). C'est la solution idéale pour les équipes qui souhaitent construire des pipelines IA robustes dans un environnement sous leur contrôle total.",{"type":41,"title":42,"items":43},"ul","Ce que vous pouvez faire avec Dify",[44,45,46,47,48,49],"Créer des chatbots et agents IA personnalisés connectés à vos propres sources de données (RAG)","Orchestrer des workflows multi-étapes combinant plusieurs modèles de langage et outils externes","Brancher Dify sur OpenAI, Anthropic Claude, Mistral, ou un modèle local via Ollama","Exposer vos applications IA via une API REST ou un widget intégrable dans votre site","Gérer les accès de votre équipe avec un système de rôles et d'espaces de travail","Suivre les logs d'utilisation, les coûts par modèle et les performances de vos pipelines",{"type":37,"title":51,"body":52},"Prérequis : bien dimensionner votre VPS","Dify fait tourner une flotte de services Docker en parallèle : un serveur API, un worker Celery pour les embeddings et les tâches asynchrones, le frontend web, PostgreSQL (service `db_postgres`), Redis, Weaviate comme base vectorielle par défaut (`VECTOR_STORE=weaviate`), un `sandbox` d'exécution de code, le `plugin_daemon`, des proxys SSRF (Squid) et nginx. Depuis la 1.16.0 s'y ajoutent `agent_backend` et `local_sandbox`, qui portent les applications Agent.\n\n**Minimum officiel** : 2 cœurs CPU et 4 GiB de RAM, avec Docker Compose 2.24.0 ou plus récent (documentation Dify). Prévoyez 2 vCPU · 4 Go · 40 Go de SSD pour tester les fonctions de base.\n\n**Usage réel recommandé** : 4 vCPU · 8 Go de RAM · 80 Go de stockage. Dès que vous indexez des documents volumineux, que plusieurs utilisateurs requêtent en même temps ou que vous activez les applications Agent, les embeddings, la base vectorielle et les services agent saturent 4 Go. L'offre **VPS Power** ServOrbit (4 vCPU, 8 GB) convient à un usage équipe sans modèle local.\n\n**Avec un modèle local (Ollama)** : ajoutez les besoins du modèle. Un Llama 3 8B quantisé (Q4) requiert ~6 Go de VRAM ou de RAM dédiée ; comptez 16 Go de RAM au minimum pour faire cohabiter Dify et Ollama sans swap.\n\nSystème recommandé : Ubuntu 22.04 LTS.",{"type":54,"title":55,"steps":56},"steps","Installer Dify sur votre VPS ServOrbit",[57,60,63,66,69],{"title":58,"body":59},"Commander un VPS Cloud ServOrbit","Rendez-vous sur la page \u002Fvps-cloud et choisissez une offre adaptée à votre usage (minimum 2 vCPU \u002F 4 Go RAM, recommandé 4 vCPU \u002F 8 Go). Sélectionnez Ubuntu 22.04 LTS comme système d'exploitation, puis finalisez la commande. Votre VPS est provisionné en moins d'une minute.",{"title":61,"body":62},"Cloner une version publiée et copier la configuration","Connectez-vous en SSH, puis lancez `git clone --branch 1.18.0 https:\u002F\u002Fgithub.com\u002Flanggenius\u002Fdify.git`, `cd dify\u002Fdocker` et `cp .env.example .env`. Épinglez une étiquette de release plutôt que la branche `main`, qui bouge à chaque fusion : la documentation officielle demande de cloner la dernière release.\n\nLe fichier `.env` concentre la configuration. Remplacez avant le premier démarrage les valeurs de développement livrées : `DB_PASSWORD` (défaut `difyai123456`), `REDIS_PASSWORD`, `SANDBOX_API_KEY`, `PLUGIN_DAEMON_KEY`, `DIFY_AGENT_API_TOKEN` et `DIFY_AGENT_SERVER_SECRET_KEY`. Laissez `SECRET_KEY` vide pour qu'une clé persistante soit générée : la changer plus tard déconnecte tous les utilisateurs et rend illisibles les identifiants OAuth des plugins. Générez enfin le jeton du bac à sable agent avec `openssl rand -base64 32` et placez-le dans `DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN` : sans lui, l'Agent backend et son sandbox ne démarrent pas.",{"title":64,"body":65},"Démarrer la stack Docker Compose","Depuis `dify\u002Fdocker`, lancez `docker compose up -d`. Docker télécharge les images et démarre les conteneurs : `api`, `worker`, `worker_beat`, `web`, `db_postgres`, `redis`, `weaviate`, `sandbox`, `plugin_daemon`, `ssrf_proxy`, `agent_backend`, `local_sandbox` et `nginx`. Vérifiez avec `docker compose ps` que les services sont `Up` ou `healthy` ; `init_permissions` affiche `Exited`, ce qui est normal. L'opération dure généralement 3 à 5 minutes selon la bande passante.",{"title":67,"body":68},"Créer le compte administrateur","Ouvrez `http:\u002F\u002F[IP-de-votre-VPS]\u002Finstall` dans votre navigateur.\n\nAttention : faites-le immédiatement. Tant que le compte admin n'existe pas, la page `\u002Finstall` est accessible à n'importe qui, et le premier arrivé devient propriétaire de votre instance. Si vous renseignez `INIT_PASSWORD` dans le `.env` (30 caractères maximum), cette page le réclame avant de créer le compte.\n\nSaisissez votre adresse e-mail et un mot de passe fort. Ce compte est le propriétaire de l'espace de travail par défaut.",{"title":70,"body":71},"Pointer un nom de domaine et activer HTTPS","Pour la production, associez un nom de domaine à l'IP du VPS et déployez un certificat TLS. Le nginx interne de Dify écoute par défaut sur le port 80 de l'hôte (`EXPOSE_NGINX_PORT=80`) : si vous installez un nginx sur l'hôte, il entrera en conflit. Passez donc `EXPOSE_NGINX_PORT=8080` dans le `.env`, puis installez nginx et Certbot sur l'hôte (`sudo apt install nginx certbot python3-certbot-nginx -y`), créez un vhost qui proxifie vers `127.0.0.1:8080` et lancez `sudo certbot --nginx -d votre-domaine.com`.\n\nRenseignez ensuite `CONSOLE_API_URL`, `APP_WEB_URL`, `SERVICE_API_URL` et `FILES_URL` avec `https:\u002F\u002Fvotre-domaine.com` (vides par défaut) : `CONSOLE_API_URL` sert aux connexions OAuth et aux plugins, `APP_WEB_URL` aux liens du nœud Human Input, et si `FILES_URL` et `CONSOLE_API_URL` restent vides, l'aperçu des fichiers ne fonctionne pas. Relancez avec `docker compose up -d`.",{"type":37,"title":73,"body":74},"Configuration post-installation : modèles, API et espace de travail","Une fois connecté, la première étape est de déclarer un fournisseur de modèles. Dans les paramètres (icône en haut à droite) → **Fournisseurs de modèles**, ajoutez votre clé API OpenAI, Anthropic, Mistral ou tout autre fournisseur supporté. Pour un modèle local, entrez l'URL de votre instance Ollama (`http:\u002F\u002F[IP-hôte]:11434`).\n\nDify expose aussi sa propre API REST pour intégrer vos applications dans des pipelines externes. Vous trouverez les clés d'API dans **Paramètres → Clés d'API**. Ces clés permettent d'interroger vos applications Dify depuis n8n, Zapier ou tout script Python sans passer par l'interface graphique.\n\nL'espace de travail par défaut est celui créé lors de la première connexion. Vous pouvez inviter des membres via **Paramètres → Membres** et leur attribuer les rôles `Admin`, `Normal` ou `Dataset operator`.",{"type":37,"title":76,"body":77},"Plugins offline : contourner l'erreur 500\u002F404 sur les instances self-hosted","Depuis novembre 2025 (issue GitHub #27720, ouverte sur Dify 1.9.2), des utilisateurs self-hosted voient l'installation de plugins depuis le marketplace échouer : HTTP 500 pour `langgenius\u002Fperplexity`, HTTP 404 pour `langgenius\u002Fanthropic`, puis `Reached maximum retries (3)` pour `langgenius\u002Fazure_openai`. Les mêmes plugins s'installent sur Dify Cloud. Le ticket a été clos « not planned » le 18 décembre 2025 avec l'étiquette `cant-reproduce`, sans correctif : les contournements ci-dessous viennent d'un bot du fil et n'ont pas été confirmés par les mainteneurs.\n\n**Contournement 1 : fichier `.difypkg` local.** Téléchargez le fichier `.difypkg` du plugin sur une machine connectée, puis installez-le avec « Installer depuis un fichier local ». Pour un serveur sans accès sortant, l'outil `dify-plugin-repackaging` embarque les dépendances dans le paquet. Si le fichier est refusé pour sa taille, relevez `PLUGIN_MAX_PACKAGE_SIZE` (52428800 octets par défaut) et `NGINX_CLIENT_MAX_BODY_SIZE` (`100M` par défaut).\n\n**Contournement 2 : désactiver la vérification de signature.** Pour installer des plugins non signés ou développer les vôtres, passez `FORCE_VERIFYING_SIGNATURE=false` (valeur par défaut : `true`) dans le `.env`, puis lancez `docker compose restart plugin_daemon`.\n\nAttention : désactiver la signature supprime un garde de sécurité. Réservez ce réglage au développement ou à des plugins dont vous maîtrisez la source ; en production avec des utilisateurs tiers, préférez un `.difypkg` vérifié.",{"type":37,"title":79,"body":80},"Limites connues de l'installation Docker : le nœud Agent","**Nœud Agent des Chatflow et Workflow en 1.15.0.** Sur l'installation Docker standard de la 1.15.0, le nœud « Agent » échoue avant tout appel au modèle avec `ValueError: base_url is required when creating a real Agent backend client`. Il exige un service « Agent backend » désigné par `AGENT_BACKEND_BASE_URL`, que le `docker-compose.yaml` officiel de cette version ne contenait pas. Les tickets langgenius\u002Fdify #38283 (clos « not planned » le 17 août 2026) et #39161 (clos comme doublon le 23 octobre 2026) n'ont abouti à aucun correctif ; une amélioration du message d'erreur reste en revue (PR #39878). Deux contournements circulent et aucun ne convient : `AGENT_BACKEND_USE_FAKE=true` branche un faux client qui renvoie une réponse codée en dur sans jamais appeler le LLM ni les outils MCP, et déployer à la main un service `dify-agent` n'est ni documenté ni supporté.\n\n**Depuis la 1.16.** Le compose officiel embarque désormais `agent_backend` et `local_sandbox`, avec `AGENT_BACKEND_BASE_URL=http:\u002F\u002Fagent_backend:5050` dans `.env.example`, et les jetons `DIFY_AGENT_API_TOKEN` (qui doit égaler `AGENT_BACKEND_API_TOKEN` depuis la 1.16.1) et `DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN` à renseigner. Mais l'Agent V2 a été masqué dans les Chatflow dès la 1.16.1, faute de contexte multi-tours ; la demande de le restaurer (#41269, ouverte le 26 août 2026) n'a pas de version cible. En Chatflow, seul le nœud Agent historique est disponible. L'application de type Agent autonome est l'alternative que le rapporteur de #39161 dit avoir fait fonctionner en 1.15.0.",{"type":37,"title":82,"body":83},"Limites connues : modifier un Chatflow à outil MCP en 1.18.0","Le ticket #44742 (ouvert le 25 octobre 2026) rapporte qu'après avoir retiré puis rajouté un outil MCP dans un nœud Agent de la 1.18.0, le Chatflow ne s'exécute plus : `TypeError: object of type 'NoneType' has no len()`, levée dans `build_parameters`. Le YAML exporté montre `allowed_tools`, `context` et `files` enregistrés en `type: variable` avec `value: null`. Un autre outil MCP, resté intact dans le même flux, continue de fonctionner. Revenir en 1.17.x ne répare pas un flux déjà abîmé, et importer l'export cassé dans une autre instance échoue aussi.\n\n**Contournements rapportés.** Éditer le YAML pour passer ces trois champs en `type: constant` avec `value: []`, puis l'importer tel quel (le reconditionner en `.difypkg` échoue au contrôle d'intégrité), ou recréer le flux.\n\n**État du fil.** Le ticket a été clos le 26 octobre 2026 par la PR #44748, fusionnée dans `main` : elle n'écrit plus les champs optionnels vidés dans le graphe enregistré. Elle règle #44579 (`AgentVariableNotFoundError`), mais précise que les paramètres manuels imbriqués et la séquence complète retirer\u002Frajouter un outil MCP sont hors de son périmètre. Aucune release postérieure à la 1.18.0 n'apparaissait sur la page des releases le 28 octobre 2026. En attendant, exportez le YAML avant chaque modification d'un Chatflow à outil MCP.",{"type":37,"title":85,"body":86},"Maillage avec Ollama et n8n","Dify devient particulièrement puissant en combinaison avec d'autres outils self-hosted.\n\n**Ollama** vous permet de faire tourner un LLM directement sur votre VPS ou sur un serveur du même réseau, sans dépendre d'une API externe. Après avoir déployé Ollama, déclarez-le dans Dify comme fournisseur de modèles avec l'URL `http:\u002F\u002F[IP-Ollama]:11434`. Toute la génération reste alors sur votre infrastructure — zéro fuite de prompt vers l'extérieur.\n\n**n8n** est un orchestrateur de workflows qui peut piloter Dify via son API REST. Créez un nœud HTTP Request dans n8n pointant vers `https:\u002F\u002Fvotre-domaine.com\u002Fv1\u002Fchat-messages` avec votre clé d'API Dify en header `Authorization`. Vous pouvez ainsi déclencher une conversation Dify depuis un formulaire web, un e-mail entrant ou un webhook Slack, et renvoyer la réponse IA vers n'importe quelle destination.",{"type":37,"title":88,"body":89},"Sauvegarder le volume et la base avant une montée de version","Une montée de version Dify touche le schéma PostgreSQL (les migrations s'exécutent au démarrage de l'API tant que `MIGRATION_ENABLED=true`), les données vectorielles et les images de la pile agent. Les notes de la 1.18.0 commencent par « Back up first » : base, données du magasin vectoriel, fichiers téléversés, stockage Agent, secrets et fichiers d'environnement.\n\nSur Docker Compose, tout ou presque vit dans `docker\u002Fvolumes\u002F` (`db\u002Fdata` pour PostgreSQL, `weaviate`, `redis\u002Fdata`), en montages de dossiers et non en volumes nommés. Pour une copie cohérente : `docker compose stop`, puis `tar czf ..\u002Fdify-backup.tar.gz volumes .env docker-compose.yaml`, puis copie de l'archive hors du VPS. Sans arrêt complet, un export logique reste possible : `docker compose exec -T db_postgres pg_dump -U postgres dify > dify-dump.sql`.\n\nConservez aussi, hors du dépôt, `SECRET_KEY` et `PASSWORD_PEPPER` s'il est défini : perdre la première rend illisibles les identifiants chiffrés, et modifier le second invalide les hachages de mots de passe existants (notes de la 1.18.0). Prévoyez enfin les paliers : si votre pile embarque encore Weaviate 1.27, les notes de la 1.17.1 imposent une montée par étapes vers la 1.39, sans saut de version mineure.",{"type":54,"title":91,"steps":92},"Monter de version : répéter d'abord sur une copie",[93,96,99,102,105],{"title":94,"body":95},"Figer l'existant","Notez la version en place (`docker compose images`), arrêtez la pile avec `docker compose stop` et réalisez la sauvegarde décrite plus haut. Vérifiez que l'archive s'ouvre (`tar tzf`) avant d'aller plus loin : une sauvegarde jamais relue n'est pas une sauvegarde.",{"title":97,"body":98},"Dupliquer l'instance","Depuis le dossier parent, `cp -a dify dify-test`. Dans `dify-test\u002Fdocker\u002F.env`, changez `EXPOSE_NGINX_PORT` et `EXPOSE_NGINX_SSL_PORT` (par exemple 8081 et 8444) pour ne pas entrer en collision avec la production, et prévoyez disque et RAM pour une seconde pile. Le nom du projet Compose suit le nom du dossier, ce qui sépare les deux piles.",{"title":100,"body":101},"Passer la copie à la version cible","Dans `dify-test`, lancez `git fetch --tags` puis `git checkout \u003Cétiquette>`. Comparez chaque `.env.example` à votre `.env` pour repérer les variables nouvelles ou renommées, et si vous avez modifié `docker-compose.yaml`, réappliquez vos changements sur le fichier de la nouvelle version plutôt que de garder l'ancien. Lancez `docker compose pull` puis `docker compose up -d` et suivez `docker compose logs -f api` jusqu'à la fin des migrations. De la 1.17.1 à la 1.18.0, les notes en comptent 22 : API, workers, Agent Backend et images runtime se montent ensemble.",{"title":103,"body":104},"Rejouer vos flux sensibles","Sur la copie, ouvrez chaque Chatflow qui utilise un nœud Agent ou un outil MCP, exécutez-le, puis modifiez-le et enregistrez-le une fois : c'est l'édition qui a cassé les flux en 1.18.0. Testez aussi une requête sur une base de connaissance, l'appel d'un plugin et un export YAML. Détruisez ensuite la copie : `docker compose down`, puis suppression du dossier `dify-test`.",{"title":106,"body":107},"Basculer la production, ou revenir","Rejouez les mêmes gestes en production pendant une fenêtre de maintenance. Pour revenir en arrière, ne vous contentez pas de rebasculer l'étiquette : les migrations ont modifié la base. Lancez `docker compose down`, restaurez l'archive de volumes, puis revenez à l'étiquette précédente.",{"type":37,"title":109,"body":110},"Dépannage : les erreurs les plus fréquentes","**Conteneur `worker` qui redémarre en boucle.** Le worker Celery dépend de Redis et de PostgreSQL. Vérifiez leur statut avec `docker compose ps db_postgres redis` et consultez `docker compose logs worker --tail=50`. Si Redis n'est pas prêt au démarrage, un `docker compose restart worker` suffit.\n\n**`plugin_daemon` qui boucle sur la connexion PostgreSQL.** Le signalement dify-plugin-daemon #729 (Dify 1.14.0) montre `failed to connect to host=db_postgres … lookup db_postgres on 127.0.0.11:53: no such host`, puis `panic: failed to init dify plugin db`. Le nom d'hôte doit correspondre à un service qui tourne : vérifiez que `db_postgres` est `healthy`, que `DB_HOST` du `.env` porte ce nom et que `COMPOSE_PROFILES` contient `postgresql`, puis faites `docker compose down` et `docker compose up -d`. Ce ticket a été clos sans cause confirmée.\n\n**Un service ne démarre pas à cause de `vm.max_map_count`.** Ce réglage noyau concerne Elasticsearch (profil `elasticsearch`), pas Weaviate. Si vous l'avez choisi, la documentation Elastic demande 1048576 lorsque la valeur par défaut est plus basse : `sudo sysctl -w vm.max_map_count=1048576`, puis la même ligne dans `\u002Fetc\u002Fsysctl.conf` et `sudo sysctl --system` pour la rendre permanente.\n\n**Plugins marketplace : erreur 500\u002F404.** Voir la section « Plugins offline ». Si un blocage réseau est en cause, testez la sortie 443 depuis un conteneur : `docker compose exec api curl -I https:\u002F\u002Fmarketplace.dify.ai`.\n\n**WebSocket déconnecté derrière un reverse proxy.** Si le streaming des réponses s'interrompt, votre nginx externe ne transmet pas les en-têtes d'upgrade. Ajoutez dans `location \u002F` : `proxy_set_header Upgrade $http_upgrade;` et `proxy_set_header Connection \"upgrade\";`.",{"type":37,"title":112,"body":113},"Dépannage : agents, outils MCP et montées de version","**`base_url is required when creating a real Agent backend client`.** Voir « Limites connues : le nœud Agent ». Sur une version récente, vérifiez que `agent_backend` tourne et que `AGENT_BACKEND_BASE_URL` pointe sur `http:\u002F\u002Fagent_backend:5050`.\n\n**`agent_backend` ou `local_sandbox` qui ne démarrent pas.** Le jeton `DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN` est vide : la documentation indique que l'Agent backend et son sandbox ne démarrent pas sans lui. Générez-le avec `openssl rand -base64 32`, mettez-le dans `docker\u002F.env` et relancez.\n\n**`TypeError: object of type 'NoneType' has no len()`.** Chatflow abîmé après l'édition d'un outil MCP en 1.18.0 (#44742) : voir la section dédiée, et corrigez le YAML avant import.\n\n**`AgentVariableNotFoundError: Variable '' does not exist`.** Un champ optionnel vidé dans le nœud Agent laisse un sélecteur vide dans le graphe enregistré (#44579, vu en 1.17.1). Remettez une valeur au champ, ou attendez une release qui embarque la PR #44748.\n\n**IP réelle perdue derrière Cloudflare ou un load balancer.** Depuis la 1.18.0, le nginx embarqué remplace `X-Forwarded-For` : configurez la gestion de l'IP réelle de confiance.\n\n**Connexion impossible après une mise à jour.** Un `PASSWORD_PEPPER` ajouté, changé ou retiré invalide les mots de passe existants : restaurez la valeur d'origine.",{"type":115,"body":116},"tip","Prenez un instantané ServOrbit à la demande depuis l'espace client avant chaque montée de version : il couvre le dossier `docker\u002Fvolumes\u002F` (PostgreSQL, Weaviate, Redis) et vos fichiers `.env`. Arrêtez d'abord la pile avec `docker compose stop` pour que la base soit copiée dans un état cohérent. En cas de mise à jour ratée, un rollback se fait en quelques minutes depuis l'espace client. L'instantané complète la copie de test, il ne la remplace pas.",{"type":115,"title":118,"body":119},"La documentation officielle","Pour la configuration avancée, les variables d'environnement complètes et les notes de version, consultez la \u003Ca href=\"https:\u002F\u002Fdocs.dify.ai\u002Fen\u002Fhome\" target=\"_blank\" rel=\"noopener noreferrer\">documentation officielle de Dify\u003C\u002Fa>. Le fichier `docker-compose.yaml` du dépôt officiel reste la source de vérité pour les versions des images et les dépendances inter-services.","Déployez Dify en quelques minutes sur un VPS Cloud ServOrbit","Lancez votre propre instance Dify sur un VPS haute performance et prenez le contrôle total de vos applications IA, sans limites d'usage et sans compromis sur la confidentialité de vos données.","Lancer mon VPS Cloud","\u002Fvps-cloud",[125,144,165],{"id":126,"slug":127,"slugs":128,"title":132,"excerpt":133,"readTime":134,"views":135,"isPinned":19,"noindex":19,"publishedAt":136,"updatedAt":137,"category":138,"categories":139,"featuredImage":29,"bgImage":30,"posterImage":141,"relatedSolution":142},11,"heberger-ollama-vps",{"fr":127,"en":129,"ar":130,"es":131},"how-to-host-ollama-on-a-vps","كيفية-استضافة-ollama-على-خادم-vps","como-alojar-ollama-en-un-vps","Héberger Ollama sur un VPS : guide opérationnel avancé","Configuration avancée d'Ollama sur VPS : gestion des modèles, reverse proxy nginx, sécurité API, quantisation Q4_K_M\u002FQ8, CVE-2026-45672 Open WebUI et couplage sécurisé.",9,3,"2026-06-09T00:00:00+00:00","2026-11-04T16:30:24+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},[140],{"id":18,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-ollama-vps-poster.svg",{"categorySlug":26,"appSlug":143},"ollama",{"id":135,"slug":145,"slugs":146,"title":150,"excerpt":151,"readTime":152,"views":153,"isPinned":19,"noindex":19,"publishedAt":154,"updatedAt":155,"category":156,"categories":160,"featuredImage":29,"bgImage":30,"posterImage":162,"relatedSolution":163},"installer-n8n-vps",{"fr":145,"en":147,"ar":148,"es":149},"install-n8n-on-vps-with-docker-complete-2026-guide","تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026","instalar-n8n-en-vps-con-docker","Installer n8n sur VPS avec Docker : guide complet 2026","Déployez n8n sur VPS avec Docker, reverse proxy et HTTPS. Crash V8, 502 nginx, migration npm vers Docker et sécurisation des exécutions persistées (advisory août 2026).",19,4,"2026-06-05T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":9,"name":157,"slug":158,"color":159,"icon":158},"Automatisation","automatisation","bg-brand-action\u002F10 text-brand-action",[161],{"id":9,"name":157,"slug":158,"color":159,"icon":158},"\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":158,"appSlug":164},"n8n",{"id":166,"slug":167,"slugs":168,"title":172,"excerpt":173,"readTime":174,"views":18,"isPinned":19,"noindex":19,"publishedAt":175,"updatedAt":176,"category":177,"categories":182,"featuredImage":29,"bgImage":30,"posterImage":184,"relatedSolution":29},228,"durcissement-serveur-linux-initial",{"fr":167,"en":169,"ar":170,"es":171},"initial-linux-server-hardening","تصليب-الخادم-linux-الأولي","hardening-inicial-servidor-linux","Durcissement initial d'un serveur Linux","Créez un utilisateur sudo, configurez SSH avec clés, activez UFW et fail2ban sur Ubuntu ou Debian en moins d'une heure.",8,"2026-08-06T00:00:00+00:00","2026-10-20T23:18:07+00:00",{"id":174,"name":178,"slug":179,"color":180,"icon":181},"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[183],{"id":174,"name":178,"slug":179,"color":180,"icon":181},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",true,1794270693756]