Cron, and the same settings as Maintenance > Backup. */ defined('FROM_GETTING_STARTED') || die("Direct file access is not allowed"); $gs_key = backupEncryptionKey(); $gs_job = gettingStartedBackupJob(); $gs_backup = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT config_backup_cron_type, config_backup_retention_count, config_backup_retention_days FROM settings WHERE company_id = 1")) ?: []; // Offered on - turning it on is what the step is for $gs_backup_on = settingsChecked('backup_enabled', true); ?>
ITFlow couldn't write a backup key to config.php, so it can't make an encrypted backup. Make config.php writable by the web server's user and come back to this page - or add $config_backup_key = '<32 random characters>'; to it yourself.
Your backup key

Every backup is locked with it, and without it none can be restored - on this server or another. Keep a copy somewhere other than this server, as a password manager.

'gsBackupOn', 'label' => 'Back up every night', 'data' => ['gs-reveal' => 'gsBackupWhen'], 'disabled' => $gs_key === '', 'help' => 'Cron takes it while no one is about. Old ones are cleared by the same job, never before a new one is made.']) ?>
>
'fa-clock', 'type' => 'time', 'label' => 'At', 'required' => true]) ?>
'Everything - the database and your files', 'database' => 'The database only'], ['icon' => 'fa-archive', 'label' => 'What it takes']) ?>
'fa-layer-group', 'type' => 'number', 'label' => 'Keep the last', 'min' => 1, 'max' => 1000, 'required' => true, 'inputmode' => 'numeric', 'suffix' => 'backups']) ?>
'fa-calendar-alt', 'type' => 'number', 'label' => 'For up to', 'min' => 0, 'max' => 3650, 'required' => true, 'inputmode' => 'numeric', 'suffix' => 'days', 'help' => '0 keeps them however old they are.']) ?>
'gsBackupKeySaved', 'label' => "I've kept a copy of the backup key somewhere else"]) ?>

Backups are kept in . Copy them somewhere else too - a backup on the same disk goes with it. Maintenance > Backup downloads one, or takes one now.