https://github.com/darkdragon14/volumevault
Self-hosted Laravel app to manage Docker volume backups and safe restores using offen/docker-volume-backup.
https://github.com/darkdragon14/volumevault
backup docker docker-backup docker-volume docker-volume-backup homelab larevel restore s3 s3-compatible self-hosted sftp volume-backup webdav
Last synced: 28 days ago
JSON representation
Self-hosted Laravel app to manage Docker volume backups and safe restores using offen/docker-volume-backup.
- Host: GitHub
- URL: https://github.com/darkdragon14/volumevault
- Owner: Darkdragon14
- License: apache-2.0
- Created: 2026-05-01T09:38:41.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-28T06:25:01.000Z (about 1 month ago)
- Last Synced: 2026-05-28T08:12:13.491Z (about 1 month ago)
- Topics: backup, docker, docker-backup, docker-volume, docker-volume-backup, homelab, larevel, restore, s3, s3-compatible, self-hosted, sftp, volume-backup, webdav
- Language: PHP
- Homepage: https://darkdragon14.github.io/VolumeVault/
- Size: 1.93 MB
- Stars: 36
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# VolumeVault
[](https://github.com/Darkdragon14/VolumeVault/actions/workflows/tests.yml)
[](https://github.com/darkdragon14/VolumeVault/actions/workflows/ghcr.yml)
[](https://github.com/darkdragon14/VolumeVault/releases)
[](https://www.php.net/)
[](composer.json)
VolumeVault is a self-hosted Laravel application for managing Docker volume and host path backups with safe restores through [`offen/docker-volume-backup`](https://github.com/offen/docker-volume-backup).
It provides a clear web UI for scheduled backups, stack-level volume coverage, restore runs, encrypted destinations, notifications, run history, onboarding, and API-driven automation.
## Get Started
Generate an application key first:
```bash
docker run --rm ghcr.io/darkdragon14/volumevault:latest php artisan key:generate --show
```
Create a `docker-compose.yml` file and paste the generated key in `APP_KEY`:
```yaml
services:
volumevault:
image: ghcr.io/darkdragon14/volumevault:latest
ports:
- "8080:8080"
volumes:
- volumevault_data:/app/storage
- /var/run/docker.sock:/var/run/docker.sock
environment:
APP_KEY: base64:paste-generated-key-here
restart: unless-stopped
volumes:
volumevault_data:
```
Start VolumeVault:
```bash
docker compose up -d
```
Open `http://localhost:8080` and create the first administrator account from the onboarding screen.
The container listens on port `8080`; change the host side of the mapping, for example `9090:8080`, if you want to expose VolumeVault on another port.
The single container runs nginx, PHP-FPM, database migrations, queue worker, and scheduler.
Defaults are built into the application for a production SQLite setup. Add environment variables only when you need to override them, for example `APP_URL`, `APP_TIMEZONE`, or SMTP settings.
You can also use `env_file: .env` for overrides, but do not reuse a development `.env` in production without review. Values such as `APP_ENV=local` or `APP_DEBUG=true` override the safe production defaults.
Host path backup jobs can be limited with `VOLUMEVAULT_HOST_PATH_ALLOWLIST`, a comma-separated list of allowed Docker host path prefixes such as `/srv,/mnt/data`. When set, host path jobs outside those prefixes are rejected when saved.
Keep your `APP_KEY` safe: it is required to decrypt destinations, notifications, and installation saves.
## Documentation
The full documentation is published with GitHub Pages and built from the [`docs`](docs) directory.
- Documentation URL: [https://darkdragon14.github.io/VolumeVault/](https://darkdragon14.github.io/VolumeVault/)
- Documentation source: [`docs/index.md`](docs/index.md)
## Credits
VolumeVault relies on [`offen/docker-volume-backup`](https://github.com/offen/docker-volume-backup) for the actual Docker volume backup engine and destination support.
Huge thanks to Offen and the maintainers of `offen/docker-volume-backup` for their work.
## Contributing
All contributions are welcome.