dockervault/README.md
2026-03-22 12:17:56 +00:00

185 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p align="center">
<img src="images/dockervault-logo.png" width="600">
</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.
---
## 📚 Contents
- [🚀 What is DockerVault?](#-what-is-dockervault)
- [⚡ Quick Start](#-quick-start)
- [🛠 Tech Stack](#-tech-stack)
- [🔍 Example](#-example)
- [🧱 Current Features](#-current-features)
- [🔥 Roadmap](#-roadmap)
- [🧠 Philosophy](#-philosophy)
- [🤝 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 who run real systems — not toy setups.
---
## 🛠 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
---
## 🧠 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
```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
### 🧠 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**.
---
## 🤝 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>