3.5 KiB
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?
- ⚡ Quick Start
- 🧠 How it Works
- 🗂 Classification Model
- 💾 Borg Integration
- 🤖 Automation Mode
- 🔍 Example
- 🛠 Tech Stack
- 🔢 Exit Codes
- 🔥 Future Ideas
- ❤️ Credits
- 📜 License
🚀 What is DockerVault?
DockerVault is a CLI tool that:
- scans Docker Compose environments
- detects bind mounts and named volumes
- identifies critical data paths
- warns about missing or broken setups
- generates ready-to-use Borg backup commands
It focuses on real-world setups, not theoretical configs.
⚡ Quick Start
git clone https://git.lanx.dk/ed/dockervault.git
cd dockervault
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Run a scan:
python -m dockervault.cli /path/to/docker
Generate a Borg backup plan:
python -m dockervault.cli /path/to/docker --repo /backup --dry-run
🧠 How it Works
DockerVault:
- Searches for Docker Compose files
- Parses all services and mounts
- Applies classification rules
- Builds a structured backup plan
It focuses on what actually matters to restore a system.
🗂 Classification Model
DockerVault divides data into:
🔴 Critical
Must be backed up:
- databases (
/var/lib/mysql, etc.) - application data (
/data, etc.)
🟡 Review
Optional:
- logs
- caches
- temporary files
⚪ Skip
Safe to ignore:
- ephemeral runtime data
💾 Borg Integration
DockerVault generates ready-to-use Borg commands:
borg create --stats --progress \
/backup::hostname-YYYY-MM-DD_HH-MM \
/path1 \
/path2
No guessing. No missing volumes.
🤖 Automation Mode
DockerVault supports automation-friendly usage:
python -m dockervault.cli /path --repo /backup --automation --quiet
- exit code
0→ OK - exit code
1→ missing critical paths
Perfect for cron jobs and monitoring.
🔍 Example
DockerVault Backup Plan
=======================
Scan root: /srv/docker
INCLUDE PATHS:
- /srv/docker/db [critical] service=db target=/var/lib/mysql
- /srv/docker/app/data [critical] service=app target=/data
REVIEW PATHS:
- /srv/docker/logs [optional]
WARNING: Missing critical paths detected
- /srv/docker/app/data (service=app)
🛠 Tech Stack
- Python 3.10+
- Docker Compose parsing
- Custom classification engine
- Borg backup integration
🔢 Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Missing critical paths (automation mode) |
| 2 | Error / invalid input |
🔥 Future Ideas
- JSON output (
--json) - Web UI
- Email / ntfy notifications
- Restore validation
- Smarter service detection
- Backup manifests
❤️ Credits
Built with ❤️ for Lanx by NodeFox 🦊
Maintained by Eddie Nielsen
Feel free to contribute, suggest improvements or fork the project.
📜 License
This project is licensed under the GNU GPL v3.