Guide de déploiement

Stack IA open source sur VPS : Ollama, Open WebUI et n8n

Déployer sur un VPS Cloud →

Tutoriel

Stack IA open source sur VPS : Ollama, Open WebUI et n8n

Intelligence Artificielle8 min de lecture7 étapes

Ollama fait tourner un LLM directement sur votre serveur. Open WebUI y ajoute une interface chat multi-utilisateurs. n8n relie le tout à vos outils pour automatiser des pipelines IA — résumés, classification, génération de contenu. Les trois sont open source, chacun dispose d'une image Docker officielle, et leurs étoiles GitHub combinées dépassent les 560 000 : Ollama et n8n approchent chacun les 205 000, Open WebUI dépasse les 152 000. Cette combinaison revient régulièrement sur r/selfhosted comme la plus demandée pour construire un pipeline IA complet en septembre 2026. Ce guide vous montre comment les assembler sur un seul VPS et les faire collaborer sans envoyer un seul token vers une API cloud tierce.

Sommaire· Pourquoi assembler cette stack plutôt que d'utiliser chaque outil seul1/9
  1. 01Pourquoi assembler cette stack plutôt que d'utiliser chaque outil seul
  2. 02Ce que la stack apporte concrètement
  3. 03Prérequis : RAM, CPU et domaine
  4. 04Déployer la stack avec Docker Compose
  5. 05RAM juste : charger le modèle à la demande
  6. 06Sécuriser la stack avant de l'exposer
  7. 07Profils de VPS pour la stack
  8. 08Cas d'usage : automatiser un pipeline de résumé avec n8n
  9. 09La documentation officielle

Pourquoi assembler cette stack plutôt que d'utiliser chaque outil seul

Ollama, Open WebUI et n8n sont régulièrement cités ensemble sur r/selfhosted comme la combinaison la plus demandée pour un pipeline IA self-hosted complet. La raison est simple : pris séparément, chaque outil résout un tiers du problème. Ollama expose une API locale compatible OpenAI — mais aucune interface pour vos utilisateurs. Open WebUI donne cette interface — mais sans automatisation. n8n orchestre des workflows — mais sans moteur LLM embarqué, il doit appeler une API externe payante. Les trois ensemble forment un pipeline autonome : l'inférence reste sur votre machine, le chat est accessible depuis un navigateur, et vos automatisations consomment directement l'API locale d'Ollama via le nœud HTTP Request natif de n8n, sans plugin tiers et sans coût par token. Toutes les données — prompts, documents, historiques de conversation — restent dans vos volumes Docker, sur votre infrastructure.

Ce que la stack apporte concrètement

  • Inférence privée — Mistral 7B, Llama 3, Phi-3 ou tout modèle GGUF tournent localement ; aucun prompt ne quitte votre VPS.
  • Interface chat multi-utilisateurs — Open WebUI expose des comptes distincts, des historiques isolés et un endpoint compatible avec l'API OpenAI d'Ollama.
  • Automatisation sans plugin — n8n consomme http://ollama:11434 via son nœud HTTP Request natif ; la documentation n8n.io/integrations le confirme sans dépendance supplémentaire.
  • Coût prévisible — un seul prix VPS mensuel remplace les frais au token d'une API cloud ; 8 Go de RAM suffisent pour Mistral 7B, Open WebUI et n8n en mode queue.
  • Maîtrise des versions — chaque outil se met à jour indépendamment ; aucune migration forcée imposée par un éditeur SaaS.
  • Portabilité totale — un docker compose down && docker compose up suffit pour migrer la stack vers un VPS plus puissant ; les volumes Docker portent tout l'état.
  • Images Docker officielles vérifiéesdocker.io/ollama/ollama, ghcr.io/open-webui/open-webui et docker.io/n8nio/n8n sont maintenus par chaque projet respectif.
  • Maillage interne sécurisé — les trois services communiquent sur un réseau Docker privé ; aucun port LLM n'est exposé publiquement.

Prérequis : RAM, CPU et domaine

