Docker backup app
Go to file
Alexander Sabino 007a87a536 corrige chamada de função para remoção de snapshot anterior no BackupService 2026-05-07 11:45:28 +01:00
public Adiciona seleção de volumes para backup e implementa modal de escolha 2026-05-04 18:46:43 +01:00
src corrige chamada de função para remoção de snapshot anterior no BackupService 2026-05-07 11:45:28 +01:00
.dockerignore first commit 2026-05-04 17:15:51 +01:00
.gitignore first commit 2026-05-04 17:15:51 +01:00
Dockerfile Atualiza o Dockerfile para clonar o repositório e instalar dependências durante a construção da imagem 2026-05-04 17:22:55 +01:00
README.md first commit 2026-05-04 17:15:51 +01:00
docker-compose.example.yml first commit 2026-05-04 17:15:51 +01:00
docker-compose.yml Atualiza o docker-compose.yml para corrigir o caminho do volume de dados 2026-05-04 17:42:46 +01:00
package-lock.json first commit 2026-05-04 17:15:51 +01:00
package.json first commit 2026-05-04 17:15:51 +01:00

README.md

Docker Backup App

⚠️ AVISO CRÍTICO: Esta é uma aplicação em estágio inicial de desenvolvimento, não use em produção de forma alguma, há risco de perda de dados ⚠️

Aplicacao web para cadastrar profiles de backup de containers Docker, executar backup full ou incremental e restaurar snapshots de volumes e bind mounts.

Como funciona

  • O app lista os containers via Docker socket.
  • Cada backup processa um container por vez: para, executa o backup dos mounts elegiveis e sobe novamente se ele estava rodando.
  • O backup usa um container auxiliar com GNU tar e --listed-incremental para gerar arquivos compactados .tar.gz.
  • Quando o app roda dentro de Docker, backup e restore sao feitos via Docker API (getArchive/putArchive) sem criar helper e sem mapear o root do host.
  • Ha dois escopos por profile: somente volumes (comportamento tradicional) e container inteiro (tar unico por container a partir de /).
  • O restore aplica a cadeia full + incrementais sobre os mounts atuais do container, limpando o conteudo antes de reconstituir o snapshot escolhido.
  • Ao restaurar um backup, e possivel escolher quais containers do backup serao restaurados.

Requisitos

  • Docker Engine com acesso ao socket em /var/run/docker.sock.
  • O diretorio de backup informado no profile precisa ser visivel para o Docker daemon.
  • Em Docker Desktop no Windows, quando o app roda fora de container, paths como C:\backups sao convertidos automaticamente para /run/desktop/mnt/host/c/backups.
  • Quando o app roda dentro de container, use um caminho absoluto interno do container (ex.: /app/data/backups).
  • O escopo container inteiro exige que o app esteja rodando em Docker para usar backup/restore nativos sem helper.

Executando com Docker Compose

docker compose up --build

Abra http://localhost:3000.

O arquivo docker-compose.example.yml foi mantido como referencia equivalente ao compose principal.

Observacoes

  • O restore valida se o conjunto de mounts do container continua igual ao do backup selecionado.
  • O catalogo de profiles e historico de backups fica salvo em ./data/store.json.
  • Os arquivos .tar.gz sao gravados no diretorio de backup configurado em cada profile.