spatie/laravel-backup-server
Securely store and manage backups from multiple Laravel apps on a dedicated backup server. Built on spatie/laravel-backup, it automatically receives and organizes incoming backups, with setup and docs tailored for Laravel deployments.
spatie/laravel-backup, it inherits a modular architecture for defining sources (remote servers) and destinations (storage disks). This aligns well with microservices or multi-tenant Laravel deployments where each service/tenant may require independent backup policies.BackupCompletedEvent, BackupFailedEvent) allows for seamless integration with monitoring tools (e.g., Datadog, Sentry) or custom workflows (e.g., triggering cleanup or alerts). This is critical for observability in production.rsync to minimize disk usage, which is ideal for cost-sensitive environments (e.g., cloud storage). However, this introduces complexity in multi-cloud or hybrid storage setups.rsync for transfers. Firewall rules, key management, and network latency must be pre-validated.pre_backup_commands for mysqldump) add operational overhead and require manual synchronization with application state.local filesystem disk (e.g., S3, GCS, NFS) via Laravel’s filesystem.php, but does not natively support cloud-native backups (e.g., AWS Backup, Azure Backup). This may require custom drivers or wrappers.rsync fails, risking silent data loss. Retry logic is manual (e.g., via cron rescheduling).rsync over WAN can be slow; no compression or chunking by default.pre_backup_commands could expose sensitive data (e.g., database dumps) during transfer.local disks, or will custom drivers (e.g., for S3) be required? How will cross-region replication be handled?rsync (no Windows support).local driver (e.g., S3, GCS, NFS, local disks).mysqldump, pg_dump) via pre_backup_commands.BackupCompletedEvent).backup-server:list to monitor health and backup-server:find-files for data verification.pre_backup_commands and test restores.cleanup_rules in config/backup-server.php) to automate old backup deletion.tar + rsync) if network bandwidth is constrained.ssh2 or phpseclib for SSH (install via pecl install ssh2 or composer require phpseclib/phpseclib).local disks are officially supported. For cloud storage, ensure the Laravel filesystem driver is configured (e.g., aws, gcs).config/filesystems.php.Sources\BackupServer\Models\Source) and destinations (Destinations\BackupServer\Models\Destination).backup_hour for automated backups or set up a cron job for backup-server:dispatch-backups.php artisan backup-server:backup <source>) and verify data integrity.spatie/laravel-backup-server and Laravel for breaking changes. The package is actively maintained (last release: 2026-05-11), but custom scripts (e.g., pre_backup_commands) may require updates.backup-server:list-destinations) and adjust cleanup rules to avoid quota exceeds.backup-server:list to identify unhealthy sources.storage/logs/laravel.log) for rsync or SSH failures.pre_backup_commands output (e.g., mysqldump success).How can I help you explore Laravel packages today?