Auteur/autrice : janskibh

  • Installer un serveur n8n

    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