J’exécute une instance n8n auto-hébergée sur Docker via Coolify sur une VM Google Cloud.
Je peux accéder à la page de connexion de n8n, mais je ne peux pas me connecter. La page « Mot de passe oublié » indique que l’email n’est pas configuré, donc elle ne peut pas envoyer un email de réinitialisation.
Important : Je NE veux PAS réinitialiser la gestion des utilisateurs ou créer un nouveau compte si cela supprime/remplace l’utilisateur actuel. Je veux conserver le même compte existant et préserver tous les workflows, les identifiants et les données.
J’ai confirmé que l’utilisateur existant se trouve dans la base de données SQLite :
adammzannar2009@gmail.com | Adam | Mzannar
J’ai déjà sauvegardé :
/home/node/.n8n/database.sqlite
/home/node/.n8n/database.sqlite-wal
/home/node/.n8n/database.sqlite-shm
Question :
Quelle est la façon la plus sûre et supportée de modifier/réinitialiser le mot de passe de l’utilisateur existant uniquement, sans supprimer le compte et sans perdre les workflows, les identifiants ou les données ?
Quel est le message d’erreur (le cas échéant) ?
La page Mot de passe oublié indique :
Please contact your admin. n8n isn't set up to send email right now.
En essayant des méthodes manuelles, j’ai reçu :
Cannot find module 'bcryptjs'
attempt to write a readonly database
sqlite3: not found
De plus, la route Coolify/Traefik contenait des anciens labels d’IP périmés parce que l’IP externe de ma VM a changé. J’ai temporairement accédé à n8n directement via l’IP du serveur et le port.
Veuillez partager votre workflow
Ceci ne concerne pas un workflow spécifique. C’est un problème de récupération de login/mot de passe auto-hébergé.
Partager la sortie retournée par le dernier nœud
Non applicable.
Informations sur votre configuration n8n
Version n8n : 2.13.3
Base de données (par défaut : SQLite) : SQLite
Paramètre EXECUTIONS_PROCESS de n8n (par défaut : own, main) : par défaut / pas sûr
Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : Docker via Coolify sur VM Google Cloud
Système d’exploitation : Debian GNU/Linux 12 / VM Google Cloud
La commande de réinitialisation n8n CLI fera exactement cela
Pouvez-vous essayer ceci ?
1. Identifiez le nom de votre conteneur
Exécutez la commande suivante sur le terminal de votre VM pour trouver le nom exact de votre conteneur n8n :
docker ps
(Recherchez le conteneur exécutant l’image n8n ; il s’agira probablement de quelque chose comme n8n-nnn ou coolify-yyy).
2. Exécutez la commande de réinitialisation
Exécutez la commande en utilisant l’utilisateur node (l’utilisateur sous lequel n8n s’exécute) pour éviter les problèmes de permissions. Remplacez <container_name> par le nom que vous avez trouvé à l’étape 1 :
@Adam_Mzannar
si tu peux configurer le smtp dans n8n, redémarrer l’instance et cliquer sur réinitialiser le mot de passe, il y a de bonnes chances que ça fonctionne. N’UTILISE PAS docker exec -u node -it <container_name> n8n user-management:reset; ça va faire ce que tu ne veux pas.
Bienvenue @Adam_Mzannar dans notre communauté ! Je suis Jay et je suis un créateur vérifié n8n.
Vous pouvez mettre à jour le hash du mot de passe directement dans la base de données SQLite sans toucher à d’autres données utilisateur. Arrêtez d’abord le conteneur n8n, puis exécutez : sqlite3 /path/to/database.sqlite "UPDATE user SET password='$2b$10$NEW_HASH' WHERE email='your@email.com';". Générez le hash bcrypt avec un coût de 10 en utilisant n’importe quel outil bcrypt (par exemple, node -e "const b=require('bcryptjs'); console.log(b.hashSync('newpassword', 10))"). Redémarrez le conteneur et connectez-vous avec le nouveau mot de passe. Seule la colonne de mot de passe change - tous les workflows, les identifiants et les paramètres restent intacts.
Salut Kjooleng! D’après mes recherches, cette commande réinitialise tout, donc il ne veut pas ça : « JE NE VEUX PAS réinitialiser la gestion des utilisateurs ou créer un nouveau compte si cela supprime/remplace l’utilisateur actuel »
Salut @kjooleng
selon la documentation, cette action ramène la gestion des utilisateurs à l’état de pré-configuration et supprime tous les comptes utilisateur. Les workflows/identifiants peuvent rester dans la base de données mais les comptes utilisateur sont supprimés/recréés
L’approche la plus sûre pour réinitialiser le mot de passe d’un utilisateur spécifique sans toucher à d’autres comptes : mettre à jour directement le champ password dans la table user de votre base de données. Générez un hash bcrypt du nouveau mot de passe (utilisez n’importe quel outil bcrypt ou un script Node.js ponctuel : require('bcryptjs').hash('newpassword', 10)), puis exécutez UPDATE user SET password = '<hash>' WHERE email = 'user@example.com' dans SQLite ou Postgres. Cela ne modifie que le champ de mot de passe de cet utilisateur et rien d’autre - pas de suppression de compte, aucun impact sur les identifiants.