Installer n8n avec Docker : persistance et premier démarrage

Schéma d’un n8n local avec Docker Compose, volume persistant et port limité à localhost.

Installer n8n avec Docker est une bonne porte d’entrée si vous voulez tester l’automatisation dans un conteneur isolé. Le but n’est pas de publier un serveur sur Internet, mais de créer une instance locale, persistante et compréhensible.

Prérequis Docker Compose

La documentation actuelle de n8n privilégie Docker Compose pour construire une configuration contrôlée. Vérifiez d’abord Docker Engine et Compose v2 avec la commande officielle docker compose version.

Sur Windows, gardez le projet dans WSL si vous suivez l’approche Compose. Cela limite les problèmes de droits, chemins et performances liés aux dossiers partagés.

Version, secrets et volume

Évitez latest si vous voulez un environnement reproductible. Renseignez une version vérifiée dans les releases officielles au moment de l’installation, ou laissez explicitement une variable N8N_VERSION à compléter après vérification.

Le volume persistant est le cœur du setup. Il conserve le dossier .n8n. Sauvegardez aussi la clé de chiffrement du fichier .env, car changer cette clé après coup peut rendre des identifiants inutilisables.

Périmètre local

Pour un premier démarrage, mappez le port sur 127.0.0.1. Docker rappelle que les ports publiés sont mappés vers les adresses de l’hôte. Évitez donc d’écouter partout si l’objectif est seulement de tester.

Un webhook public, un reverse proxy et un nom de domaine sont des sujets séparés. Commencez par valider que n8n démarre, s’arrête et reprend avec ses données.

Arrêter, reprendre, sauvegarder

Utilisez docker compose up -d pour démarrer et docker compose down pour arrêter sans supprimer les volumes. Ne lancez pas de commande de suppression de volume sans sauvegarde préalable.

Une sauvegarde utile couvre le volume, le compose et le fichier .env. Si vous sauvegardez seulement le conteneur, vous ne sauvegardez pas forcément ce qui compte.

Exemple minimal

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:${N8N_VERSION:?renseigner une version stable}
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY:?definir un secret personnel}
    volumes:
      - n8n_data:/home/node/.n8n
volumes:
  n8n_data:

Liens utiles dans le même périmètre : logiciels d’automatisation. webhook n8n.

Décision simple

La bonne décision est celle qui réduit le risque réel : comprendre ce qui est stocké, ce qui est exposé, ce qui est facturé et ce qui devra être maintenu. Si l’un de ces points n’est pas clair, mieux vaut garder le périmètre local ou pilote avant de généraliser.

Ce que cet exemple installe réellement

Le fichier minimal ci-dessus est une proposition pour découvrir l’éditeur local, pas une reproduction de la pile Compose complète recommandée dans la documentation actuelle. Celle-ci ajoute notamment des services sandbox et SearXNG pour n8n Assistant. Notre exemple ne les installe pas et ne promet donc pas le fonctionnement complet d’Assistant ni l’exécution isolée de code généré. Pour ces fonctions, suivez la configuration officielle complète et ses précautions.

Créez un dossier de projet contenant compose.yml et un fichier .env. Dans ce dernier, définissez N8N_VERSION avec une version stable existante choisie dans les releases n8n, puis N8N_ENCRYPTION_KEY avec un secret aléatoire personnel, long et conservé en lieu sûr. Ne copiez pas un secret d’exemple et ne versionnez pas ce fichier. Les expressions avec 😕 dans le Compose font échouer le démarrage si ces valeurs sont absentes, plutôt que de lancer une configuration incomplète.

Vérifier le premier démarrage

Depuis ce dossier, lancez docker compose config –quiet pour vérifier la configuration sans afficher les secrets, puis docker compose up -d. Consultez docker compose ps et, en cas d’échec, docker compose logs n8n. Ouvrez ensuite http://localhost:5678 sur la machine concernée et suivez la création du compte propriétaire. Ces commandes sont proposées comme procédure ; elles n’ont pas été exécutées pour cet article.

Créez un workflow de démonstration sans données sensibles, sauvegardez-le, arrêtez puis redémarrez le service. Vérifiez que le compte et le workflow sont toujours présents. Pour une sauvegarde du volume SQLite, arrêtez le service avant la copie afin de ne pas copier une base en cours d’écriture. Testez la restauration sur une instance séparée avant de considérer cette sauvegarde comme utilisable.

Sources et méthode

Article documentaire, sans essai pratique réalisé pour cette publication. Les exemples sont des propositions à adapter, non des résultats mesurés. Documentation consultée : docs.n8n.io — install-using-docker-compose; docs.docker.com — port-publishing.

Restez connectés avec Gridpak chaque semaine

Recevez nos meilleures analyses technologiques directement par email. Une sélection claire et concise, idéale pour suivre l’actualité numérique sans perdre de temps précieux.