Héberger soi-même n8n avec Docker Compose : guide complet pour serveurs allemands

Comment installer n8n avec Docker Compose : Postgres au lieu de SQLite, .env, volumes et mises à jour étape par étape.

n8n peut être installé sur son propre serveur avec Docker Compose en quelques étapes : vous créez un fichier compose et un fichier .env avec les identifiants, définissez un volume pour les données persistantes et démarrez la stack avec une seule commande. Pour un usage en production, la plupart des exploitants passent de la base de données SQLite fournie à PostgreSQL, car plusieurs workflows s'exécutant simultanément et des sauvegardes régulières fonctionnent ainsi de manière plus fiable. Cet article présente la structure du fichier compose, les variables d'environnement nécessaires, les volumes et le déroulement des mises à jour. État : juillet 2026.

Comment installer n8n avec Docker Compose ?

L'installation se fait via un fichier compose.yaml qui démarre le conteneur n8n, combiné à un fichier .env pour les valeurs spécifiques au serveur. Sur un serveur Linux, vérifiez d'abord si Docker et Docker Compose sont installés, par exemple avec les commandes docker --version et docker compose version. Ensuite, créez un répertoire de projet avec le compose.yaml, le fichier .env et un sous-dossier local-files pour l'échange de fichiers entre n8n et l'hôte. Le démarrage se fait avec la commande docker compose up -d, après quoi n8n est accessible via le domaine configuré ou, pour une installation simple à conteneur unique sans reverse proxy, à l'adresse http://localhost:5678. La documentation officielle de n8n propose pour cela une configuration prête à l'emploi avec Docker Compose, qui inclut également Traefik comme reverse proxy pour les certificats TLS.

SQLite ou PostgreSQL : quelle base de données choisir ?

Par défaut, n8n utilise SQLite et stocke les identifiants, les workflows et l'historique d'exécution sans configuration supplémentaire dans le fichier database.sqlite du répertoire .n8n. Pour passer à PostgreSQL, définissez les variables d'environnement appropriées dans le fichier compose, comme décrit dans la documentation sur le choix de la base de données.

  • DB_TYPE: à définir sur postgresdb pour remplacer SQLite
  • DB_POSTGRESDB_HOST et DB_POSTGRESDB_PORT : adresse et port du serveur Postgres
  • DB_POSTGRESDB_DATABASE: nom de la base de données, valeur par défaut n8n
  • DB_POSTGRESDB_USER et DB_POSTGRESDB_PASSWORD : identifiants de la base de données
  • DB_POSTGRESDB_SCHEMA: schéma au sein de la base de données, valeur par défaut public

Important : même avec PostgreSQL, le volume pour le répertoire /home/node/.n8n reste nécessaire, car la clé de chiffrement des identifiants s'y trouve toujours.

Que doit contenir le fichier .env ?

Le fichier .env regroupe toutes les valeurs qui diffèrent d'un serveur à l'autre, afin que le compose.yaml lui-même reste inchangé. Selon le guide officiel sur l'installation Docker, au moins les variables suivantes doivent y figurer.

  • DOMAIN_NAME et SUBDOMAIN : déterminent ensemble l'adresse à laquelle n8n est accessible, par exemple n8n.exemple.fr
  • GENERIC_TIMEZONE et TZ : contrôlent le fuseau horaire des nodes de planification et des commandes système
  • SSL_EMAIL: adresse de contact pour l'émission automatique de certificats via Traefik
  • N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: doit être défini sur true pour sécuriser les droits des fichiers de configuration

Comme ce fichier contient des mots de passe et des identifiants, il n'a pas sa place dans un dépôt Git public.

Quels volumes et répertoires n8n nécessite-t-il ?

Pour un fonctionnement durable, plusieurs emplacements de stockage sont importants et doivent être conservés à chaque redémarrage.

  • n8n_data: monté sur /home/node/.n8n, contient la base de données SQLite, si utilisée, ainsi que la clé de chiffrement
  • traefik_data: stocke les certificats TLS si vous utilisez le reverse proxy fourni
  • local-files: répertoire local sur l'hôte pour l'échange de fichiers, relié via la variable N8N_RESTRICT_FILE_ACCESS_TO

Sans ces volumes, les workflows, les identifiants et les certificats sont perdus à chaque reconstruction du conteneur.

Comment mettre à jour n8n avec Docker Compose ?

Une mise à jour se fait via trois commandes dans le répertoire du fichier compose : docker compose pull télécharge la nouvelle version de l'image, docker compose down arrête la stack en cours d'exécution et docker compose up -d la redémarre avec l'image actuelle. Les volumes restent inchangés, de sorte que les workflows et les identifiants sont conservés. Celui qui souhaite fixer une version précise au lieu de se mettre à jour automatiquement vers la dernière version stable peut indiquer un tag de version concret dans le compose.yaml, par exemple selon la documentation docker.n8n.io/n8nio/n8n:1.81.0, au lieu du tag next pour les versions bêta instables. Celui qui veut une configuration propre dès le départ a intérêt à planifier soigneusement une fois plutôt que de réparer des problèmes de serveur plus tard. C'est exactement ce que prend en charge NordFlux dans le cadre de la configuration n8n à prix fixe, y compris le choix entre SQLite et PostgreSQL adapté à l'usage réel.

Questions fréquentes sur n8n Docker Compose

Ai-je besoin de mon propre domaine pour exploiter n8n avec Docker Compose ?

Non, ce n'est pas obligatoire. Pour une installation simple à conteneur unique, un volume mappé et le port 5678 suffisent, n8n est alors accessible localement à l'adresse http://localhost:5678. Un domaine ne devient nécessaire que si vous souhaitez utiliser la configuration décrite dans le guide officiel avec Traefik comme reverse proxy et un certificat TLS automatique.

Où n8n stocke-t-il mes identifiants et mes workflows ?

Tout se trouve dans le volume monté qui pointe vers le répertoire /home/node/.n8n dans le conteneur. C'est là que se trouve le fichier de base de données en cas d'utilisation de SQLite, et, quel que soit le choix de la base de données, également la clé de chiffrement des identifiants enregistrés. Sans ce volume, toutes les données sont perdues au prochain redémarrage du conteneur.

Comment mettre à jour n8n sans perte de données ?

La séquence docker compose pull, docker compose down et docker compose up -d met à jour l'image sans toucher aux volumes. Comme les workflows, les identifiants et la base de données se trouvent dans les volumes, ils sont conservés lors de la mise à jour. Avant des sauts de version importants, il vaut néanmoins la peine de consulter les notes de version, car les variables d'environnement peuvent changer d'une version à l'autre.

Puis-je choisir entre une version fixe de n8n et la version bêta ?

Oui, les images Docker sont publiées avec différents tags. Un tag de version concret comme 1.81.0 fixe une version stable, tandis que le tag next fournit la version bêta instable pour ceux qui souhaitent tester les nouvelles fonctionnalités à l'avance. Pour les serveurs de production, un tag de version fixe est le choix le plus fiable.

À propos de NordFlux

NordFlux UG (haftungsbeschränkt)

NordFlux construit des employés numériques pour les organisations : des automatisations et des agents KI qui prennent en charge le travail répétitif. Vous gardez le contrôle.

En savoir plus sur nous
Analyse initiale gratuite

Des questions concrètes sur l’automatisation ou l’IA ?

Lors d’une analyse initiale gratuite, nous discutons directement de votre cas. Sans engagement.