Como fazer backup do n8n (e restaurar)

Para fazer backup completo do n8n você precisa salvar dois componentes: o volume Docker com os dados da aplicação (workflows, credenciais, histórico) e, se estiver usando PostgreSQL, um dump do banco. Salvar apenas um dos dois não permite restauração total, um backup sem o outro está incompleto.

O que entra no backup

O n8n armazena dados em dois lugares dependendo da configuração de banco: no modo padrão usa SQLite (arquivo .db dentro do volume Docker); em produção usa PostgreSQL externo. Identifique qual modo está usando:

bash
# Ver variáveis de ambiente do container em execução
docker inspect n8n | grep -i "DB_TYPE\|database"

# Se DB_TYPE não aparecer, o n8n está usando SQLite (padrão)

Backup do volume Docker (SQLite e arquivos de configuração)

O volume Docker contém o banco SQLite, credenciais encriptadas e configurações internas. Para um backup limpo, pare o container antes de copiar, assim evita inconsistência no arquivo do banco:

bash
# Parar apenas o n8n (mantém o banco Postgres rodando se existir)
docker compose stop n8n

# Criar arquivo tar do volume nomeado
docker run --rm   -v n8n_data:/data   -v $(pwd):/backup   alpine tar czf /backup/n8n-backup-$(date +%F).tar.gz -C /data .

# Reiniciar o n8n
docker compose start n8n

Backup do PostgreSQL com pg_dump

Se estiver usando PostgreSQL, faça o dump do banco em SQL portável. Você pode rodar pg_dump diretamente de dentro do container postgres:

bash
# Dump completo do banco n8n (rodar com o postgres ativo)
docker compose exec postgres   pg_dump -U n8n -d n8n --no-password   > n8n-db-backup-$(date +%F).sql

# Verificar o arquivo gerado
ls -lh n8n-db-backup-*.sql

Automatizando o backup com cron

Para backup diário automático, crie um script e agende via cron. O script abaixo salva volume + banco e mantém os últimos 7 dias:

bash
#!/bin/bash
# /opt/n8n-backup.sh
set -euo pipefail

BACKUP_DIR="/opt/backups/n8n"
DATE=$(date +%F)
mkdir -p "$BACKUP_DIR"

# Backup do volume
docker run --rm   -v n8n_data:/data   -v "$BACKUP_DIR":/backup   alpine tar czf "/backup/volume-$DATE.tar.gz" -C /data .

# Dump PostgreSQL (se aplicável)
docker compose -f /opt/n8n/docker-compose.yml exec -T postgres   pg_dump -U n8n -d n8n > "$BACKUP_DIR/db-$DATE.sql"

# Apagar backups com mais de 7 dias
find "$BACKUP_DIR" -mtime +7 -delete

echo "Backup concluído: $DATE"

Como restaurar o backup

Para restaurar em caso de falha ou migração para outro servidor:

bash
# 1. Subir o stack sem o n8n (só o postgres)
docker compose up -d postgres

# 2. Restaurar o banco (se PostgreSQL)
cat n8n-db-backup-2026-06-07.sql |   docker compose exec -T postgres   psql -U n8n -d n8n

# 3. Restaurar o volume Docker
docker run --rm   -v n8n_data:/data   -v $(pwd):/backup   alpine tar xzf /backup/n8n-backup-2026-06-07.tar.gz -C /data

# 4. Subir o n8n
docker compose up -d n8n

Não quer configurar manualmente?

Implante o n8n em menos de 5 minutos com a Runstack. Infraestrutura da OPEN Datacenter, com servidores em São Paulo.

Perguntas frequentes

Para ambientes de produção com workflows ativos, backup diário é o mínimo razoável. Se os workflows geram dados críticos ou executam operações financeiras, considere backup a cada 6 horas com retenção de 30 dias.

Para volume com SQLite, é mais seguro parar o container antes do backup para evitar arquivo corrompido. Para PostgreSQL, o pg_dump faz snapshot consistente sem parar nada, pode rodar com o n8n ativo.

Copie os arquivos de backup para o novo servidor, suba o stack com docker compose, aplique o dump SQL e restaure o volume. As credenciais encriptadas no volume funcionam desde que a chave N8N_ENCRYPTION_KEY seja a mesma entre os servidores.

Se não houver backup, todos os workflows, credenciais e histórico de execuções são perdidos permanentemente. O n8n inicia do zero. Por isso, o backup automatizado e offsite é indispensável antes de colocar em produção.

Sim. Após gerar o arquivo tar/sql, chame rclone copy /opt/backups/n8n remote:bucket/n8n/ para sincronizar com S3, Google Cloud Storage, Backblaze B2 ou qualquer provedor compatível. rclone está disponível no Ubuntu via apt install rclone.