InícioGuias › n8n-self-hosted
Guia

Como fazer backup do n8n self-hosted e restaurar sem perder workflows

Atualizado em 2026-07-21 · por Redação Automação Hoje
Profissional brasileiro fazendo backup do n8n self-hosted pelo terminal do notebook em um servidor VPS
Resposta rápida: Fazer backup do n8n self-hosted significa salvar três coisas: o banco de dados (workflows, credenciais e execuções), a pasta /home/node/.n8n com a chave de criptografia e os arquivos exportados via CLI. Sem a N8N_ENCRYPTION_KEY, o backup das credenciais é inútil — ela precisa ser idêntica na restauração. Com PostgreSQL, o pg_dump resolve o banco; com SQLite, basta copiar o arquivo database.sqlite.
· espaço publicitário ·
Em resumo
  • A N8N_ENCRYPTION_KEY é o item mais crítico: perdeu a chave, perdeu todas as credenciais — não há como recuperar
  • Backup completo tem três camadas: banco de dados, pasta .n8n e export de workflows/credenciais em JSON
  • No PostgreSQL use pg_dump; no SQLite basta copiar o arquivo database.sqlite dentro de .n8n
  • O CLI 'n8n export:workflow --backup' gera um arquivo por workflow, ótimo para versionar no Git
  • Automatize com cron (a cada 2-6h para uso intenso) e mande os arquivos pra fora do servidor
  1. Antes de tudo: salve a chave de criptografia

    Essa é a parte que quase todo tutorial deixa pro fim e que derruba a restauração de gente experiente. Toda credencial do n8n (chave de API, token OAuth, senha de banco, SMTP) é criptografada com a N8N_ENCRYPTION_KEY antes de ir pro banco. Se a chave do servidor novo não bater com a original, os workflows restauram mas as credenciais aparecem quebradas. Ela fica na variável de ambiente N8N_ENCRYPTION_KEY ou, se você não definiu, dentro do arquivo /home/node/.n8n/config. Copie esse valor e guarde num gerenciador de senhas. Não existe reset, master key nem ticket de suporte que recupere uma chave perdida.

  2. Exporte workflows e credenciais pelo CLI

    O n8n tem comandos próprios pra exportar. Para gerar um arquivo por workflow (formato ideal pra versionar): 'n8n export:workflow --backup --output=backups/latest/'. Para as credenciais: 'n8n export:credentials --backup --output=backups/latest/'. Rodando em Docker, prefixe com 'docker exec -u node -it '. Lembre que o export das credenciais sai criptografado com a sua chave — por isso o passo anterior existe.

  3. Faça o dump do banco de dados

    Se você usa PostgreSQL (recomendado em produção), o pg_dump tira uma foto consistente do banco com o n8n rodando: 'docker exec pg_dump -U n8n -d n8n --format=custom > n8n-db-$(date +%Y%m%d).dump'. Um banco com ~50 workflows e uma semana de execuções costuma comprimir pra algo entre 10 e 50 MB. Se você ainda está no SQLite (padrão de instalações simples), o backup é copiar o arquivo /home/node/.n8n/database.sqlite com o container parado.

  4. Copie a pasta .n8n inteira

    O banco não guarda tudo. A pasta /home/node/.n8n (ou o volume Docker n8n_data) contém nós da comunidade que você instalou, dados binários de arquivos processados nos workflows e, de novo, a chave de criptografia. Faça um tar dessa pasta: 'tar -czf n8n-data-$(date +%Y%m%d).tar.gz /home/node/.n8n'. Pular essa camada é a receita clássica de uma restauração 'quase completa' que na hora H não funciona.

  5. Restaure num servidor novo

    Para restaurar: suba um n8n limpo com a MESMA N8N_ENCRYPTION_KEY, restaure o banco (pg_restore para o dump do Postgres, ou solte o database.sqlite na pasta .n8n), reponha a pasta .n8n e reinicie. Se preferir importar via CLI: 'n8n import:workflow --separate --input=backups/latest/' e 'n8n import:credentials --input=backups/latest/'. Atenção: o import sobrescreve workflows e credenciais que tenham o mesmo ID no banco de destino.

  6. Automatize e mande pra fora do servidor

    Backup manual você esquece de fazer. Coloque os comandos num script e agende no cron: '0 */6 * * *' roda a cada 6 horas, '0 */2 * * *' a cada 2 — ajuste pela criticidade. O ponto que muita gente erra: não adianta o backup ficar no mesmo servidor que pode pifar. Mande os arquivos pra um bucket S3/Backblaze, um repositório Git privado (o formato --backup, um arquivo por workflow, foi feito pra isso) ou um FTP remoto.

