Backup do Chatwoot automático com n8n: banco e anexos
Para fazer backup do Chatwoot de forma automática, eu uso um fluxo no n8n que entra na VPS por SSH, gera um dump do banco Postgres, compacta os anexos e salva tudo com data e hora no nome, de hora em hora.
Quem roda o Chatwoot no próprio servidor ganha liberdade, mas também fica com a responsabilidade pelos dados. Sem um backup do Chatwoot, uma VPS que cai, uma fatura esquecida ou uma atualização que dá errado podem apagar meses de conversas, contatos e anexos dos seus clientes.
Neste artigo eu mostro esse fluxo passo a passo, explico de quanto em quanto tempo rodar, os erros que mais aparecem e como mandar uma cópia para fora do servidor. O vídeo foi gravado em junho de 2025:
Por que fazer backup do Chatwoot
O Chatwoot é multiempresa e foi feito para ser revendido. Se você atende clientes com ele, o banco de dados é o seu negócio. A gente nunca instala pensando em problema, mas eles acontecem:
- a VPS cai ou o provedor apaga o servidor por falta de pagamento;
- uma atualização do Chatwoot dá erro e você precisa voltar atrás;
- você quer migrar para outra hospedagem.
Com o banco e os arquivos em mãos, você sobe o Chatwoot em outro lugar.
O que entra no backup
O fluxo cuida de duas coisas.
O banco de dados. Ele faz um dump do Postgres, que reúne o banco inteiro num arquivo SQL que pode ser importado em outro ambiente. Das várias formas de copiar um Postgres (exportar tabelas, copiar arquivos), o dump é a mais segura. A chance de erro é baixíssima.
Os arquivos. O Chatwoot guarda dados em dois volumes do Docker, que ficam em /var/lib/docker/volumes:
- chatwoot_data: áudios, imagens e anexos que circulam nas conversas. Esse é o que muda todo dia e é o mais importante.
- chatwoot_public: arquivos da instalação, como logomarca e modelos de e-mail personalizados.
O fluxo compacta os dois. Eu particularmente acho que a pasta public não precisa entrar: são arquivos estáticos, que você guarda no seu computador e sobe de novo se precisar. No fluxo há uma linha para essa pasta, e você pode apagá-la para economizar espaço. Na dúvida, faça backup de tudo.
Um detalhe bom: como o fluxo trabalha com qualquer Postgres, ele serve para outros projetos também, como n8n, Typebot e Dify.
O que você precisa ter antes
- Chatwoot e n8n rodando, de preferência na estrutura com Portainer e Docker Swarm que ensino no canal;
- o IP da VPS e a senha root;
- o nome do container do Postgres e a senha dele;
- o nome do banco do Chatwoot;
- o pacote zip instalado na VPS.
Teste o acesso root pelo Bitvise (ou outro programa de SSH) antes de colocar no n8n. Se você conseguiu abrir o terminal, o IP e a senha estão certos. Isso é importante principalmente na Hetzner, onde às vezes a senha redefinida não funciona de primeira.
Passo a passo do backup do Chatwoot no n8n
O fluxo pronto e o comando de instalação do zip estão na página de apoio do vídeo, em download dos códigos. Não precisa montar do zero.
- Instale o zip na VPS. Pelo terminal, rode o comando que está no próprio fluxo. Leva segundos.
- Importe o fluxo no n8n.
- Ajuste o Schedule Trigger. É ele que define de quanto em quanto tempo o backup roda. Eu deixei uma vez por hora.
- Preencha o nó de informações. Coloque o nome do container do Postgres e a senha.
- Crie a credencial SSH. No primeiro nó de SSH, crie uma credencial com o IP, porta 22, usuário root e a senha. Ao salvar, ela precisa ficar verde. Se não ficar, a senha está errada ou algum firewall está bloqueando.
- Selecione a mesma credencial no segundo nó de SSH.
- Confira o nome do banco. No nó do dump, o nome padrão é chatwoot, que é o caso de 90% das instalações. Se você usou outro, veja na stack do Chatwoot no Portainer e corrija.
- Crie as pastas de destino. Na pasta root do servidor, crie a pasta backup e, dentro dela, a subpasta para os arquivos compactados, com o nome exato que aparece no fluxo.
- Execute uma vez manualmente e confira se os arquivos apareceram.
Como achar o nome do container do Postgres
No Portainer, abra o container do Postgres do Chatwoot. O nome tem o formato nome-da-stack, um ponto e um ID. Copie só a parte antes do primeiro ponto. O que vem depois é o ID do container, que muda a cada deploy, e o fluxo filtra os containers por esse começo. A senha do Postgres está na stack onde ele foi declarado.
O que o fluxo faz por dentro
Vale entender o que o fluxo faz por dentro, porque ajuda a achar erro. O primeiro nó de SSH lista os containers e encontra o do Postgres pelo nome que você informou. Depois entra nele com a senha, gera o dump do banco do Chatwoot e salva na pasta backup um arquivo SQL com o nome do banco, o dia e a hora.
O segundo nó compacta as pastas de volume e salva o zip na subpasta de arquivos. No fim, grava um arquivo de log. Se algo der errado, o erro aparece no final desse log. Se for pedir ajuda, mande esse arquivo.
No meu teste do vídeo, o zip dos arquivos já tinha 93 MB. Quanto mais mensagens com mídia, maior ele fica.
De quanto em quanto tempo rodar
Uma vez por hora é mais que suficiente. Para muita gente, a cada 3 ou 4 horas já resolve: dois ou três backups por dia é um bom equilíbrio. Backup mais frequente significa perder menos histórico se algo der errado, mas exige uma VPS com bem mais disco.
Como cada execução gera arquivos novos, o disco enche. Faça uma limpeza periódica dos backups antigos. Disco cheio é justamente uma das causas mais comuns de o Chatwoot sair do ar.
Erros comuns
- Credencial SSH que não fica verde: senha errada ou firewall. Teste pelo Bitvise primeiro.
- Nome do container com o ID junto: use só o trecho antes do primeiro ponto.
- Pasta de destino inexistente: o fluxo não cria as pastas. Se elas não existirem, dá erro.
- Subpasta criada fora da pasta backup: tem que ser dentro, nessa ordem.
- Nome do banco diferente de chatwoot sem ajustar o nó do dump.
- Zip não instalado na VPS.
Leve uma cópia para fora do servidor
Backup que fica só na mesma VPS não protege contra a perda da própria VPS. No n8n, dá para acrescentar o nó do Google Drive com a ação de upload, criar a credencial do Drive e enviar os dois arquivos para uma pasta. Eu não monto essa parte no vídeo, mas é o próximo passo natural.
Restaurar é outro fluxo. Na Comunidade Astra Online fizemos uma live só sobre isso, com o fluxo de restauração em outra VPS.
O lado honesto
Esse fluxo assume a estrutura que eu ensino: Postgres em container, volumes com esses nomes e acesso root. Se a sua instalação é diferente, os nomes mudam. E backup só vale se você testar a restauração de vez em quando.
Se ainda está montando o servidor, veja como instalar o Chatwoot do zero e por que eu prefiro o Portainer na comparação Portainer, EasyPanel ou Coolify. E se você revende atendimento, backup é parte do serviço: falo disso em como vender Chatwoot com a sua marca.
Perguntas frequentes
Como fazer backup do Chatwoot?
Um jeito automático é um fluxo no n8n que entra na VPS por SSH, gera um dump do banco Postgres e compacta a pasta de arquivos do Chatwoot, salvando tudo com data e hora no nome. Você só preenche o nome do container do Postgres, a senha, a credencial SSH e cria as pastas de destino.
O que precisa entrar no backup do Chatwoot?
O banco de dados Postgres, em forma de dump SQL, e os volumes chatwoot_data e chatwoot_public. O chatwoot_data é o mais importante, porque guarda os áudios, imagens e anexos das conversas.
De quanto em quanto tempo fazer backup do Chatwoot?
Uma vez por hora é mais que suficiente, e para muita gente a cada 3 ou 4 horas já resolve. Backup mais frequente perde menos histórico, mas exige mais disco e limpeza periódica dos arquivos antigos.
Qual a forma mais segura de fazer backup do Postgres no Docker?
O dump do banco, que reúne tudo num arquivo SQL que pode ser importado em outro ambiente. O mesmo fluxo funciona com qualquer Postgres, então serve também para n8n, Typebot e Dify.
Por que a credencial SSH do n8n não fica verde?
Normalmente a senha está errada ou algum firewall está bloqueando o acesso. Teste antes o acesso root por um programa de SSH, como o Bitvise, e só depois cadastre no n8n.
Quer o Chatwoot com mais recursos e suporte para manter tudo de pé?
O AstraChat é o Chatwoot Pro da Astra Online: Kanban, agentes de IA, disparador, ligações pelo WhatsApp, flows, chat interno e white label, no seu servidor e com atendentes ilimitados. Ele vem com a Comunidade Astra Online, onde estão o fluxo de restauração, as lives e o grupo VIP.
Ele vem na Comunidade Astra Online, com código-fonte, atualizações, grupo VIP e a primeira instalação feita pelo especialista em Chatwoot Raphael Popiolek. Chame no WhatsApp e me diga como está o seu backup hoje, que a gente vê o que falta.


