Introduction
n8n (prononce "n-eight-n") :
- Editeur visuel (drag & drop) pour creer des workflows
- 400+ nodes prets (Gmail, Slack, GitHub, Stripe, Notion, PostgreSQL...)
- Custom code en JavaScript / Python
- Webhooks entrants et sortants
- Schedules (cron)
- AI nodes (OpenAI, Anthropic, etc.)
- Multi-tenant (Workflows + Credentials)
- Mode self-hosted (gratuit) ou cloud
Cas d'usage : sync CRM, alertes Slack, ETL leger, automation marketing, scraping, traitement de mails.
Prerequis
- VPS Linux 2 vCPU, 2 Go RAM
- Docker + Docker Compose
- Nom de domaine
- Acces root
Etape 1 : Structure
sudo mkdir -p /opt/n8n
cd /opt/n8n
Etape 2 : docker-compose.yml
sudo nano docker-compose.yml
services:
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: unless-stopped
environment:
- N8N_HOST=n8n.votre-domaine.fr
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.votre-domaine.fr/
- GENERIC_TIMEZONE=Europe/Paris
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=secret-fort
- N8N_ENCRYPTION_KEY=cle-aleatoire-32-chars
volumes:
- n8n_data:/home/node/.n8n
- ./files:/files
depends_on:
- postgres
ports:
- "127.0.0.1:5678:5678"
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: secret-fort
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
Generez N8N_ENCRYPTION_KEY :
openssl rand -hex 16
Etape 3 : Demarrer
sudo docker compose up -d
sudo docker compose logs -f
Etape 4 : Reverse proxy Nginx
server {
listen 443 ssl http2;
server_name n8n.votre-domaine.fr;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_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 86400;
}
}
sudo certbot --nginx -d n8n.votre-domaine.fr
Etape 5 : Premier acces
Visitez https://n8n.votre-domaine.fr. Creez le compte owner (premier utilisateur).
Etape 6 : Premier workflow
Workflows > New > Add first step.
Exemple : surveiller un GitHub repo et poster sur Slack quand une issue est ouverte.
- Node trigger :
GitHub Trigger> eventissues> authentifiez avec un Personal Access Token - Node action :
Slack> authentifiez via OAuth ou webhook URL - Configurez le message :
New issue in {{$json.repository.name}} : {{$json.issue.title}}
Cliquez Execute Workflow pour tester, puis Active pour passer en prod.
Etape 7 : Webhook trigger
Pour recevoir des donnees de l'exterieur :
- Ajoutez un node
Webhook - Notez l'URL generee (production URL)
- Methode : POST
- Active
Testez :
curl -X POST https://n8n.votre-domaine.fr/webhook/abc123 \
-H "Content-Type: application/json" \
-d '{"name":"test","value":42}'
n8n declenchera le workflow.
Etape 8 : Schedule trigger
Pour executer toutes les heures :
- Node
Schedule Trigger - Rule :
Hours - Hours Between Triggers : 1
Pour cron precis :
- Mode :
Cron Expression - Expression :
0 9 * * MON-FRI(9h du lundi au vendredi)
Etape 9 : Code custom
Node Code :
const items = $input.all();
const result = items.map(item => ({
json: {
upper: item.json.name.toUpperCase(),
timestamp: new Date().toISOString()
}
}));
return result;
Acces aux nodes precedents : $('NodeName').first().json.field.
Etape 10 : AI nodes (Anthropic / OpenAI)
n8n integre des nodes LLM :
- Ajoutez le node
OpenAIouAnthropic - Configurez votre API key
- Choisissez le modele (gpt-4, claude-3-5-sonnet, etc.)
- Construisez le prompt avec interpolation :
{{$json.email_body}}
Cas d'usage : resume automatique de mails, classification, generation de reponses.
Etape 11 : Credentials securises
n8n stocke vos credentials chiffres avec N8N_ENCRYPTION_KEY.
Settings > Credentials. Type d'auth :
- API Key
- OAuth2 (Google, Slack, etc.)
- Basic Auth
- HTTP Bearer Token
- SSH Private Key
⚠️ Sauvegardez l'encryption key. Sans elle, impossible de recuperer les credentials d'une sauvegarde.
Etape 12 : Backup
PostgreSQL :
sudo docker compose exec postgres pg_dump -U n8n n8n | gzip > n8n-db-$(date +%F).sql.gz
Volume Docker :
sudo docker run --rm -v opt-n8n_n8n_data:/data -v $PWD:/backup busybox tar czf /backup/n8n-data-$(date +%F).tar.gz /data
⚠️ Sauvegardez aussi docker-compose.yml et notez N8N_ENCRYPTION_KEY.
Etape 13 : Mise a jour
cd /opt/n8n
sudo docker compose pull
sudo docker compose up -d
n8n applique automatiquement les migrations DB.
Depannage
Workflow ne se declenche pas
- Verifiez qu'il est Active
- Webhook : utilisez l'URL
Production(pasTest) - Cron : verifiez le timezone (
GENERIC_TIMEZONE)
"Encryption key changed"
Vous avez perdu la cle d'encryption. Sans elle, impossible de dechiffrer les credentials stockes. Re-creez-les manuellement.
OOM kill
Augmentez la RAM. n8n peut etre gourmand sur des workflows lourds. Limitez via :
deploy:
resources:
limits:
memory: 2G
Webhook timeout sur Cloudflare
Augmentez le timeout Cloudflare ou utilisez le webhook URL direct (pas Cloudflare).
"Cannot connect to database"
docker compose logs postgres
Verifiez les credentials et que postgres est UP avant n8n.
Commandes utiles
# Logs
sudo docker compose logs -f n8n
# Restart
sudo docker compose restart n8n
# Voir les workflows actifs (via REST API)
curl -X GET https://n8n.votre-domaine.fr/api/v1/workflows \
-H "X-N8N-API-KEY: VOTRE_KEY"
# Activer/desactiver via API
curl -X POST https://n8n.votre-domaine.fr/api/v1/workflows/123/activate \
-H "X-N8N-API-KEY: VOTRE_KEY"
# Export/Import
n8n export:workflow --all --output=workflows.json
n8n import:workflow --input=workflows.json
Conclusion
n8n vous offre :
- Automatisation sans code (ou avec JS leger)
- Plus de 400 integrations
- Webhooks et schedules robustes
- AI nodes pour automatisation intelligente
- Self-hosted = controle total des donnees
Pour aller plus loin :
- Combinez avec Bookstack pour documenter vos workflows
- Activez Queue mode (Redis) pour de la scalabilite
- Pour de la production critique, considerez n8n Cloud (managed)
Ressources
- Documentation officielle : https://docs.n8n.io
- Templates de workflows : https://n8n.io/workflows
- Community : https://community.n8n.io
- Source : https://github.com/n8n-io/n8n


















