Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ServerGuardian: Sistema de Backup Automatizado para Servidores Docker

Logo Samuca Tutoriais

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 FuncionaInstalaçãoTroubleshootingRecuperaçãoSuporte


👨‍💻 Créditos


🚀 Como Funciona?

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:

  1. 📦 Backup dos Bancos de Dados: Identifica seus contêineres PostgreSQL e realiza um dump de cada banco de dados individualmente.
  2. 🗂️ Backup de Arquivos e Volumes: Cria um arquivo .tar.gz contendo todos os diretórios e arquivos importantes do seu servidor, incluindo as configurações e os volumes persistentes do Docker.
  3. ☁️ 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.
  4. 🗑️ Limpeza Inteligente: Remove backups antigos, tanto no servidor local quanto na nuvem.
  5. 📲 Notificação Detalhada: Ao final de cada execução, envia um relatório detalhado para o seu WhatsApp.

📦 Instalação

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)

🚨 Solução de Problemas Comuns

(A secção de troubleshooting permanece a mesma)


🚑 Plano de Recuperação de Desastres

Este guia detalha como restaurar seu servidor do zero usando um backup.

Fase 1: Preparação do Novo Servidor

  1. Provisionar uma Nova VPS (Ubuntu 22.04 recomendado).
  2. Aceder via SSH e Instalar Docker:
    sudo apt-get update && sudo apt-get install -y docker.io
  3. Instalar Rclone (Método Recomendado):
    sudo -v ; curl https://rclone.org/install.sh | sudo bash

Fase 2: Restauração dos Dados

  1. 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/
  2. Restaurar a Configuração Completa do Rclone:

    • Agora que o backup está no servidor, vamos restaurar o seu ficheiro rclone.conf original e completo.
    • ⚠️ Atenção: Este comando assume que você incluiu /root no 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.
  3. Restaurar Arquivos de Sistema e Volumes:

    ⚠️ AVISO CRÍTICO DE SEGURANÇA ⚠️ O comando de restauração tar abaixo 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

Fase 3: Reativação dos Serviços

  1. Reiniciar o Docker: Após restaurar /var/lib/docker/volumes, é uma boa prática reiniciar o serviço Docker.
    sudo systemctl restart docker
  2. Iniciar as Stacks: Navegue para a pasta onde os seus ficheiros docker-compose.yaml ou docker-stack.yaml foram restaurados (ex: /opt/stacks/minha-stack) e suba os seus serviços.
    cd /opt/stacks/n8n
    docker stack deploy -c docker-compose.yaml n8n

Fase 4: Restauração dos Bancos de Dados

  1. Aguarde os contêineres de banco de dados iniciarem.
  2. 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

Fase 5: Verificação Final

  1. Verifique os logs de todos os contêineres e acesse as suas aplicações.
  2. Aponte o DNS do seu domínio para o IP do novo servidor.

❤️ Suporte e Créditos

Para mais informações sobre suporte, consulte o arquivo SUPPORT.md.

About

Uma solução completa para backup e recuperação de desastres em servidores Docker, com sincronização em nuvem e notificações via WhatsApp.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages