n8n auto-hospedado: forma mais segura de resetar senha de usuário existente sem deletar conta/dados

Descreva o problema/erro/pergunta

Estou executando uma instância n8n auto-hospedada no Docker através do Coolify em uma VM do Google Cloud.

Consigo acessar a página de login do n8n, mas não consigo fazer login. A página “Esqueci minha senha” diz que o email não está configurado, portanto não pode enviar um email de redefinição.

Importante: NÃO quero redefinir o gerenciamento de usuários ou criar uma nova conta se isso remover/substituir o usuário atual. Quero manter a mesma conta existente e preservar todos os workflows, credenciais e dados.

Confirmei que o usuário existente existe no banco de dados SQLite:

adammzannar2009@gmail.com | Adam | Mzannar

Já fiz backup de:

  • /home/node/.n8n/database.sqlite
  • /home/node/.n8n/database.sqlite-wal
  • /home/node/.n8n/database.sqlite-shm

Pergunta:
Qual é a forma mais segura e suportada de alterar/redefinir a senha apenas do usuário existente, sem deletar a conta e sem perder workflows, credenciais ou dados?

Qual é a mensagem de erro (se houver)?

A página Esqueci minha senha diz:

Please contact your admin. n8n isn't set up to send email right now.

Ao tentar métodos manuais, recebi:

Cannot find module 'bcryptjs'

attempt to write a readonly database

sqlite3: not found

Além disso, a rota Coolify/Traefik tinha rótulos de IP antigos obsoletos porque meu IP externo da VM foi alterado. Acessei temporariamente o n8n diretamente através do IP e porta do servidor.

Compartilhe seu workflow

Isso não está relacionado a um workflow específico. É um problema de recuperação de senha/login em auto-hospedagem.

Compartilhe a saída retornada pelo último nó

Não aplicável.

Informações sobre sua configuração n8n

  • versão n8n: 2.13.3
  • Banco de dados (padrão: SQLite): SQLite
  • configuração n8n EXECUTIONS_PROCESS (padrão: own, main): padrão / não tenho certeza
  • Executando n8n via (Docker, npm, n8n cloud, aplicativo desktop): Docker através do Coolify em VM do Google Cloud
  • Sistema operacional: Debian GNU/Linux 12 / VM do Google Cloud

O comando de reset da CLI do n8n fará exatamente isso

Você pode tentar isto?

1. Identifique o Nome do Seu Container

Execute o seguinte comando no terminal da sua VM para encontrar o nome exato do seu container n8n:

docker ps

(Procure pelo container que está rodando a imagem n8n; provavelmente será algo como n8n-nnn ou coolify-yyy).

2. Execute o Comando de Reset

Execute o comando usando o usuário node (o usuário que o n8n roda) para evitar problemas de permissão. Substitua <container_name> pelo nome que você encontrou na etapa 1:

docker exec -u node -it <container_name> n8n user-management:reset

Saída esperada: Successfully reset the database to default user state.

3. Reinicie o Container

Para que as mudanças se propaguem e o assistente de configuração seja acionado, reinicie o container via Coolify ou CLI:

docker restart <container_name>

4. Recupere a Conta

  1. Abra seu navegador em modo Incógnito/Privado (isso é crucial para evitar cookies de sessão obsoletos).
  2. Navegue até sua página de login do n8n.
  3. Você será redirecionado para a página de Configuração do Proprietário.
  4. Digite seu email (adammzannar2009@gmail.com) e escolha uma nova senha.
  5. Faça login. Todos os seus workflows e credenciais estarão lá.

Alternativamente, você pode apenas configurar seu docker para SMTP de email como abaixo

@Adam_Mzannar
se vc puder configurar o smtp no n8n, reiniciar a instância e clicar em resetar a senha, existem grandes chances de funcionar. NÃO USE docker exec -u node -it <container_name> n8n user-management:reset; isso vai fazer o que vc não quer.

N8N_EMAIL_MODE=smtp
N8N_SMTP_HOST=smtp.gmail.com
N8N_SMTP_PORT=587
N8N_SMTP_USER=seu-email@gmail.com
N8N_SMTP_PASS=sua-app-password-do-google
N8N_SMTP_SENDER=seu-email@gmail.com
N8N_SMTP_SSL=false
N8N_SMTP_STARTTLS=true

Por quê? Não

O seguinte objetivo também é alcançado

Há algo que eu possa ter perdido?

Bem-vindo @Adam_Mzannar à nossa comunidade! Sou Jay e sou um criador verificado do n8n.

Você pode atualizar o hash da senha diretamente no banco de dados SQLite sem tocar em nenhum outro dado de usuário. Pare o container do n8n primeiro, depois execute: sqlite3 /path/to/database.sqlite "UPDATE user SET password='$2b$10$NEW_HASH' WHERE email='your@email.com';"Gere o hash bcrypt com custo 10 usando qualquer ferramenta bcrypt (por exemplo, node -e "const b=require('bcryptjs'); console.log(b.hashSync('newpassword', 10))"). Reinicie o container e faça login com a nova senha. Apenas a coluna de senha muda - todos os fluxos de trabalho, credenciais e configurações permanecem intactos.

O OP já mencionou

oi Kjooleng! pela pesquisa que fiz, esse comando faz o reset de tudo, tanto , ele não quer isso: “NÃO quero redefinir o gerenciamento de usuários ou criar uma nova conta se isso remover/substituir o usuário atual”

Não vai porque

De qualquer forma, vou deixar o OP decidir

Oi @kjooleng
de acordo com a documentação, a ação retorna o user management ao estado pré-configuração e remove todas as contas de usuário. Workflows/credenciais podem permanecer no banco mas as contas de usuário são removidas/recriadas

Reset Admin Password on Locally Hosted n8n - Perguntas - n8n Community

A abordagem mais segura para redefinir a senha de um usuário específico sem afetar outras contas: atualizar diretamente o campo password na tabela user do seu banco de dados. Gere um hash bcrypt da nova senha (use qualquer ferramenta bcrypt ou um script Node.js único: require('bcryptjs').hash('newpassword', 10)), depois execute UPDATE user SET password = '<hash>' WHERE email = 'user@example.com' no SQLite ou Postgres. Isso afeta apenas o campo de senha desse usuário e nada mais - sem exclusão de conta, sem impacto nas credenciais.