Dans ce tutoriel, nous verrons comment installer une instance n8n avec docker compose.
Qu’est ce que n8n ?
n8n est une plateforme d’automatisation de workflow « no-code » qui permet de connecter facilement différentes applications et services entre eux. n8n est l’abréviation de « node node », un jeu de mots qui fait référence à la nature de la plateforme qui consiste à connecter des « nœuds » (nodes) représentant différentes applications et services pour créer des workflows automatisés.

Avec une interface visuelle intuitive, n8n permet aux utilisateurs de créer des workflows complexes sans nécessiter de compétences en programmation approfondies, automatisant ainsi des tâches répétitives et optimisant des processus métier. Son architecture flexible et extensible en fait un outil puissant pour l’intégration d’applications et l’automatisation des flux de données.
Installation
Installez docker.io
sudo apt update && sudo apt install docker.io -y
Installez docker compose v2
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose-cli/releases/download/v2.0.0-rc.1/docker-compose-linux-amd64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
Créez le dossier n8n
mkdir n8n
cd n8n
Créez un fichier docker-compose.yml
nano docker-compose.yml
Collez ce contenu
version: "3.9"
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "${N8N_PORT:-5678}:${N8N_PORT:-5678}"
environment:
- N8N_HOST=${N8N_HOST}
- N8N_PORT=${N8N_PORT:-5678}
- N8N_PROTOCOL=${N8N_PROTOCOL:-http}
- N8N_EMAIL_MODE=${N8N_EMAIL_MODE:-smtp}
- N8N_EMAIL_SMTP_HOST=${N8N_EMAIL_SMTP_HOST}
- N8N_EMAIL_SMTP_PORT=${N8N_EMAIL_SMTP_PORT}
- N8N_EMAIL_SMTP_USER=${N8N_EMAIL_SMTP_USER}
- N8N_EMAIL_SMTP_PASS=${N8N_EMAIL_SMTP_PASS}
- DB_TYPE=${DB_TYPE:-postgresdb}
- DB_POSTGRESDB_HOST=${DB_POSTGRESDB_HOST}
- DB_POSTGRESDB_PORT=${DB_POSTGRESDB_PORT:-5432}
- DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
- DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
- DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}
- QUEUE_BULL_REDIS_HOST=${QUEUE_BULL_REDIS_HOST}
- QUEUE_BULL_REDIS_PORT=${QUEUE_BULL_REDIS_PORT:-6379}
- GENERIC_SUBDOMAIN=${GENERIC_SUBDOMAIN}
- WEBHOOK_URL=${WEBHOOK_URL}
volumes:
- n8n_data:/home/node/.n8n
postgres:
image: postgres:${POSTGRES_VERSION:-15}
restart: always
ports:
- "${POSTGRES_PORT:-5432}:5432"
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:${REDIS_VERSION:-latest}
restart: always
ports:
- "${REDIS_PORT:-6379}:6379"
volumes:
- redis_data:/data
volumes:
n8n_data:
postgres_data:
redis_data:
Créez le fichier d’environnement
nano .env
Collez ce contenu et personnalisez les champs
# Configuration n8n
N8N_VERSION=latest
N8N_HOST=localhost
N8N_PORT=5678
N8N_PROTOCOL=http # Changez en https si vous utilisez un proxy inversé avec SSL
N8N_EMAIL_MODE=smtp # Changer en 'sendmail' ou 'disabled'
N8N_EMAIL_SMTP_HOST=smtp.example.com
N8N_EMAIL_SMTP_PORT=587
N8N_EMAIL_SMTP_USER=your_email@example.com
N8N_EMAIL_SMTP_PASS=your_password
GENERIC_SUBDOMAIN=n8n
WEBHOOK_URL=https://example.com/
# Configuration PostgreSQL
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=your_postgres_password
POSTGRES_VERSION=15
POSTGRES_PORT=5432
POSTGRES_USER=n8n
POSTGRES_PASSWORD=your_postgres_password
POSTGRES_DB=n8n
# Configuration Redis
QUEUE_BULL_REDIS_HOST=redis
QUEUE_BULL_REDIS_PORT=6379
REDIS_VERSION=latest
REDIS_PORT=6379
Lancez n8n
sudo docker compose up -d
Facultatif : Configurer un proxy nginx
Créez un nouveau site
sudo nano /etc/nginx/sites-available/n8n.conf
Collez ce contenu et personnalisez les champs
server {
listen 443 ssl;
server_name n8n.example.com;
ssl_certificate /path/to/your/cert.pem
ssl_certificate_key /path/to/your/key.pem
location / {
proxy_pass http://127.0.0.1:5678;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
}
Mettre à jour n8n
Téléchargez la nouvelle image de n8n
sudo docker pull docker.n8n.io/n8nio/n8n
Si docker vous dit que vous avez déjà la dernière version alors que ce n’est pas le cas, vous pouvez forcer la version
Exemple pour la version 1.84.2
sudo docker pull docker.n8n.io/n8nio/n8n:1.84.2
Spécifiez la version dans docker-compose.yml
services:
n8n:
image: docker.n8n.io/n8nio/n8n:1.84.2
Redémarrez votre instance n8n
cd ~/n8n
sudo docker compose down
sudo docker compose up -d
Laisser un commentaire