Por que backup do n8n não é só 'exportar os workflows'

Muita gente acha que baixar os JSONs dos workflows pela interface já é backup. Não é. Isso salva a lógica das automações, mas deixa de fora as credenciais, o histórico de execuções, os nós da comunidade e — o mais perigoso — a chave que decifra tudo. Restaurar só os workflows te devolve os desenhos bonitos e nenhuma conexão funcionando.

O jeito de pensar que funciona é por camadas. O banco de dados guarda workflows, credenciais (criptografadas) e execuções. A pasta .n8n guarda a chave e os binários. E o export via CLI te dá um formato limpo, legível, versionável. Um backup sério toca essas três camadas. Se você está montando a infra do zero, vale casar isso com a escolha certa de servidor — a decisão de VPS influencia até a facilidade de agendar esses backups.

SQLite ou PostgreSQL muda o backup?

Muda, e vale entender. Instalações simples do n8n usam SQLite por padrão: o banco inteiro é um arquivo (database.sqlite) dentro da pasta .n8n. Backup é literalmente copiar esse arquivo — de preferência com o container parado pra não pegar o banco no meio de uma escrita.

Em produção, o recomendado é PostgreSQL, e aí o pg_dump entra em cena. A vantagem prática: ele tira uma cópia consistente sem precisar derrubar o n8n. Se você opera algo que roda automação o tempo todo, essa diferença importa — parar o container a cada backup não é opção. Vale lembrar que rodar sem os limites da versão cloud é justamente uma das razões de estar self-hosted; um backup frágil joga essa vantagem fora.

O erro nº 1 na restauração

Se você restaurar e as credenciais aparecerem com erro, quase sempre é a chave de criptografia. O sintoma é claro: os workflows carregam, mas cada credencial dá falha ao conectar. Antes de sair reconfigurando tudo na mão, cheque se a N8N_ENCRYPTION_KEY do servidor novo é idêntica à do original. Na esmagadora maioria dos casos, é isso.

Por isso a chave vem antes de qualquer coisa neste guia. Gere-a uma vez (o padrão é 'openssl rand -hex 32', que produz 64 caracteres hexadecimais), guarde num cofre de senhas e trate como o item mais valioso da sua instalação — mais até que os próprios workflows, que dá pra recriar. A chave, não.

Perguntas frequentes

Qual é o item mais importante do backup do n8n?
A N8N_ENCRYPTION_KEY. É com ela que o n8n criptografa todas as credenciais antes de gravar no banco. Se você restaurar o banco num servidor com chave diferente, os workflows voltam mas as credenciais ficam inacessíveis — sem reset possível. Guarde a chave num gerenciador de senhas separado do backup.
Preciso parar o n8n para fazer backup?
Com PostgreSQL, não: o pg_dump tira uma cópia consistente com o n8n rodando. Com SQLite, o ideal é parar o container por alguns segundos antes de copiar o arquivo database.sqlite, para não pegar o banco no meio de uma escrita e corromper a cópia.
Como faço backup dos workflows do n8n direto no Git?
Use 'n8n export:workflow --backup --output=pasta/', que gera um arquivo JSON por workflow. Esse formato foi pensado para versionamento: você commita a pasta num repositório Git privado. Muitos times automatizam isso com um cron diário que exporta e faz commit das mudanças.
Com que frequência devo rodar o backup?
Depende do quanto você mexe e do quanto roda. Para uso leve, um backup diário já resolve. Para automações críticas com muitas execuções, agende no cron a cada 2 a 6 horas ('0 */6 * * *' ou '0 */2 * * *'). O importante é que os arquivos saiam do servidor — em bucket, Git remoto ou FTP.
Perdi a chave de criptografia. Consigo recuperar as credenciais?
Não. Não existe reset, master key ou suporte que recupere credenciais criptografadas sem a N8N_ENCRYPTION_KEY original. Você teria que recriar cada credencial manualmente. Por isso a orientação é salvar a chave num cofre de senhas antes mesmo do primeiro backup de banco.

Leia também