Skip to content

104 - backup google drive#467

Open
JosueModesto wants to merge 3 commits into
developmentfrom
104-backup-google-drive
Open

104 - backup google drive#467
JosueModesto wants to merge 3 commits into
developmentfrom
104-backup-google-drive

Conversation

@JosueModesto

Copy link
Copy Markdown
Contributor

Descrição

Cria o novo serviço database-backup para fazer backup automático do PostgreSQL e enviar os arquivos para o Google Drive, seguindo o mesmo padrão de container standalone usado no database-sync.

O que foi feito

  • Criado o serviço em script/database-backup/
  • Container Debian slim com:
    • postgresql-client-18
    • rclone
    • cron
    • gzip
  • Implementado backup.sh para:
    • gerar dump SQL plain com pg_dump -Fp
    • comprimir em .sql.gz
    • enviar para o Google Drive
    • aplicar retenção automática
  • Implementado entrypoint.sh para:
    • gerar configuração do rclone
    • registrar o cron job
    • repassar variáveis de ambiente para o cron
  • Adicionado docker-compose.yml para teste local
  • Adicionado .env.example com as variáveis necessárias
  • Adicionado captain-definition.json para deploy no CapRover
  • Atualizado o README.md com instruções de uso, restore e validação
  • Criado um documento técnico detalhado com explicação linha a linha do serviço

Política de retenção

Após cada upload, o serviço mantém:

  • os 5 backups mais recentes
  • depois disso, até 4 backups semanais distintos
  • o restante é removido automaticamente do Google Drive

Isso evita crescimento infinito da pasta e mantém histórico útil para restore.

Formato do backup

Os arquivos seguem o padrão:

{DATABASE_NAME}_{unix_timestamp}.sql.gz

Exemplo:

herbario_prod_1748469600.sql.gz

Validações realizadas

  • Build local da imagem com sucesso
  • Execução manual do backup com sucesso
  • Upload para Google Drive validado
  • Retenção validada com massa de teste
  • Conexão com PostgreSQL validada no ambiente local com host.docker.internal
  • Restore testado com sucesso

Observações

  • Em ambiente local, o host do PostgreSQL usado para teste foi host.docker.internal
  • Em produção, o serviço deve apontar para o host real acessível pelo container no CapRover

Impacto

Esse PR adiciona uma solução automatizada, isolada e reproduzível para backup do banco de dados, com armazenamento externo no Google Drive e política de retenção para evitar acúmulo desnecessário de arquivos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant