Zero-knowledge encrypted backups for PHP applications. Your data is encrypted on your server before it leaves — we store only an opaque blob we can't read.
Works with any PHP application. Laravel gets artisan commands as a bonus.
composer require calmbackup/backupvendor/bin/calmbackup initphp artisan backup:installBoth wizards will:
- Validate your API key
- Generate your encryption key locally (never sent to us)
- Configure your database connection
- Save a recovery key file
# Laravel
php artisan backup:run
# Any PHP app
vendor/bin/calmbackup runLaravel: Automatic — the service provider registers a daily backup at 02:00.
Any PHP app: Add to crontab:
0 2 * * * cd /path/to/project && vendor/bin/calmbackup run >> /dev/null 2>&1
php artisan backup:list # Laravel
vendor/bin/calmbackup list-backups # Any PHPphp artisan backup:restore # Laravel
vendor/bin/calmbackup restore # Any PHPphp artisan backup:status # Laravel
vendor/bin/calmbackup status # Any PHP- MySQL
- PostgreSQL
- SQLite
- Dumps your database using native tools (
mysqldump,pg_dump,sqlite3) - Archives the dump + optional directories into
.tar.gz - Encrypts with AES-256-GCM using your key
- Uploads the encrypted blob via presigned URL (direct to storage, never through our servers)
- Confirms the upload with the CalmBackup API
We never see your encryption key. We can't decrypt your backups. That's the point.
- PHP 8.2+
- ext-openssl, ext-curl, ext-phar
- Database CLI tools in PATH (
mysqldump/mysql,pg_dump/pg_restore, orsqlite3)
MIT