docs: rewrite README to match project direction

This commit is contained in:
Eddie Nielsen 2026-03-22 12:07:34 +00:00
parent 6c79fcc20b
commit 0dd971b004

157
README.md
View file

@ -1,57 +1,146 @@
<p align="center">
<img src="images/dockervault_logo.png" width="200">
</p>
# DockerVault
Early CLI foundation for DockerVault.
> Intelligent Docker backup discovery for real systems
## Current scope
DockerVault scans your Docker environments and figures out **what actually matters to back up** — automatically.
- Python CLI project skeleton
- `scan` command
- Recursive discovery of Docker Compose projects
- YAML parsing with `PyYAML`
- Detection of:
- services
- images
- restart policies
- bind mounts
- named volumes
- `env_file`
- JSON or human-readable output
No guesswork. No forgotten volumes. No broken restores.
## Quick start
---
## 🚀 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 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
```
Run a scan:
---
## 🔍 Example
```bash
dockervault scan /path/to/docker/projects
dockervault scan ~/test-docker --json
```
JSON output:
```bash
dockervault scan /path/to/docker/projects --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"]
}
]
```
## What v0.2 adds
---
DockerVault no longer just finds compose files.
It now builds a first inventory layer that can be used for backup logic later:
## 🧱 Current Features
- project name and root path
- compose files found in the project
- service metadata
- backup candidate paths from bind mounts and env files
- named volumes defined in compose
* CLI interface
* Recursive project scanning
* Docker Compose parsing (YAML)
* Service detection
* Volume + bind mount detection
* Environment file detection
## Example direction
---
This is meant as the next brick in a bigger flow:
## 🔥 Roadmap
1. Discover Docker app folders
2. Learn what services and data paths exist
3. Later attach backup rules, Borg targets, retention, notifications, and restore metadata
### ✅ 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>