Features
Calm Backup is a zero-knowledge encrypted backup service for PHP and Laravel applications. Install a package, run the setup wizard, and your database and files are backed up daily — encrypted on your server before anything is transmitted.
Security
Your backups are encrypted client-side using a key that only you possess. The encryption happens on your server before any data is sent to Calm Backup. We store an encrypted blob — we cannot decrypt your backups, and neither can anyone who gains access to our infrastructure.
What we see
Integration
Install with Composer and run the setup wizard. Laravel apps get auto-discovery and artisan commands. Any other PHP app uses the CLI at vendor/bin/calmbackup.
# Any PHP app
composer require calmbackup/backup
vendor/bin/calmbackup init # Laravel apps can also use:
php artisan backup:install Automation
Once installed, the package registers a daily scheduled task via Laravel's task scheduler. For non-Laravel apps, add a cron entry to run backups on your preferred schedule. Your database is dumped, encrypted, and uploaded every day without any manual intervention.
* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1 # Non-Laravel: add to crontab
0 2 * * * cd /path-to-project && vendor/bin/calmbackup run >> /dev/null 2>&1 Storage
Beyond your database, back up any directories on your server — user uploads, generated files, configuration directories. Specify paths in your config and they're included in every backup, encrypted the same way.
// config/backup.php (Laravel)
'directories' => [
storage_path('app/public'),
], Flexibility
Need a backup before a deployment or migration? Trigger one instantly with an artisan command. The backup runs the same encryption pipeline as the scheduled backups — same security, on your schedule.
# Laravel
php artisan backup:run
# Any PHP app
vendor/bin/calmbackup run Key management
Your encryption key is generated on your side and stored only in your environment. We never receive it. During setup, a recovery key file is generated. Store it somewhere safe — without it, your backups are unrecoverable.
🔑 You hold
Encryption key in your .env
🪷 We hold
An encrypted blob we can't read
Ready to start?
Set up encrypted backups in under a minute.