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:
# 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:
# 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 n8nBackup 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:
# 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-*.sqlAutomatizando 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:
#!/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:
# 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$ runstack deploy --plan starter
Não quer configurar manualmente?
Não quer configurar manualmente? Implante o n8n em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.