restoredb/README.md
2026-06-22 18:51:45 -03:00

2.9 KiB

Restore Assistant

Assistente CLI/TUI em Rust para listar dumps em MinIO/S3, baixar arquivos para uma pasta local e restaurar um banco PostgreSQL com DROP DATABASE e recriação controlados por confirmação explícita.

Requisitos

  • Rust stable
  • Ferramentas PostgreSQL no PATH:
    • psql
    • pg_restore
  • Acesso ao bucket MinIO/S3 com API compatível com S3

Instalação

cargo build --release

O binário ficará em:

target/release/restore-assistant

Configuração

Na primeira execução, se nenhuma configuração completa existir, o programa pergunta os campos um a um, no estilo do rclone, e salva em:

~/.config/rsdb/config.yml

Senhas são perguntadas sem eco no terminal. O programa também continua aceitando .env e config.toml na raiz do projeto.

A ordem de precedência é:

  1. Variáveis de ambiente / .env
  2. config.toml local
  3. ~/.config/rsdb/config.yml

Exemplo .env:

cp .env.example .env

Exemplo config.toml:

cp config.example.toml config.toml

Exemplo config.yml:

mkdir -p ~/.config/rsdb
cp config.example.yml ~/.config/rsdb/config.yml

Variáveis obrigatórias:

  • MINIO_ENDPOINT
  • MINIO_ACCESS_KEY
  • MINIO_SECRET_KEY
  • MINIO_BUCKET
  • POSTGRES_HOST
  • POSTGRES_PORT
  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • POSTGRES_DATABASE

Opcionais:

  • MINIO_REGION, padrão us-east-1
  • POSTGRES_SSLMODE, padrão prefer
  • DUMPS_DIR, padrão ./dumps

Senhas nunca são exibidas. A senha do PostgreSQL é passada para psql e pg_restore por PGPASSWORD.

Uso

Abrir a TUI:

restore-assistant

Listar dumps remotos e locais:

restore-assistant list

Restaurar diretamente um dump local ou remoto, ainda com confirmação:

restore-assistant restore backup.sql.gz

Validar configuração, pasta local, conexão S3 e ferramentas PostgreSQL:

restore-assistant config-check

Controles da TUI

  • / ou k/j: navegar
  • /: filtrar por nome
  • Esc: limpar filtro ou cancelar confirmação
  • r: atualizar listas
  • d: apagar o arquivo local do dump selecionado, após confirmação
  • Enter: selecionar/restaurar
  • q: sair

Antes da restauração, a TUI mostra o host, banco de destino e dump selecionado, com aviso de que o banco será apagado. A restauração só ocorre após confirmação.

Formatos suportados

  • .sql: restaurado com psql
  • .sql.gz, .sql.zst: descompactados e restaurados com psql
  • .dump, .backup, .bin, .binary, .tar: restaurados com pg_restore
  • .dump.gz, .dump.zst, .backup.gz, .backup.zst, .bin.gz, .bin.zst, .binary.gz, .binary.zst, .tar.gz, .tar.zst: descompactados para arquivo temporário e restaurados com pg_restore

Logs

Logs técnicos são gravados em:

restore-assistant.log

Erros exibidos na TUI ou CLI são resumidos para o usuário; detalhes técnicos ficam no log.