# 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?](#-what-is-dockervault)
* [π§ Why DockerVault?](#-why-dockervault)
* [β‘ Quick Start](#-quick-start)
* [π Tech Stack](#-tech-stack)
* [π Example](#-example)
* [π§± Current Features](#-current-features)
* [π₯ Roadmap](#-roadmap)
* [π§ Philosophy](#-philosophy)
* [π License](#-license)
* [π€ Contributing](#-contributing)
---
## π 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 donβt know what actually matters
DockerVault solves this by **thinking like an operator**.
---
## β‘ Quick Start
```bash
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
```bash
dockervault scan ~/test-docker --json
```
```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
* [x] CLI
* [x] Scan command
* [x] 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](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.