Tutoriel N8N Automation pour Ubuntu – De Zéro au Flux
Mots-clés
| Terme | Définition rapide |
|---|---|
| 🚀 N8N | Une plateforme d’automatisation de flux de travail visuelle et basée sur des nœuds pour connecter divers services externes. |
| 🐳 Docker | Un outil de conteneurisation permettant un déploiement et une gestion cohérents et isolés des applications. |
| 🐘 PostgreSQL | Une base de données relationnelle robuste servant de magasin de données principal et persistant pour N8N. |
| 🧩 Node | Un bloc fonctionnel unique dans N8N (par exemple, un déclencheur de données ou une action API) qui exécute une tâche spécifique. |
| 🔄 Workflow | Un processus automatisé configuré construit en reliant plusieurs nœuds ensemble pour gérer des séquences de tâches. |
| 💾 Docker Volume | Un mécanisme de stockage désigné dans Docker utilisé pour sauvegarder de manière persistante les données système en dehors des conteneurs. |
| 🔐 Environment Variable | Des valeurs de configuration sécurisées (conservées dans un fichier .env) injectées de manière sécurisée dans les conteneurs Docker. |
Pourquoi l’automatisation est importante

Les équipes modernes ne « gèrent pas une seule application » — elles exploitent une chaîne d’outils SaaS, de services internes, de magasins de données et de systèmes de chat/alertes. Le coût de cette complexité se manifeste de manière prévisible :
- Transferts manuels et travail répétitif (copier/coller entre systèmes)
- Boucles de réponse lentes (approbations, routage des tickets, notifications d’incidents)
- Résultats incohérents (erreur humaine, étapes manquées, mises à jour partielles)
- Intégrations fragiles (scripts ponctuels sans visibilité ni propriété)
L’automatisation est l’un des moyens les plus efficaces de réduire cette friction. Même les petits flux de travail — synchronisation de données, validation de charges utiles, publication de notifications, mise à jour d’enregistrements — peuvent se transformer en gains significatifs : cycle de temps plus rapide, moins d’erreurs et opérations plus cohérentes. Il est important de noter que « l’automatisation » ne consiste pas seulement à réduire l’effort ; il s’agit aussi de rendre les processus observables et reproductibles.
Ce rapport aborde l’automatisation comme une infrastructure de production : déployez-la correctement, contrôlez la configuration, conservez les données persistantes et vérifiez le comportement avec un flux de travail de test déterministe.
Qu’est-ce que N8N (et pourquoi cela peut devenir votre meilleur ami)

