Como atualizar o n8n (Docker Compose)
Siga o tutorial com cautela e faça backup de seu sistema inteiro antes de atualizar, por garantia e salve os arquivos de banco de dados manualmente também.
1. Preparação
- Confirme que o n8n está rodando via Docker Compose e que utiliza volumes persistentes (normalmente é o volume
n8n_n8n_data
). - Confira seus volumes com:
docker volume ls
- Clientes da BH Servers: O volume de dados normalmente já vem criado como
n8n_n8n_data
. Não remova esse volume para manter seus dados após atualização.
2. Backup antes de atualizar
Como notamos que as atualizações podiam resultar em perda de dados, para assegurar, vamos considerar um backup antes.
Faça um backup do volume (mesmo que esteja vazio) e dos dados atuais do container:
# Crie pasta de backup mkdir -p /root/backups
# Descubra o ID do container
docker ps
# Backup da pasta interna do n8n (onde ficam workflows, banco, etc.)
docker exec -it <CONTAINER_ID> sh -lc 'tar czf /tmp/n8n_root_dotn8n.tgz -C /root .n8n' docker cp <CONTAINER_ID>:/tmp/n8n_root_dotn8n.tgz /root/backups/
<CONTAINER_ID> pode ser o ID mesmo em número ou o nome que você pegou em docker ps.
#No caso da BH Servers seria:
docker exec -it n8n_n8n_1 sh -lc 'tar czf /tmp/n8n_root_dotn8n.tgz -C /root .n8n' docker cp n8n_n8n_1:/tmp/n8n_root_dotn8n.tgz /root/backups/
# Backup do volume
docker run --rm -v n8n_n8n_data:/data -v /root/backups:/backup alpine sh -lc 'tar czf /backup/n8n_volume_$(date +%F_%H%M).tgz -C /data .'
3. Migrar dados para o volume (se ainda não estiverem lá)
Algumas instalações gravam em /root/.n8n
em vez de no volume. Para garantir que o volume n8n_n8n_data
tenha os dados, rode:
docker exec -it <CONTAINER_ID> sh -lc 'mkdir -p /home/node/.n8n && cp -a /root/.n8n/. /home/node/.n8n/ && chown -R node:node /home/node/.n8n'
#BH Servers
docker exec -it n8n_n8n_1 sh -lc 'mkdir -p /home/node/.n8n && cp -a /root/.n8n/. /home/node/.n8n/ && chown -R node:node /home/node/.n8n'
4. (Opcional) Criar link para não perder dados durante esta execução
Esse link garante que mesmo se o n8n procurar em /root/.n8n
, ele use o volume:
docker exec -it CONTAINER_ID sh -lc 'rm -rf /root/.n8n && ln -s /home/node/.n8n /root/.n8n'
#BH Servers
docker exec -it n8n_n8n_1 sh -lc 'rm -rf /root/.n8n && ln -s /home/node/.n8n /root/.n8n'
5. Entrar na pasta do docker-compose
Acesse a pasta onde está o docker-compose.yml
:
cd /caminho/do/compose
- Clientes da BH Servers: O padrão é
cd ~/n8n
oucd /root/n8n
, pois o arquivodocker-compose.yml
fica nesse diretório na instalação padrão.
6. Baixar a nova imagem
Via linha de comando (escolha a versão que deseja):
# Última versão estável docker pull n8nio/n8n # Versão específica docker pull n8nio/n8n:1.81.0 # Versão beta (next) docker pull n8nio/n8n:next
7. Atualizar com Docker Compose
Risco: Aqui seus dados podem ser perdidos. tenha certeza que salvou seu backup.
Com o backup feito, siga com a atualização:
docker-compose pull docker-compose up -d
8. Se a atualização não aplicar
docker-compose down docker system prune -a docker-compose up -d
9. Recuperando seu conteúdo
Aqui é onde recuperamos o conteúdo:
# Recriar o link simbólico para o volume
docker exec -it n8n_n8n_1 sh -lc 'rm -rf /root/.n8n && ln -s /home/node/.n8n /root/.n8n'
# Reiniciar o container para aplicar
docker restart n8n_n8n_1
Pronto! Após isso, o n8n volta a enxergar todos os seus dados normalmente.
10. Conferindo
- Acesse o painel do n8n em
http://SEU-IP:5678
e verifique se tudo está funcionando normalmente. - Confirme que os dados (workflows, credenciais, histórico) continuam no painel.
- Clientes da BH Servers: O volume padrão é
n8n_n8n_data
e o container costuma se chamarn8n_n8n_1
(veja comdocker ps -a
).
Resumo rápido
- Faça backup (container + volume).
- Garanta que os dados estejam no volume
n8n_n8n_data
. - Entre na pasta do projeto:
cd /caminho/do/compose
. - Baixe a nova imagem
docker pull n8nio/n8n
(ou usedocker-compose pull
). - Atualize com
docker-compose up -d
(não use-v
). - Se não atualizar, rode
docker system prune -a
e suba novamente. - Acesse
http://SEU-IP:5678
e confirme os dados.