Guide d’ajout de MongoDB et Mongo Express à une installation n8n existante via Docker
Ce document détaille la procédure pour ajouter une base de données MongoDB et une interface d’administration web (Mongo Express) à une stack Docker existante où n8n est déjà opérationnel. L’accès à Mongo Express sera restreint au serveur local pour des raisons de sécurité.
Cette intégration suppose une instance n8n opérationnelle.
2. Prérequis
- Une instance n8n fonctionnelle, gérée par un fichier
docker-compose.yml. - Un accès
rootousudoau serveur hébergeant Docker.
3. Fichiers de Configuration
La procédure consiste à créer un fichier .env pour les identifiants et à modifier votre docker-compose.yml existant.
3.1. Fichier d’Environnement (.env)
Si vous n’en avez pas déjà un, créez ce fichier dans le même répertoire que votre docker-compose.yml.
# // .env
# // Variables d'environnement pour le service MongoDB.
# Identifiants pour l'utilisateur root de MongoDB.
MONGO_ROOT_USER=votre_utilisateur_mongo
MONGO_ROOT_PASSWORD=votre_mot_de_passe_securise
3.2. Modification du Fichier Docker Compose (docker-compose.yml)
Vous devez apporter trois modifications à votre fichier docker-compose.yml existant.
A. Modifier le service n8n existant : Ajoutez les directives networks et depends_on pour que n8n puisse communiquer avec le nouveau réseau de la base de données.
# // Extrait du docker-compose.yml - Modification du service n8n
services:
n8n:
# ... votre configuration n8n existante ...
networks:
- traefik_proxy # Conserve son réseau public
- internal_db_net # AJOUT : Connexion au nouveau réseau interne
depends_on:
- mongodb # AJOUT : S'assure que mongodb démarre avant n8n
B. Ajouter les nouveaux services mongodb et mongo-express : Collez ces deux nouveaux services à la suite de votre service n8n, au même niveau d’indentation.
# // Extrait du docker-compose.yml - Ajout des nouveaux services
mongodb:
image: mongo:latest
container_name: mongodb
restart: always
env_file: .env
environment:
- MONGO_INITDB_ROOT_USERNAME=${MONGO_ROOT_USER}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
volumes:
- mongodb_data:/data/db
networks:
- internal_db_net # Isolé sur le réseau interne
mongo-express:
image: mongo-express:latest
container_name: mongo-express
restart: always
env_file: .env
environment:
- ME_CONFIG_MONGODB_ADMINUSERNAME=${MONGO_ROOT_USER}
- ME_CONFIG_MONGODB_ADMINPASSWORD=${MONGO_ROOT_PASSWORD}
- ME_CONFIG_MONGODB_SERVER=mongodb
ports:
# Map le port interne 8081 à un port libre sur le serveur (ex: 9091).
- "9091:8081"
networks:
- internal_db_net # Isolé sur le réseau interne
depends_on:
- mongodb
C. Déclarer les volumes et le nouveau réseau : À la fin du fichier, assurez-vous que les volumes et les réseaux sont correctement déclarés.
# // Extrait du docker-compose.yml - Déclaration des volumes et réseaux
volumes:
n8n_data:
external: true
mongodb_data: {} # AJOUT : Nouveau volume pour les données MongoDB
networks:
traefik_proxy:
external: true
internal_db_net: # AJOUT : Nouveau réseau interne
driver: bridge
4. Procédure de Mise à Jour
- Sauvegarder les modifications de votre fichier
docker-compose.yml. - Appliquer la nouvelle configuration. Docker va créer les nouveaux services et recréer le service n8n pour l’ajouter au nouveau réseau.
docker compose up -d --force-recreate
5. Accès à l’Interface d’Administration Mongo Express
L’accès à l’interface se fait via un tunnel SSH pour garantir que le trafic ne quitte pas un canal sécurisé.
- Créer le tunnel SSH. Exécutez cette commande depuis votre machine locale (pas le serveur), en remplaçant l’IP et le port si vous l’avez modifié.
ssh -L 9091:localhost:9091 root@<IP_PUBLIQUE_DU_SERVEUR> - Laissez cette session SSH active. Le tunnel se fermera si vous la terminez.
- Accéder à l’interface. Ouvrez un navigateur web sur votre machine locale et allez à l’URL suivante :
http://localhost:9091 - Se connecter. Mongo Express expose des identifiants par défaut (
admin:pass). Pour un accès local via tunnel SSH, leur utilisation est acceptable. Il est néanmoins recommandé d’utiliser les identifiants définis dans le fichier.env(MONGO_ROOT_USERetMONGO_ROOT_PASSWORD).
6. Configuration de la Connexion dans n8n
- Créer les « Credentials ».
- Dans l’interface n8n, allez à
Credentials > Add credential. - Recherchez et sélectionnez
Mongo DB. - Remplissez les champs comme suit :
- Host:
mongodb(le nom du service Docker) - Database:
admin(utilisé uniquement pour valider la connexion initiale) - User: La valeur de
MONGO_ROOT_USERde votre fichier.env. - Password: La valeur de
MONGO_ROOT_PASSWORDde votre fichier.env.
- Host:
- Dans l’interface n8n, allez à
- Utiliser une base de données spécifique dans un workflow.
- Dans un nœud MongoDB (ex: « Insert documents »), spécifiez la base de données et la collection dans le champ Collection en utilisant la syntaxe
nom_de_la_base.nom_de_la_collection. - Exemple :
base_de_cache.resultats_api
- Dans un nœud MongoDB (ex: « Insert documents »), spécifiez la base de données et la collection dans le champ Collection en utilisant la syntaxe


