Installer un serveur n8n

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

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *