Summary
- A new Docker volume destination stores backups in a named Docker volume, including NFS or other driver-backed volumes, without sharing a host path with the VolumeVault container. Backups, restores, listing, testing, and storage usage run through helper containers that mount the volume by name, and missing volumes now fail with a clear error instead of creating an empty target.
- A new Webhook notification channel can call separate URLs for backup and restore start, success, and failure events. Channels set to every run can also receive start and success notifications, making uptime and dead man switch integrations easier.
- Backup runs now send start notifications through every-run channels, matching restore start notifications, and notification channels can now be updated through the API.
- SMTP notification channels can now opt into unencrypted delivery for trusted local relays while encrypted SMTP stays the default.
Upgrade Notes
- No database migrations or new environment variables are required.
- API clients can create Docker volume destinations with provider
docker_volume,settings.volume_name, and optionalsettings.path_prefix. - API clients with write/admin access can now update notification channels with
PUT /api/v1/notifications/{notification}. - Rebuild and restart the VolumeVault container after upgrading.
Verification
- Local verification before release included
docker run --rm --user "$(id -u):$(id -g)" -v "/home/darkdragon/VolumeVault:/app" -w /app volumevault:local php artisan changelog:validate v1.16.0 --release --no-interaction. - Local verification before release included
docker run --rm --user "$(id -u):$(id -g)" -v "/home/darkdragon/VolumeVault:/app" -w /app volumevault:local php artisan test --compact. - Local verification before release included
npm run build. - Local verification before release included
docker run --rm --user "$(id -u):$(id -g)" -v "/home/darkdragon/VolumeVault:/app" -w /app volumevault:local php ./vendor/bin/pint --dirty --format agent.