N8N est une plateforme d’automatisation de flux de travail qui vous permet de connecter des services à l’aide d’un éditeur basé sur des nœuds. Vous construisez des flux de travail à partir de « nœuds » (déclencheurs, transformations de données, appels API, opérations de base de données, notifications), puis les exécutez manuellement, selon un calendrier ou via des webhooks.
Ce qui rend n8n particulièrement utile dans un contexte de déploiement Linux :
- Auto-hébergeable : vous pouvez l’exécuter sur votre propre infrastructure pour contrôler les données et la mise en réseau.
- Intégrations extensibles : de nombreux nœuds intégrés, plus des nœuds HTTP génériques pour tout ce qui a une API.
- Convivial opérationnellement : fonctionne bien dans les conteneurs, peut utiliser Postgres pour la persistance et supporte la configuration basée sur l’environnement.
- Bon pour l’adoption progressive : commencez par des flux de travail simples, puis renforcez l’accès (proxy inverse + HTTPS) et les pratiques opérationnelles au fur et à mesure que l’utilisation augmente.
Dans cette évaluation, n8n est traité comme un service que vous pourriez réellement exécuter : les choix de déploiement et la configuration sont documentés avec un parti pris vers la clarté, la reproductibilité et le « renforcement futur » (sans sur-ingénierie de la configuration initiale).
Auto-héberger votre propre instance N8N
Prêt à essayer ? La configuration nécessite quelques étapes techniques, mais ne vous inquiétez pas — suivez ce guide et vous aurez votre première instance N8N opérationnelle en un rien de temps.
Ce tutoriel utilise Ubuntu 22.04, exécuté sur un VPS fourni par AlexHost.
Configuration Docker
Il existe plusieurs façons de configurer n8n. Pour ce tutoriel, nous utilisons Docker car il fournit une approche claire et fiable pour gérer et configurer n8n.
Tout d’abord, assurez-vous que docker et docker compose sont installés sur votre système.
# Check for docker
docker -v
# Check for docker compose
docker compose
Si cela retourne une version, vous êtes prêt.
Si vous ne l’avez pas installé, suivez simplement cette page pour les instructions : guide d’installation. Assurez-vous de sélectionner le bon système d’exploitation que vous utilisez.
Structure du projet
L’organisation appropriée des fichiers est essentielle pour la clarté et la maintenabilité à long terme. Par convention, les services Docker sont généralement placés dans le répertoire /opt. Dans celui-ci, un dossier docker_services a été créé pour stocker tous les services, y compris N8N.
# Create all the needed folders
sudo mkdir -p /opt/docker_services/n8n
# Navigate to n8n folder
cd /opt/docker_services/n8n
Ajout du fichier docker compose
Pour lancer notre instance n8n et sa base de données backend, nous utiliserons un fichier compose.yaml. Nous choisissons PostgreSQL plutôt que le SQLite par défaut car il fournit un magasin de données beaucoup plus robuste et prêt pour la production pour la configuration et les journaux d’exécution.
Créez le fichier à l’aide d’un éditeur de texte comme nano :
nano compose.yaml
Collez la configuration suivante dans le fichier :
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
env_file:
- .env
volumes:
- ./data:/home/node/.n8n
- ./files:/files
depends_on:
- postgres
postgres:
image: postgres:15
restart: always
env_file:
- .env
volumes:
- ./postgres-data:/var/lib/postgresql/data
Comprendre la configuration :
| Composant | Description |
|---|---|
| Services | Exécute deux conteneurs : n8n (l’application principale) et postgres:15. L’utilisation de Postgres est fortement préférée au SQLite par défaut. n8n en dépend nativement pour démarrer en premier. |
| Politique de redémarrage | Utilise restart: always afin que les conteneurs redémarrent automatiquement au démarrage du système ou s’ils plantent. |
| Ports | Expose le port 5678 afin que vous puissiez accéder à l’interface web n8n. |
| Environnement | Les deux services chargent la configuration à partir d’un fichier .env partagé pour gérer de manière sécurisée les variables telles que les identifiants de base de données. |
| Volumes | Lie les répertoires de l’hôte local aux chemins des conteneurs pour maintenir les données persistantes : • ./data → configurations n8n (/home/node/.n8n) • ./files → stockage de fichiers (/files) • ./postgres-data → Base de données (/var/lib/postgresql/data) |
Avant de démarrer les conteneurs, vous devez créer explicitement les répertoires nécessaires afin qu’ils soient prêts à être mappés :
# Use your own path if different
cd /opt/docker_services/n8n
mkdir data files postgres-data
Propriété des répertoires et permissions
Par défaut, lorsque Docker crée automatiquement des répertoires hôtes pour vos volumes (comme nos dossiers data et files), il attribue la propriété à l’utilisateur root. Cependant, pour des raisons de sécurité, le conteneur n8n abandonne intentionnellement les privilèges et s’exécute en tant qu’utilisateur non-root (spécifiquement, UID 1000).
Si ces dossiers restent propriété de root, n8n ne pourra pas enregistrer sa configuration ou ses fichiers de base de données, ce qui causera l’arrêt du conteneur au démarrage avec une erreur « permission refusée ». Pour éviter ce problème, nous accordons explicitement la propriété de ces répertoires à l’utilisateur correct avant de démarrer le service.
# Set ownership of the volume directories to UID/GID 1000
sudo chown -R 1000:1000 data files
Ajout du fichier .env
Docker utilise le fichier .env pour transmettre les configurations système et les secrets à nos conteneurs sans les coder en dur dans notre compose.yaml.
Créez le fichier dans le même répertoire :
nano .env
Collez la configuration suivante (assurez-vous de remplacer example.com et le mot de passe de la base de données par vos propres valeurs sécurisées) :
# n8n Settings
DOMAIN_NAME=example.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Europe/Chisinau
N8N_HOST=n8n.example.com
N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n.example.com/
N8N_SECURE_COOKIE=false
NODE_ENV=production
# PostgreSQL
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=changeme123
Comprendre les variables d’environnement :
| Variable | Description |
|---|---|
| Domaine et hôte | Définit DOMAIN_NAME, SUBDOMAIN, et N8N_HOST. Ceux-ci sont essentiels pour mapper l’application n8n à une URL spécifique (comme n8n.example.com), permettant l’accès externe via DNS. |
| Fuseau horaire | GENERIC_TIMEZONE définit le fuseau horaire spécifiquement pour le processus d’application Node.js afin que la planification et les horodatages des journaux soient précis pour votre région. |
| Protocoles et Webhook | N8N_PROTOCOL et WEBHOOK_URL configurent la façon dont n8n interagit avec le monde extérieur. Ceci est crucial si vous intégrez des services qui nécessitent une URL de rappel. |
| Cookie sécurisé | N8N_SECURE_COOKIE est défini sur false car nous exécutons sans proxy inverse HTTPS localement par défaut. Si vous configurez SSL/HTTPS ultérieurement via un proxy externe, vous pouvez supprimer cette ligne afin qu’elle soit définie par défaut sur true. |
| Environnement de nœud | NODE_ENV doit être strictement défini sur production. Cela optimise le serveur Node.js sous-jacent pour les performances plutôt que pour le débogage, indépendamment des étapes de déploiement réelles. |
| Identifiants de base de données | POSTGRES_DB, USER, et PASSWORD sont utilisés lors du démarrage initial pour créer la base de données PostgreSQL et authentifier les connexions ultérieures. Utilisez toujours des mots de passe personnalisés forts ici. |
Enregistrez et fermez le fichier. Vous disposez maintenant de toute la configuration nécessaire pour exécuter votre pile Docker Compose.
Démarrage des services docker
Accédez à votre répertoire de projet et mettez tous les services en ligne en arrière-plan.
# Use your own path if different
cd /opt/docker_services/n8n
docker compose up -d
Docker extrait les images nécessaires et démarre vos conteneurs. Une fois en cours d’exécution, n8n sera disponible sur le port 5678 (par défaut), ou sur votre domaine configuré si vous utilisez un proxy inverse.
Pour confirmer que cela fonctionne correctement, vérifiez si les conteneurs n8n et postgres sont listés et en cours d’exécution.
docker ps
Travailler avec N8N
Une fois que les services s’exécutent avec succès, c’est enfin le moment passionnant de commencer à explorer N8N !
Accéder à N8N
N8N est accessible via un navigateur web. Dans cette configuration locale, il est disponible à l’URL suivante : http://localhost:5678.
Lors du premier accès, une page de connexion s’affiche avec des champs courants à remplir.

