N8N est un logiciel d'automatisation tout comme Make ou en Zappier mais avec l'avantage d'être open source et de proposer une version communautaire auto-hébergée. La plateforme propose moins d'intégrations natives que ses concurrents mais est parfois préférée pour ses possibilités et son fonctionnement particulier qui plaît au geeks comme moi. L'UI est je pense moins bonne que chez les concurrents mais je me sens personnellement moins limité dessus qu'ailleurs.

Dans ce guide, nous allons installer N8N avec Docker Compose et Caddy afin d'y avoir accès gratuitement et de façon illimitée.

Récupération de la configuration

Après avoir installé docker (j'explique comment faire ici si besoin), nous allons récupérer quelques fichiers depuis Github pour configurer notre installation.

Pour cela, voici la commande permettant de cloner ce que j'ai chez moi.

git clone https://github.com/tim-tiret/n8n-docker-caddy.git

Rendons nous ensuite dans le dossier créé.

cd n8n-docker-caddy

Modification des paramètres

Fichier d'environnement

Ici, je vous recommande de mettre à jour le fichier .env avec vos informations en remplaçant le <directory-path>, le nom de domaine, l'adresse e-mail, peut-être le fuseau horaire si besoin et éventuellement le sous domaine.

nano .env

Par exemple :

DATA_FOLDER=/root/n8n-docker-caddy

DOMAIN_NAME=timtiret.com

SUBDOMAIN=n8n

# l'exemple ci-dessus donnera : https://n8n.timtiret.com

GENERIC_TIMEZONE=Europe/Berlin

SSL_EMAIL=contact@timotion.fr

Fermez et enregistrez ce fichier à l'aide de ctrl + x, puis y puis Entrée.

Fichier Caddy

On va maintenant mettre à jour la configuration de Caddy pour répondre au bon nom de domaine et qu'il crée automatiquement le certificat SSL (pour HTTPS).

nano caddy_config/Caddyfile

Remplacez simplement le domaine et le sous domaine par les vôtres. Par exemple :

n8n.timtiret.com {
    reverse_proxy n8n:5678 {
      flush_interval -1
    }
}

De la même manière que précédemment, vous pouvez fermer et enregistrer le fichier mis à jour.

Créer les volumes

C'est le moment de créer le volumes qui seront utilisés par docker pour stocker les données de n8n et de Caddy, voici les commandes à exécuter :

sudo docker volume create caddy_data
sudo docker volume create n8n_data

Lancement des conteneurs

⚠️
Attention ! Avant de lancer le docker compose, je vous recommande vivement de configurer le DNS de votre nom de domaine de sorte à ce qu'il pointe vers l'IP de votre serveur VPS (enregistrement A qui pointe vers le sous domaine choisi), sinon Caddy risque de demander en boucle des certificats SSL et d'écouler votre quota chez Let's Encrypt vous obligeant à attendre au moins 24h pour recommencer.

Pour démarrer le tout, il ne reste plus qu'une commande à lancer...

docker compose up -d

Quelques secondes plus tard, votre N8N devrait être disponible à l'adresse que vous avez indiqué, félicitations ! 🎉

Mises à jour

Parce que vous aurez certainement besoin de mettre à jour votre N8N sans perdre vos données, voici un lien vers le tutoriel que j'ai réalisé à ce sujet.

Sauvegardes

Pour passer en production, je suppose qu'il est inutile de vous expliquer pourquoi c'est essentiel... Voici mon article à ce sujet.

Installer N8N en auto-hébergé sur un VPS (Self-Hosted)