La RAM est le facteur limitant. Ollama chargé sur Mistral 7B consomme entre 5 et 6 Go selon la quantification choisie (documenté sur le dépôt officiel Ollama). Open WebUI demande environ 256 Mo supplémentaires. n8n en mode queue ajoute environ 512 Mo. Le total tourne donc autour de 7 Go en charge légère, ce qui signifie qu'un VPS à 8 Go de RAM tient la stack complète sans swap actif — un VPS {{vps.business.name}} à {{vps.business.vcpu}} vCPU et {{vps.business.ram}} est le profil de référence pour cette configuration. Pour des modèles plus larges (13B et au-delà), comptez 16 Go. Côté stockage, prévoyez 20 Go minimum pour les couches Docker et les modèles, davantage si vous téléchargez plusieurs modèles en parallèle. Vous aurez besoin d'un sous-domaine pour chaque service exposé (par exemple chat.votre-domaine.com pour Open WebUI et n8n.votre-domaine.com pour n8n), Docker et Docker Compose installés, et le port 443 ouvert dans votre pare-feu.

Déployer la stack avec Docker Compose

  1. Préparer le VPS

    Connectez-vous en SSH et installez Docker si ce n'est pas déjà fait : curl -fsSL https://get.docker.com | sh. Vérifiez que Docker Compose est disponible avec docker compose version. Créez un dossier de travail : mkdir -p /opt/ia-stack && cd /opt/ia-stack.

  2. Écrire le docker-compose.yml

    Déclarez les trois services dans un fichier docker-compose.yml unique sur un réseau interne partagé :

    services:
      ollama:
        image: docker.io/ollama/ollama
        volumes:
          - ollama_data:/root/.ollama
        networks:
          - ia
        restart: unless-stopped
    
      open-webui:
        image: ghcr.io/open-webui/open-webui:main
        environment:
          - OLLAMA_BASE_URL=http://ollama:11434
        volumes:
          - webui_data:/app/backend/data
        networks:
          - ia
        restart: unless-stopped
    
      n8n:
        image: docker.io/n8nio/n8n
        environment:
          - N8N_BASIC_AUTH_ACTIVE=true
          - N8N_BASIC_AUTH_USER=admin
          - N8N_BASIC_AUTH_PASSWORD=changez-ce-mot-de-passe
          - WEBHOOK_URL=https://n8n.votre-domaine.com
        volumes:
          - n8n_data:/home/node/.n8n
        networks:
          - ia
        restart: unless-stopped
    
    networks:
      ia:
        driver: bridge
    
    volumes:
      ollama_data:
      webui_data:
      n8n_data:

    Aucun port n'est exposé sur l'hôte : le reverse proxy sera la seule porte d'entrée.

  3. Démarrer les conteneurs

    Lancez la stack : docker compose up -d. Vérifiez que les trois conteneurs sont actifs avec docker compose ps. Pour consulter les journaux d'un service : docker compose logs -f ollama. À ce stade, aucun service n'est accessible depuis l'extérieur.

  4. Télécharger un modèle dans Ollama

    Entrez dans le conteneur Ollama pour récupérer un modèle : docker compose exec ollama ollama pull mistral. La commande télécharge et quantifie le modèle dans le volume ollama_data. Vérifiez la liste des modèles disponibles avec docker compose exec ollama ollama list. Open WebUI détectera automatiquement les modèles présents dans Ollama au démarrage.

  5. Configurer le reverse proxy

    Installez Caddy ou Nginx sur l'hôte pour exposer Open WebUI et n8n en HTTPS. Avec Caddy, deux blocs suffisent dans votre Caddyfile :

    chat.votre-domaine.com {
      reverse_proxy open-webui:8080
    }
    
    n8n.votre-domaine.com {
      reverse_proxy n8n:5678
    }

    Caddy obtient et renouvelle les certificats Let's Encrypt automatiquement. Ollama n'est pas exposé directement — il reste accessible uniquement depuis les autres conteneurs via le réseau ia.

  6. Créer le compte administrateur Open WebUI

    Ouvrez https://chat.votre-domaine.com dans votre navigateur. Au premier accès, Open WebUI vous invite à créer un compte administrateur (e-mail + mot de passe). Ce compte est local à votre instance — aucune donnée ne transite vers un service externe. Vous pouvez ensuite créer d'autres comptes depuis l'interface d'administration et sélectionner un modèle par défaut parmi ceux listés par Ollama.

  7. Brancher n8n sur l'API Ollama

    Dans n8n (https://n8n.votre-domaine.com), créez un workflow et ajoutez un nœud HTTP Request. Configurez-le ainsi : méthode POST, URL http://ollama:11434/api/generate, corps JSON {"model": "mistral", "prompt": "{{ $json.prompt }}", "stream": false}. n8n communique avec Ollama via le réseau Docker interne — aucune clé API, aucun quota externe. Ce nœud est natif à n8n et documenté sur n8n.io/integrations.

RAM juste : charger le modèle à la demande

Par défaut, Ollama garde le modèle en mémoire pendant 5 minutes après la dernière requête, puis le décharge. Ce comportement est configurable via la variable OLLAMA_KEEP_ALIVE. Sur un VPS à 8 Go, fixer OLLAMA_KEEP_ALIVE=0 libère la RAM entre les appels n8n planifiés — utile si Open WebUI et n8n ne tournent pas simultanément à pleine charge. À l'inverse, un OLLAMA_KEEP_ALIVE=-1 maintient le modèle en mémoire en permanence pour des réponses sans délai de chargement.

Sécuriser la stack avant de l'exposer

Une stack IA self-hosted traite des données sensibles : prompts, clés de workflow, historiques de conversation. Avant toute exposition publique, vérifiez trois points. Premièrement, fermez le port 11434 d'Ollama sur l'hôte (ufw deny 11434) — il ne doit être accessible que depuis le réseau Docker interne, jamais depuis l'extérieur. Un port LLM ouvert expose l'API de génération sans authentification. Deuxièmement, changez le mot de passe d'authentification de n8n dans les variables d'environnement ; l'accès HTTP Basic est activé par défaut dans la configuration ci-dessus, mais optez pour un mot de passe long et aléatoire. Troisièmement, activez l'authentification dans Open WebUI : par défaut, toute personne atteignant l'URL peut créer un compte — limitez les inscriptions en désactivant ENABLE_SIGNUP une fois vos comptes créés. Les volumes Docker (ollama_data, webui_data, n8n_data) doivent être inclus dans vos sauvegardes régulières ; ils contiennent l'intégralité de l'état de la stack.

Profils de VPS pour la stack

Faites défiler le tableau

ProfilRAMCas d'usage recommandé
VPS Start4 GBTest et développement — modèles légers (Phi-3 Mini, Gemma 2B)
VPS Power8 GBUsage modéré — Mistral 7B, un ou deux utilisateurs simultanés
VPS Business16 GBStack complète — Mistral 7B ou Llama 3 8B, équipe, workflows n8n planifiés

Cas d'usage : automatiser un pipeline de résumé avec n8n

Un cas d'usage concret illustre la valeur de la stack assemblée. Imaginez un workflow n8n déclenché par un Webhook : il reçoit l'URL d'un article, récupère le texte via un nœud HTTP, puis l'envoie à Ollama pour résumé. Le nœud HTTP Request pointe sur http://ollama:11434/api/generate avec le modèle mistral et un prompt du type Résume ce texte en 3 points clés : {{$json.text}}. La réponse est parsée et renvoyée dans Slack, par e-mail ou versée dans une base de données — selon les nœuds suivants du workflow. Ce type de pipeline — scraping → LLM → action — ne nécessite aucune clé API externe, tourne en continu sur votre VPS, et consomme zéro coût par token. D'autres pipelines courants : classification de tickets de support entrants, génération de descriptions produit à partir de fiches brutes, ou encore extraction d'entités dans des documents contractuels. Dans tous ces cas, la donnée ne quitte pas votre infrastructure. Pour des pipelines plus complexes impliquant des documents PDF ou des bases vectorielles, vous pouvez ajouter Flowise ou LangFlow sur le même réseau Docker, en branchant Ollama comme fournisseur d'inférence commun.

La documentation officielle

Chaque outil dispose de sa documentation de référence pour la configuration avancée : Ollama sur GitHub, documentation Open WebUI et documentation n8n. Ce guide couvre l'assemblage sur VPS ; les docs éditeurs restent la référence pour les options avancées, les mises à jour majeures et les cas d'usage spécifiques à chaque outil.

Votre stack IA open source sur un VPS ServOrbit

Un VPS `{{vps.business.name}}` (8 vCPU, 16 GB RAM, accès root, IPv4 dédiée) tient la stack complète Ollama + Open WebUI + n8n. Datacenters européens, SSD NVMe, scalabilité verticale à la demande. À partir de `{{vps.start.price}}`/mois.

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