Configurer la clé de licence
Initialement, N8N affiche une fenêtre proposant une clé de licence gratuite qui déverrouille les fonctionnalités payantes. Oui, vous l’avez bien entendu : des fonctionnalités payantes gratuitement ! C’est l’un des avantages d’exécuter une instance N8N auto-hébergée.

Une fois que vous avez reçu la clé de licence par email, vous pouvez accéder à Paramètres->Utilisation et Plan pour l’activer.

Création du premier flux de travail
Les nouveaux flux de travail peuvent être créés directement à partir de la page principale. Voir l’image ci-dessous.

Pour le premier cas d’utilisation, deux nœuds seront utilisés :
- Déclencheur manuel : démarre le flux de travail manuellement.
- Nœud Set : définit et fonctionne avec les champs et leurs valeurs.
Le nœud Déclencheur manuel ne nécessite aucune configuration, tandis que le nœud Set en nécessite une. Dans notre cas, l’objectif est de produire un message indiquant « n8n works » ainsi que l’horodatage de l’événement. Le nœud Set est donc configuré comme indiqué dans l’image ci-dessous.

Une fois que les deux nœuds sont connectés et configurés, nous démarrons le flux de travail en appuyant sur le bouton Exécuter le flux de travail.


Félicitations 👏, votre premier flux de travail N8N a été exécuté avec succès !
“`html
Et ensuite ?
Cette configuration initiale n’est que le début. La véritable puissance de N8N se déverrouille lorsque vous commencez à connecter vos outils quotidiens pour automatiser les tâches répétitives et réduire les frictions. Par exemple, vous pouvez créer des workflows pour synchroniser automatiquement les nouveaux leads de votre site web dans un CRM, acheminer les alertes urgentes et les erreurs de service critiques vers un chat d’équipe, ou sauvegarder périodiquement les données de diverses plateformes SaaS dans votre base de données. Les possibilités d’automatiser vos opérations et de simplifier votre charge de travail quotidienne sont presque infinies.
“`
Conclusion
En complétant ce guide, vous avez déployé avec succès une plateforme puissante et auto-hébergée capable de transformer la façon dont vous gérez vos opérations quotidiennes. Merci de nous avoir suivis dans cette configuration ! Alors que vous continuez à explorer ce que N8N peut faire, assurez-vous de consulter nos autres tutoriels pour découvrir encore plus d’outils incroyables et utiles. Quand vous serez prêt à évoluer ou à vous lancer dans de nouveaux projets passionnants, n’oubliez pas qu’AlexHost fournit toute l’infrastructure robuste dont vous avez besoin pour héberger vos services de manière fiable.
sur tous les services d'hébergement