146 lines
2.4 KiB
Markdown
146 lines
2.4 KiB
Markdown
<p align="center">
|
||
<img src="images/dockervault-logo.png" width="200">
|
||
</p>
|
||
|
||
# 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.
|
||
|
||
---
|
||
|
||
## 🚀 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 who run 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
|
||
```
|
||
|
||
---
|
||
|
||
## 🔍 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
|
||
|
||
---
|
||
|
||
## 🧠 Philosophy
|
||
|
||
DockerVault is built on a simple idea:
|
||
|
||
> Backups should be **correct by default**
|
||
|
||
Not configurable chaos.
|
||
|
||
Not guesswork.
|
||
|
||
But **system understanding**.
|
||
|
||
---
|
||
|
||
## 🤝 Contributing
|
||
|
||
Feel free to contribute, suggest improvements or fork the project.
|
||
|
||
---
|
||
|
||
<p align="center">
|
||
Built with ❤️ for Lanx by NodeFox 🦊
|
||
Maintained by Eddie Nielsen
|
||
</p>
|