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
|
# 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
|
No guesswork. No forgotten volumes. No broken restores.
|
||||||
- `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
|
|
||||||
|
|
||||||
## 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
|
```bash
|
||||||
|
git clone https://git.lanx.dk/ed/dockervault.git
|
||||||
|
cd dockervault
|
||||||
|
|
||||||
python3 -m venv .venv
|
python3 -m venv .venv
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
pip install -e .
|
pip install -e .
|
||||||
|
|
||||||
|
dockervault scan /path/to/docker
|
||||||
```
|
```
|
||||||
|
|
||||||
Run a scan:
|
---
|
||||||
|
|
||||||
|
## 🔍 Example
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dockervault scan /path/to/docker/projects
|
dockervault scan ~/test-docker --json
|
||||||
```
|
```
|
||||||
|
|
||||||
JSON output:
|
```json
|
||||||
|
[
|
||||||
```bash
|
{
|
||||||
dockervault scan /path/to/docker/projects --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.
|
## 🧱 Current Features
|
||||||
It now builds a first inventory layer that can be used for backup logic later:
|
|
||||||
|
|
||||||
- project name and root path
|
* CLI interface
|
||||||
- compose files found in the project
|
* Recursive project scanning
|
||||||
- service metadata
|
* Docker Compose parsing (YAML)
|
||||||
- backup candidate paths from bind mounts and env files
|
* Service detection
|
||||||
- named volumes defined in compose
|
* 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
|
### ✅ Phase 1 – Discovery
|
||||||
2. Learn what services and data paths exist
|
|
||||||
3. Later attach backup rules, Borg targets, retention, notifications, and restore metadata
|
* [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