Uma solução completa e robusta para backup de arquivos, volumes Docker e bancos de dados PostgreSQL, com sincronização em nuvem (via Rclone) e notificações por WhatsApp (via Evolution API).
Como Funciona • Instalação • Troubleshooting • Recuperação • Suporte
- Desenvolvido por: Samuel de Sousa Santos
- YouTube: Samuca Tutoriais
- Contato Comercial: samucamg@gmail.com
Este sistema foi projetado para ser uma solução "instale e esqueça". Após a configuração, ele executa uma rotina completa de forma automatizada:
- 📦 Backup dos Bancos de Dados: Identifica seus contêineres PostgreSQL e realiza um
dumpde cada banco de dados individualmente. - 🗂️ Backup de Arquivos e Volumes: Cria um arquivo
.tar.gzcontendo todos os diretórios e arquivos importantes do seu servidor, incluindo as configurações e os volumes persistentes do Docker. - ☁️ Sincronização com a Nuvem: Envia a pasta completa do backup para um provedor de nuvem de sua escolha, configurado via Rclone, organizando por nome do servidor.
- 🗑️ Limpeza Inteligente: Remove backups antigos, tanto no servidor local quanto na nuvem.
- 📲 Notificação Detalhada: Ao final de cada execução, envia um relatório detalhado para o seu WhatsApp.
A instalação é feita com um único comando que guia o utilizador por todo o processo.
bash <(curl -sSL https://raw.githubusercontent.com/samucamg/ServerGuardian/refs/heads/main/install.sh)(A secção de troubleshooting permanece a mesma)
Este guia detalha como restaurar seu servidor do zero usando um backup.
- Provisionar uma Nova VPS (Ubuntu 22.04 recomendado).
- Aceder via SSH e Instalar Docker:
sudo apt-get update && sudo apt-get install -y docker.io - Instalar Rclone (Método Recomendado):
sudo -v ; curl https://rclone.org/install.sh | sudo bash
-
Baixar a Pasta de Backup:
- Primeiro, precisamos configurar o Rclone minimamente para que ele possa aceder ao seu backup. Crie um ficheiro de configuração temporário.
mkdir -p ~/.config/rclone nano ~/.config/rclone/rclone.conf
- Cole uma configuração básica do seu provedor de nuvem aqui. O objetivo é apenas conseguir listar os ficheiros.
- Liste os backups disponíveis para encontrar o mais recente:
rclone lsd SEU_REMOTE:SUA_PASTA/SEU_SERVER_NAME
- Escolha a pasta mais recente e baixe-a para o servidor:
mkdir -p /opt/restore rclone sync SEU_REMOTE:SUA_PASTA/SEU_SERVER_NAME/2025-10-09_000100 /opt/restore/
- Primeiro, precisamos configurar o Rclone minimamente para que ele possa aceder ao seu backup. Crie um ficheiro de configuração temporário.
-
Restaurar a Configuração Completa do Rclone:
- Agora que o backup está no servidor, vamos restaurar o seu ficheiro
rclone.conforiginal e completo. ⚠️ Atenção: Este comando assume que você incluiu/rootno seu backup.sudo cp /opt/restore/root/.config/rclone/rclone.conf /root/.config/rclone/rclone.conf
- Verifique se funcionou:
sudo rclone listremotes. Você deve ver todos os seus remotes configurados.
- Agora que o backup está no servidor, vamos restaurar o seu ficheiro
-
Restaurar Arquivos de Sistema e Volumes:
⚠️ AVISO CRÍTICO DE SEGURANÇA⚠️ O comando de restauraçãotarabaixo irá SOBRESCREVER quaisquer ficheiros de configuração existentes no seu novo servidor. Execute este passo com extremo cuidado.cd / sudo tar -xzpf /opt/restore/files_*.tar.gz
- Reiniciar o Docker: Após restaurar
/var/lib/docker/volumes, é uma boa prática reiniciar o serviço Docker.sudo systemctl restart docker
- Iniciar as Stacks: Navegue para a pasta onde os seus ficheiros
docker-compose.yamloudocker-stack.yamlforam restaurados (ex:/opt/stacks/minha-stack) e suba os seus serviços.cd /opt/stacks/n8n docker stack deploy -c docker-compose.yaml n8n
- Aguarde os contêineres de banco de dados iniciarem.
- Para cada backup
.sql.gz, crie o banco de dados (se a stack não o fez) e importe os dados:CONTAINER_ID=$(docker ps --filter "name=SEU_CONTAINER_POSTGRES" -q) gunzip < /opt/restore/SEU_CONTAINER_POSTGRES_nome_do_banco.sql.gz | docker exec -i $CONTAINER_ID psql -U postgres -d nome_do_banco
- Verifique os logs de todos os contêineres e acesse as suas aplicações.
- Aponte o DNS do seu domínio para o IP do novo servidor.
- Desenvolvido por: Samuel de Sousa Santos
- YouTube: Samuca Tutoriais
- Contato Comercial: samucamg@gmail.com
Para mais informações sobre suporte, consulte o arquivo SUPPORT.md.
