Backup system for Docker – simple, transparent and reliable
Find a file
2026-03-22 13:53:26 +00:00
dockervault feat: add borg path validation, mkdir apply, and fail-on-missing 2026-03-22 13:53:26 +00:00
images fix: track logo with correct filename 2026-03-21 22:22:04 +00:00
.gitignore feat: add YAML parsing and backup detection 2026-03-22 12:04:11 +00:00
docker-compose.yml feat: add borg path validation, mkdir apply, and fail-on-missing 2026-03-22 13:53:26 +00:00
LICENSE feat: add YAML parsing and backup detection 2026-03-22 12:04:23 +00:00
pyproject.toml feat: add YAML parsing and backup detection 2026-03-22 12:04:11 +00:00
README.md Updated README 2026-03-22 12:37:38 +00:00

DockerVault

Intelligent Docker backup discovery for real systems

DockerVault scans your Docker environments and figures out what actually matters to back up — automatically.

No guesswork. No forgotten volumes. No broken restores.


📚 Contents


🚀 What is DockerVault?

DockerVault is a CLI tool that:

  • Scans Docker Compose projects
  • Parses services, volumes, env files
  • Identifies real data vs noise
  • Builds a structured backup understanding

Built for people running real systems — not toy setups.


🧠 Why DockerVault?

Most backup setups fail because:

  • You forget a volume
  • You miss an .env file
  • You back up cache instead of data
  • You dont know what actually matters

DockerVault solves this by thinking like an operator.


Quick Start

git clone https://git.lanx.dk/ed/dockervault.git
cd dockervault

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

dockervault scan /path/to/docker

🛠 Tech Stack

DockerVault is built using simple, reliable components:

  • Python 3.10+ core language
  • PyYAML parsing Docker Compose files
  • argparse CLI interface
  • pip / venv environment management

🔧 Designed for

  • Linux systems (Ubuntu, Debian, Unraid environments)
  • Docker Compose based setups
  • CLI-first workflows

🔍 Example

dockervault scan ~/test-docker --json
[
  {
    "name": "app2",
    "services": [
      {
        "name": "app",
        "image": "ghcr.io/example/app:latest",
        "env_files": [".env"],
        "mounts": [
          "./data:/app/data",
          "./config:/app/config"
        ]
      }
    ],
    "named_volumes": ["app_cache"]
  }
]

🧱 Current Features

  • CLI interface
  • Recursive project scanning
  • Docker Compose parsing (YAML)
  • Service detection
  • Volume + bind mount detection
  • Environment file detection

🔥 Roadmap

Phase 1 Discovery

  • CLI
  • Scan command
  • YAML parsing

🚧 Phase 2 Intelligence

  • Classify mounts (data / config / cache)
  • Detect backup candidates
  • Generate backup plan

🔜 Phase 3 Storage

  • SQLite inventory
  • Historical tracking
  • Change detection

🔜 Phase 4 Execution

  • Borg integration
  • Backup automation
  • Restore validation

🔔 Phase 5 Notifications & Monitoring

  • Email notifications

  • ntfy.sh integration

  • Webhook support

  • Alerts on:

    • missing backups
    • new volumes
    • changed data paths
  • Daily/weekly reports


🧠 Future Ideas

  • Auto-detect Docker hosts on network
  • Multi-node backup coordination (Lanx-style)
  • Backup simulation ("what would be backed up?")
  • Restore dry-run validation
  • Tagging system (critical / optional / ignore)

🧠 Philosophy

DockerVault is built on a simple idea:

Backups should be correct by default

Not configurable chaos.

Not guesswork.

But system understanding.


📜 License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

You are free to:

  • Use the software
  • Study and modify it
  • Share and redistribute it

Under the condition that:

  • Any derivative work must also be licensed under GPL-3.0
  • Source code must be made available when distributed

See the full license in the LICENSE file.


🤝 Contributing

Feel free to contribute, suggest improvements or fork the project.


Built with ❤️ for Lanx by NodeFox 🦊 Maintained by Eddie Nielsen & NodeFox 🦊 Feel free to contribute, suggest improvements or fork the project.