Backup system for Docker – simple, transparent and reliable
Find a file
2026-03-21 22:37:01 +00:00
images fix: track logo with correct filename 2026-03-21 22:22:04 +00:00
LICENSE chore: add GPL v2 license 2026-03-21 21:57:40 +00:00
README.md docs: finalize README with logo and structure 2026-03-21 22:37:01 +00:00

DockerVault logo


Simple, reliable backups for Docker environments.


📑 Contents


🚀 What is DockerVault?

DockerVault is a CLI-first backup system for Docker environments.

It is designed to make backups simple, transparent, and reliable without unnecessary complexity. The goal is to provide a practical way to discover containers, identify important data, and manage backups in a structured and predictable way.

DockerVault is aimed at homelabs, self-hosted infrastructure, and small-scale server environments where control, clarity, and recoverability matter.


Goals

DockerVault is being built to:

  • Discover Docker containers automatically
  • Identify volumes, bind mounts, and relevant configuration data
  • Keep track of backup history and metadata
  • Use a proven backup backend instead of reinventing backup logic
  • Make restore operations easier and safer
  • Stay simple enough to understand and debug

⚙️ Technology

DockerVault is planned as a modular, CLI-first tool.

Current design direction

  • Core language: Python
  • Backup engine: BorgBackup
  • Metadata storage: SQLite
  • Interface: CLI first
  • Platform focus: Linux Docker hosts

Why this stack?

  • Python makes it fast to build, maintain, and extend
  • BorgBackup is mature, reliable, and well-suited for deduplicated backups
  • SQLite keeps metadata simple, local, and easy to inspect
  • CLI first keeps the project transparent and easy to debug

The project philosophy is clear: use proven tools where it makes sense, and avoid building complexity just for the sake of it.


🏗 Architecture

DockerVault follows a simple flow:

  1. Scan Docker environment
  2. Detect containers, volumes, bind mounts, and configs
  3. Store metadata in SQLite
  4. Build backup jobs from discovered data
  5. Execute backups through Borg
  6. Restore data when needed

More detailed architecture notes will live in docs/architecture.md.


📦 What DockerVault is expected to back up

DockerVault is intended to focus on the parts of Docker environments that actually matter:

  • Docker volumes
  • Bind mounts
  • Selected configuration files
  • Backup metadata
  • Restore-related information

It is not intended to blindly copy everything without structure. The purpose is to know what is being backed up and why.


🔁 Restore philosophy

Backups are only useful if restore is realistic.

DockerVault is being designed with restore in mind from the beginning:

  • Clear mapping between containers and stored data
  • Metadata that explains relationships between services and data
  • Predictable restore flow
  • Minimal guesswork during recovery

The goal is not just to store backups, but to enable actual recovery.


🧩 Planned Features

Core features

  • Docker container discovery
  • Volume detection
  • Bind mount detection
  • Backup job creation
  • Borg-based backup execution
  • SQLite-based metadata tracking
  • Restore workflow

Future possibilities

  • Scheduled backups
  • Retention policies
  • Pre/post backup hooks
  • E-mail notifications
  • ntfy notifications
  • Web interface
  • Multi-node support
  • Remote repository support
  • Backup health/status reporting
  • Configuration profiles
  • Selective backup policies per container

🛣 Roadmap

Phase 1 Foundation

  • Repository structure
  • Documentation
  • CLI skeleton
  • Initial project design

Phase 2 Discovery

  • Scan Docker environment
  • Detect containers
  • Detect volumes and bind mounts

Phase 3 Backup Engine

  • Integrate BorgBackup
  • Build backup job flow
  • Store metadata in SQLite

Phase 4 Restore

  • Basic restore workflow
  • Restore metadata mapping
  • Safer recovery process

Phase 5 Usability

  • Better CLI commands
  • Config handling
  • Scheduling support
  • Notifications

Phase 6 Expansion

  • Web interface
  • Multi-node support
  • Advanced backup policies

📁 Project Structure

dockervault/
├── cmd/
├── core/
├── scanner/
├── backup/
├── restore/
├── config/
├── database/
├── docs/
├── scripts/
├── images/
├── README.md
└── LICENSE

🤝 Philosophy

DockerVault is built on a few simple principles:

  • Keep it simple
  • Be transparent
  • Avoid unnecessary complexity
  • Prefer proven tools over hype
  • Build something practical and maintainable

No magic. No hidden behavior. No unnecessary abstraction.


📜 License

This project is licensed under the GNU General Public License v2.0.

See the LICENSE file for details.