Package Laravel qui sauvegarde la base de l'application et la dépose sur CONTROL (module INOBACKUP). Chaque sauvegarde reçue par CONTROL est conservée à la fois sur son propre disque et sur un stockage objet hors-site.
composer config repositories.control-backup path ../CONTROL/integrations/laravel-control-backup composer require inovertix/control-backup:@dev php artisan vendor:publish --tag=control-backup-config printf '\nCONTROL_BACKUP_URL=https://plateforme.inovertix.com/api/inobackup\nCONTROL_BACKUP_KEY=CTRLBK_votre_cle\n' >> .env php artisan control:backup
Le dépôt path peut aussi pointer vers une copie locale du dossier, ou être remplacé par un dépôt Git privé (composer config repositories.control-backup vcs git@…).
path
composer config repositories.control-backup vcs git@…
config/control-backup.php (publiable) — toutes les valeurs sont pilotables par .env :
config/control-backup.php
.env
url
CONTROL_BACKUP_URL
https://plateforme.inovertix.com/api/inobackup
key
CONTROL_BACKUP_KEY
CTRLBK_…
connection
CONTROL_BACKUP_CONNECTION
paths
CONTROL_BACKUP_PATHS
exclude
node_modules, .git, vendor, *.log
tmp_path
CONTROL_BACKUP_TMP_PATH
storage/app/control-backup
keep_local_days
CONTROL_BACKUP_KEEP_LOCAL_DAYS
0
mysqldump_path
CONTROL_BACKUP_MYSQLDUMP
mysqldump
dump_timeout
upload_timeout
CONTROL_BACKUP_DUMP_TIMEOUT
..._UPLOAD_TIMEOUT
1800
Dans routes/console.php (Laravel 11/12) :
routes/console.php
use Illuminate\Support\Facades\Schedule; Schedule::command('control:backup')->dailyAt('02:00')->withoutOverlapping();
ou, pour un app/Console/Kernel.php (Laravel 10 et antérieurs) :
app/Console/Kernel.php
$schedule->command('control:backup')->dailyAt('02:00')->withoutOverlapping();
L'heure doit correspondre à la planification déclarée pour l'application côté CONTROL (sinon l'alerte « sauvegarde manquante » se déclenchera).
Vérifiez que le cron système du scheduler tourne bien :
* * * * * cd /chemin/vers/app && php artisan schedule:run >> /dev/null 2>&1
php artisan control:backup # connexion par défaut php artisan control:backup --connection=analytics php artisan control:backup --keep # garde le dump local après envoi
Codes de retour : 0 succès, 1 échec (message explicite sur la sortie d'erreur et dans storage/logs/laravel.log).
1
storage/logs/laravel.log
CONTROL_BACKUP_PATHS=/var/www/monapp/storage/app/public,/var/www/monapp/.env
La commande dépose alors deux sauvegardes : le dump SQL (nature base de données) puis une archive .tar.gz des chemins (nature fichiers).
.tar.gz
Un chemin inexistant est signalé en avertissement et ignoré ; si aucun n'existe, la commande échoue.
zlib
Le binaire mysqldump doit être disponible (hébergement mutualisé : demander à l'hébergeur, ou utiliser integrations/inobackup.sh en cron si proc_open est bloqué).
integrations/inobackup.sh
proc_open