> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-fr/plateformes-et-agents-ia/n8n.md).

# Workflows IA n8n

## Aperçu

[n8n](https://github.com/n8n-io/n8n) est une plateforme d'automatisation de workflows en code équitable avec **55K+ étoiles sur GitHub**. Contrairement aux alternatives entièrement propriétaires (Zapier, Make), n8n vous permet d'auto-héberger l'ensemble de la pile — avec un contrôle complet des données — tout en offrant des capacités natives d'agents IA, un nœud de code JavaScript/Python et une bibliothèque croissante de plus de 400 intégrations.

Sur **Clore.ai**, n8n lui-même fonctionne sur CPU (aucun GPU requis), mais s'associe puissamment à des services accélérés par GPU comme Ollama ou vLLM exécutés sur le même serveur, vous offrant une pile d'automatisation IA entièrement locale. Vous pouvez avoir une instance n8n en production fonctionnant pour moins de **0,10–0,20 $/heure**.

**Principales capacités :**

* 🔗 **400+ intégrations** — Slack, GitHub, Google Sheets, Postgres, requête HTTP, webhooks, et bien plus
* 🤖 **Nœuds Agent IA** — agents intégrés propulsés par LangChain avec utilisation d'outils et mémoire
* 💻 **Nœuds de code** — exécutez du JavaScript ou du Python arbitraire en ligne dans les workflows
* 🔄 **Variété de déclencheurs** — webhooks, planifications cron, sondage de base de données, e-mail, événements de file d'attente
* 📊 **Sous-workflows** — composants de workflow modulaires et réutilisables
* 🔐 **Coffre-fort d'identifiants** — stockage chiffré pour clés API et jetons OAuth
* 🏠 **Auto-hébergé** — vos données ne quittent jamais votre serveur

***

## Exigences

n8n est une application Node.js empaquetée en tant qu'image Docker. Il est **CPU uniquement** — aucun GPU nécessaire pour le moteur d'automatisation lui-même. Un GPU devient utile uniquement si vous exécutez un LLM local à côté (par ex. Ollama).

| Configuration                     | GPU         | VRAM  | RAM système | Disque | Prix Clore.ai    |
| --------------------------------- | ----------- | ----- | ----------- | ------ | ---------------- |
| **Minimale** (seulement n8n)      | Aucun / CPU | —     | 2 Go        | 10 Go  | ≈ 0,03 $/h (CPU) |
| **Standard**                      | Aucun / CPU | —     | 4 Go        | 20 Go  | ≈ 0,05 $/h       |
| **+ LLM local (Ollama)**          | RTX 3090    | 24 Go | 16 Go       | 60 Go  | \~0,20 $/h       |
| **+ LLM à haut débit**            | A100 40 GB  | 40 Go | 32 Go       | 100 Go | ≈ 0,80 $/h       |
| **Kit de démarrage IA (complet)** | RTX 4090    | 24 Go | 32 Go       | 100 Go | \~0,35 $/h       |

> **Conseil :** Le [Kit de démarrage IA n8n auto-hébergé](https://github.com/n8n-io/self-hosted-ai-starter-kit) regroupe n8n + Ollama + Qdrant + PostgreSQL en une seule pile Docker Compose. Voir [Kit de démarrage IA](#ai-starter-kit-recommended) ci-dessous.

***

## Démarrage rapide

### 1. Louez un serveur Clore.ai

Connectez-vous à [clore.ai](https://clore.ai) et déployez un serveur :

* **Instance uniquement CPU** si vous avez seulement besoin de l'automatisation n8n
* **RTX 3090/4090** si vous voulez des LLM locaux via Ollama
* Exposer le port **5678** dans les paramètres de mappage de ports de l'offre
* Activer l'accès SSH

### 2. Connectez-vous au serveur

```bash
ssh root@<ip-serveur-clore> -p <port-ssh>

# Vérifier que Docker est installé
docker --version
docker compose version
```

### 3. Option A — Démarrage minimal en conteneur unique

La façon la plus rapide de lancer n8n :

```bash
# Créez un volume nommé pour la persistance
docker volume create n8n_data

# Exécuter n8n
docker run -d \
  --name n8n \
  --restart unless-stopped \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e N8N_HOST=<ip-du-serveur-clore> \
  -e N8N_PORT=5678 \
  -e N8N_PROTOCOL=http \
  -e WEBHOOK_URL=http://<ip-du-serveur-clore>:5678/ \
  docker.n8n.io/n8nio/n8n

# Vérifiez les logs
docker logs -f n8n
```

Accédez à l'interface à `http://<ip-du-serveur-clore>:5678`

### 4. Option B — Docker Compose avec Postgres (production)

Pour une utilisation en production, remplacez SQLite par Postgres :

```bash
mkdir n8n-prod && cd n8n-prod
cat > docker-compose.yml << 'EOF'
version: "3.8"

services :
  postgres :
    image : postgres:15-alpine
    restart : unless-stopped
    environment :
      POSTGRES_USER : n8n
      POSTGRES_PASSWORD : n8npassword   # Changez ceci !
      POSTGRES_DB : n8n
    volumes :
      - postgres_data:/var/lib/postgresql/data
    healthcheck :
      test : ["CMD-SHELL", "pg_isready -U n8n"]
      intervalle : 10s
      timeout : 5s
      retries : 5

  n8n :
    image : docker.n8n.io/n8nio/n8n
    restart : unless-stopped
    depends_on :
      postgres :
        condition : service_healthy
    ports :
      - "5678:5678"
    environment :
      DB_TYPE : postgresdb
      DB_POSTGRESDB_HOST : postgres
      DB_POSTGRESDB_PORT : 5432
      DB_POSTGRESDB_DATABASE : n8n
      DB_POSTGRESDB_USER : n8n
      DB_POSTGRESDB_PASSWORD : n8npassword
      N8N_HOST : <ip-du-serveur-clore>
      N8N_PORT : 5678
      N8N_PROTOCOL : http
      WEBHOOK_URL : http://<ip-du-serveur-clore>:5678/
      N8N_ENCRYPTION_KEY : votre-cle-de-chiffrement-de-32-caracteres-ici
      EXECUTIONS_MODE : regular
      N8N_BASIC_AUTH_ACTIVE : "true"
      N8N_BASIC_AUTH_USER : admin
      N8N_BASIC_AUTH_PASSWORD : changez-moi !
    volumes :
      - n8n_data:/home/node/.n8n

volumes :
  postgres_data :
  n8n_data :
EOF

docker compose up -d
docker compose logs -f n8n
```

***

## Kit de démarrage IA (Recommandé)

Le [Kit de démarrage IA n8n auto-hébergé](https://github.com/n8n-io/self-hosted-ai-starter-kit) est le chemin le plus rapide vers une pile complète d'automatisation IA locale. Il inclut :

* **n8n** — automatisation de workflows
* **composant Ollama** — inférence LLM locale (GPU ou CPU)
* **Qdrant** — base de vecteurs pour RAG
* **PostgreSQL** — stockage persistant

```bash
# Clonez le kit de démarrage
git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit

# Pour les serveurs compatibles GPU (RTX 3090, 4090, A100, etc.)
docker compose --profile gpu-nvidia up -d

# Pour les serveurs CPU uniquement
docker compose --profile cpu up -d

# Surveillez le démarrage
docker compose logs -f

# Récupérez un modèle dans Ollama (après le démarrage de la pile)
docker exec ollama ollama pull llama3:8b
docker exec ollama ollama pull nomic-embed-text  # Pour les embeddings
```

Services après le démarrage :

| Service          | URL                           |
| ---------------- | ----------------------------- |
| Interface n8n    | `http://<ip> :5678`           |
| API Ollama       | `http://<ip> :11434`          |
| Interface Qdrant | `http://<ip> :6333/dashboard` |

> **Remarque :** Ollama avec GPU nécessite le [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html), que les serveurs Clore.ai ont préinstallé.

***

## Configuration

### Référence des variables d'environnement

```bash
# ── Paramètres principaux ───────────────────────────────────────────────────────
N8N_HOST=0.0.0.0                  # Adresse de liaison
N8N_PORT=5678                     # Port d'écoute
N8N_PROTOCOL=http                 # http ou https
WEBHOOK_URL=http://<ip>:5678/     # URL de base publique des webhooks (critique !)

# ── Chiffrement ───────────────────────────────────────────────────────────────
N8N_ENCRYPTION_KEY=<clé-de-32-caractères>  # Chiffre les identifiants stockés
# Générer : openssl rand -hex 16

# ── Authentification ──────────────────────────────────────────────────────────
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=votre-mot-de-passe-sécurisé

# ── Paramètres d'exécution ─────────────────────────────────────────────────────
EXECUTIONS_MODE=regular           # regular (simple) ou queue (avec Redis)
EXECUTIONS_DATA_SAVE_ON_SUCCESS=all
EXECUTIONS_DATA_SAVE_ON_ERROR=all
EXECUTIONS_DATA_MAX_AGE=336       # Conserver les données d'exécution pendant 14 jours

# ── Fuseau horaire ────────────────────────────────────────────────────────────
GENERIC_TIMEZONE=UTC

# ── Désactiver la télémétrie (optionnel) ───────────────────────────────────────
N8N_DIAGNOSTICS_ENABLED=false
N8N_VERSION_NOTIFICATIONS_ENABLED=false
```

### Connexion de n8n à Ollama pour les agents IA

Une fois Ollama en cours d'exécution sur le même serveur :

1. Dans n8n, ajoutez un nouvel identifiant : **API Ollama**
   * URL de base : `http://ollama:11434` (si vous utilisez Compose) ou `http://localhost:11434`
2. Dans un workflow, ajoutez un **Agent IA** nœud
3. Sous **Modèle de chat**, sélectionnez Ollama et choisissez votre modèle (par ex. `llama3:8b`)
4. Ajoutez des outils comme **Requête HTTP**, **Postgres**, ou **Code** nœuds
5. Exécutez !

***

## Conseils et bonnes pratiques

### Optimisation des coûts sur Clore.ai

```bash
# Exportez tous les workflows avant d'arrêter votre instance
# Utilisez l'interface CLI n8n à l'intérieur du conteneur :
docker exec n8n n8n export:workflow --all --output=/home/node/.n8n/workflows-backup.json

# Copiez la sauvegarde vers la machine locale
docker cp n8n:/home/node/.n8n/workflows-backup.json ./n8n-workflows-backup.json

# Importez sur une nouvelle instance :
docker exec n8n n8n import:workflow --input=/home/node/.n8n/workflows-backup.json
```

### Fiabilité des webhooks sur Clore.ai

Les serveurs Clore.ai ont des IP dynamiques. Si vos webhooks se cassent après un redéploiement :

```bash
# 1. Utilisez un domaine statique avec Caddy + Let's Encrypt
# Caddyfile :
# n8n.votredomaine.com {
#     reverse_proxy n8n:5678
# }

# 2. Ou utilisez Cloudflare Tunnel (gratuit, aucun port ouvert requis) :
docker run -d \
  --name cloudflared \
  --network n8n-prod_default \
  cloudflare/cloudflared:latest \
  tunnel --no-autoupdate run \
  --token <votre-token-de-tunnel-cloudflare>
```

### Mode file d'attente pour les workflows à fort volume

```bash
# Ajoutez Redis et exécutez n8n en mode queue pour une exécution parallèle
# Ajoutez au docker-compose.yml :
  redis :
    image : redis:7-alpine
    restart : unless-stopped

  n8n-worker :
    image : docker.n8n.io/n8nio/n8n
    command : worker
    depends_on : [redis, postgres]
    environment :
      << : *n8n-env
      EXECUTIONS_MODE : queue
      QUEUE_BULL_REDIS_HOST : redis
```

### Commandes CLI n8n utiles

```bash
# Lister tous les workflows
docker exec n8n n8n list:workflow

# Exécuter manuellement un workflow spécifique
docker exec n8n n8n execute --id=<id-du-workflow>

# Mettre à jour n8n vers la dernière version
docker pull docker.n8n.io/n8nio/n8n
docker compose up -d n8n

# Vérifier la version de n8n
docker exec n8n n8n --version
```

### Renforcement de la sécurité

```bash
# Exécutez n8n derrière un proxy inverse avec HTTPS
# N'exposez jamais le port 5678 directement en production
# Utilisez N8N_BASIC_AUTH ou configurez le SSO via LDAP/SAML

# Restreignez les nœuds autorisés (mode liste blanche) :
NODE_FUNCTION_ALLOW_EXTERNAL=axios,lodash
NODES_EXCLUDE='["n8n-nodes-base.executeCommand"]'  # Bloquer l'exécution de shell
```

***

## Dépannage

### Le conteneur n8n se ferme immédiatement

```bash
docker logs n8n

# Problèmes courants :
# 1. Échec de la connexion à la BD — vérifiez que Postgres est sain
docker compose ps postgres

# 2. Incompatibilité de la clé de chiffrement — si vous avez changé N8N_ENCRYPTION_KEY
#    Les identifiants deviennent illisibles ; ressaisissez-les après le changement de clé

# 3. Conflit de port
ss -tlnp | grep 5678
```

### Les webhooks renvoient 404

```bash
# Assurez-vous que WEBHOOK_URL correspond à l'adresse publique utilisée par les expéditeurs de webhooks
# Elle doit inclure la barre oblique finale
WEBHOOK_URL=http://<votre-ip-publique>:5678/

# Redémarrez n8n après avoir modifié cette variable d'env
docker compose restart n8n
```

### Le nœud Agent IA ne peut pas joindre Ollama

```bash
# Testez depuis l'intérieur du conteneur n8n
docker exec n8n wget -qO- http://ollama:11434/api/tags
# ou
docker exec n8n curl http://localhost:11434/api/tags

# Si vous utilisez des conteneurs séparés qui ne sont pas dans le même réseau Compose :
# Utilisez host.docker.internal ou l'IP LAN du serveur
```

### "ENOSPC : plus d'espace disponible sur le périphérique"

```bash
# Vérifiez l'utilisation du disque
df -h
docker system df

# Élaguer les anciennes données d'exécution dans l'UI n8n :
# Paramètres → Exécutions → Supprimer les anciennes exécutions

# Ou définissez l'élagage automatique :
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=72   # 72 heures
```

### Exécution lente des workflows

```bash
# Vérifiez l'utilisation CPU
top -c

# Activez le mode queue pour une exécution parallèle (voir conseils ci-dessus)
# Augmentez la mémoire Node.js si nécessaire :
NODE_OPTIONS=--max-old-space-size=4096
```

***

## Lectures complémentaires

* [Documentation officielle n8n](https://docs.n8n.io)
* [Dépôt GitHub n8n](https://github.com/n8n-io/n8n)
* [Kit de démarrage IA n8n auto-hébergé](https://github.com/n8n-io/self-hosted-ai-starter-kit)
* [Guide d'installation Docker n8n](https://docs.n8n.io/hosting/installation/docker/)
* [Exécuter Ollama sur Clore.ai](/guides/guides_v2-fr/modeles-de-langage/ollama.md)
* [Comparaison GPU Clore.ai](/guides/guides_v2-fr/prise-en-main/gpu-comparison.md)
* [Forum communautaire n8n](https://community.n8n.io)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-fr/plateformes-et-agents-ia/n8n.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
