docs: rewrite README to match project direction
This commit is contained in:
parent
6c79fcc20b
commit
0dd971b004
1 changed files with 123 additions and 34 deletions
157
README.md
157
README.md
|
|
@ -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 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
|
||||
```
|
||||
|
||||
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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue